STMicroelectronics成像部門(mén)負(fù)責(zé)向消費(fèi)者、工業(yè)、安全和汽車(chē)市場(chǎng)提供創(chuàng)新的成像技術(shù)和產(chǎn)品。該團(tuán)隊(duì)精心制定了一套通過(guò)模板實(shí)現(xiàn)的High-Level Synthesis(HLS)高層次綜合流程,使得上述產(chǎn)品能夠迅速上市。對(duì)于汽車(chē)市場(chǎng),該流程符合ISO 26262標(biāo)準(zhǔn),因此能確保可靠性。
ISP是處理圖像傳感器數(shù)據(jù)的硬件和軟件組合。ISP可能非常復(fù)雜,因此該團(tuán)隊(duì)使用了可復(fù)用的IP模塊來(lái)組裝設(shè)計(jì)。圖1顯示了一個(gè)示例ISP方框圖。
圖1中的ISP顯示了主要ISP功能,并沿著數(shù)據(jù)通路說(shuō)明了各自所需的諸多處理算法。
圖1.用于汽車(chē)應(yīng)用的復(fù)雜高質(zhì)量ISP
了解HLS工具歷史
成像部門(mén)于2007年開(kāi)始對(duì)多媒體IP(編碼器、解碼器、顯示器和ISP功能)運(yùn)用HLS設(shè)計(jì)流程,最初使用的是西門(mén)子數(shù)字化工業(yè)軟件競(jìng)爭(zhēng)對(duì)手提供的工具。當(dāng)該工具在2015年停止服務(wù)后,該團(tuán)隊(duì)對(duì)不同供應(yīng)商提供的各種HLS工具進(jìn)行了評(píng)估。他們將若干ISP設(shè)計(jì)用作測(cè)試案例,然后監(jiān)測(cè)其所生成的RTL的面積和功耗結(jié)果。在此評(píng)估基礎(chǔ)上,Catapult High-Level Synthesis平臺(tái)因?yàn)楸憩F(xiàn)優(yōu)異而被該團(tuán)隊(duì)選中。
借助Catapult HLS平臺(tái),設(shè)計(jì)人員便能利用行業(yè)標(biāo)準(zhǔn)ANSI C++和SystemC來(lái)描述功能意圖,并將其提高到生產(chǎn)率更高的抽象層次。根據(jù)這些高層次的描述,Catapult即可生成產(chǎn)品級(jí)的RTL。通過(guò)加快RTL生成時(shí)間以及自動(dòng)生成無(wú)錯(cuò)誤的RTL,Catapult可顯著縮短RTL驗(yàn)證所需的時(shí)間。Catapult的功耗優(yōu)化功能可自動(dòng)大幅降低動(dòng)態(tài)功耗。高度交互的工作流程可提供對(duì)綜合過(guò)程的完全可見(jiàn)性和控制,使設(shè)計(jì)人員能夠在功耗、性能和面積等方面迅速收斂到理想實(shí)現(xiàn)方案(圖2)。
圖2.快速探索架構(gòu)以求得理想功耗和面積
創(chuàng)建成像IP模板
該團(tuán)隊(duì)意識(shí)到,ISP是一系列的級(jí)聯(lián)濾波器,這些濾波器具有相似的結(jié)構(gòu)和接口。他們的想法是利用C++模板開(kāi)發(fā)一個(gè)參數(shù)化濾波器庫(kù),然后將其復(fù)用于每個(gè)ISP設(shè)計(jì)中。這種方法具有如下優(yōu)勢(shì):
◎ 設(shè)計(jì)效率:復(fù)用經(jīng)過(guò)驗(yàn)證的模板可以更快地構(gòu)建ISP
◎ 更新:能夠輕松將更新應(yīng)用到每個(gè)IP模塊,而且可以在一天內(nèi)將算法更改整合完畢
◎ 集中精力:設(shè)計(jì)人員可以將時(shí)間花在增量算法開(kāi)發(fā)上,而不必在通用結(jié)構(gòu)上耗費(fèi)心力
◎ 資源:團(tuán)隊(duì)可以為項(xiàng)目開(kāi)發(fā)更多的IP模塊,且無(wú)需增加額外的員工
每個(gè)參數(shù)化模板都是一個(gè)C++類(lèi)(圖3),其可實(shí)現(xiàn)如下方面功能:
◎ 內(nèi)存管理
◎ 協(xié)議橋
◎ 像素管理內(nèi)核
◎ 連接到驗(yàn)證平臺(tái)
圖3.設(shè)計(jì)人員可專(zhuān)注于算法,而不是基礎(chǔ)架構(gòu)
設(shè)計(jì)人員可覆寫(xiě)filterFunction以提供算法代碼,然后再通過(guò)覆寫(xiě)execute函數(shù)將其連接到濾波器。
利用這一模板流程,該團(tuán)隊(duì)在過(guò)去兩年間創(chuàng)建了50多個(gè)設(shè)計(jì),規(guī)模從1萬(wàn)個(gè)邏輯門(mén)到200萬(wàn)個(gè)邏輯門(mén)不等。
驗(yàn) 證 設(shè) 計(jì)
該團(tuán)隊(duì)使用UVM驗(yàn)證平臺(tái)來(lái)指定提供偽隨機(jī)驗(yàn)證及收集代碼和功能覆蓋率指標(biāo)的序列。該團(tuán)隊(duì)使用了相同的驗(yàn)證平臺(tái)(無(wú)需任何修改)來(lái)驗(yàn)證C++和生成的RTL設(shè)計(jì)。每個(gè)驗(yàn)證平臺(tái)(圖4)會(huì)為每個(gè)項(xiàng)目建立相同的標(biāo)準(zhǔn)集,這樣一來(lái),便可通過(guò)自動(dòng)設(shè)置驗(yàn)證環(huán)境來(lái)縮短開(kāi)發(fā)時(shí)間。此標(biāo)準(zhǔn)集包括:
◎ 標(biāo)準(zhǔn)化數(shù)據(jù)的輸入和輸出接口
◎ 標(biāo)準(zhǔn)化寄存器配置接口
◎ 標(biāo)準(zhǔn)化高層次控制(啟用和重置設(shè)計(jì))
◎ 標(biāo)準(zhǔn)化輸入和輸出數(shù)據(jù)格式
圖4.常見(jiàn)UVM驗(yàn)證平臺(tái)仿真C++(圖中所示)
或RTL被測(cè)設(shè)計(jì)
UVM驗(yàn)證平臺(tái)的常見(jiàn)元素包括操作被測(cè)設(shè)計(jì)(DUT)的測(cè)試和序列、約束和功能覆蓋率語(yǔ)句,以及多種檢查器和斷言。圖片和寄存器序列可操作DUT輸入。該團(tuán)隊(duì)使用功能模型對(duì)DUT進(jìn)行按位比較。
該團(tuán)隊(duì)對(duì)每個(gè)項(xiàng)目使用了相同的驗(yàn)證方法,因此可以確保獲得尚佳質(zhì)量的設(shè)計(jì)(圖5)。
圖5.驗(yàn)證流程
HLS驗(yàn)證流程的高層次步驟包括:
◎ 設(shè)計(jì)人員創(chuàng)建一個(gè)功能模型,驗(yàn)證人員利用必要 的序列和約束建立UVM驗(yàn)證平臺(tái)。此階段的仿真能夠提供對(duì)整體環(huán)境的“正確性”檢查,因此可能會(huì)發(fā)現(xiàn)問(wèn)題。
◎ 在一個(gè)項(xiàng)目中,HLS調(diào)試步驟消耗的時(shí)間最多。此時(shí),需要運(yùn)行相關(guān)序列來(lái)調(diào)試問(wèn)題以及收集代碼和功能覆蓋率指標(biāo)。
◎ 藉由使用相同的UVM驗(yàn)證平臺(tái),團(tuán)隊(duì)可以對(duì) Catapult HLS生成的RTL進(jìn)行仿真。此時(shí),團(tuán)隊(duì) 會(huì)針對(duì)C++設(shè)計(jì)中未建模的功能,例如輸入和輸出之間的延遲以及重置行為,添加一些特定RTL測(cè)試。在此步驟中,團(tuán)隊(duì)還會(huì)仿真HLS流程中未生成的任何RTL(如有)。此時(shí),團(tuán)隊(duì)會(huì)從設(shè)計(jì)的頂層收集代碼和功能覆蓋率指標(biāo)。
符合ISO 26262標(biāo)準(zhǔn)
許多ISP產(chǎn)品的目標(biāo)市場(chǎng)均為汽車(chē)市場(chǎng),這意味著團(tuán)隊(duì)必須遵循ISO 26262標(biāo)準(zhǔn)。ISO 26262是一項(xiàng)針對(duì)重量在3500公斤及以下的公路車(chē)輛中的電氣和電子元器件功能安全的標(biāo)準(zhǔn)。團(tuán)隊(duì)需要確保HLS流程和設(shè)計(jì)穩(wěn)健性符合標(biāo)準(zhǔn)(圖6)。
圖6.HLS流程符合ISO 26262
該標(biāo)準(zhǔn)的其中一個(gè)關(guān)鍵要求是要確保器件沒(méi)有永久性故障(設(shè)計(jì)錯(cuò)誤)。也就是說(shuō),團(tuán)隊(duì)必須確保開(kāi)發(fā)流程是“安全的”。要滿(mǎn)足這一標(biāo)準(zhǔn),則必須應(yīng)用成熟的技術(shù),執(zhí)行一系列測(cè)試,并收集衡量指標(biāo)報(bào)告。團(tuán)隊(duì)沒(méi)有對(duì)Catapult HLS平臺(tái)進(jìn)行 ISO 26262質(zhì)量鑒定。相反,他們對(duì)運(yùn)行測(cè)試的仿真器進(jìn)行了鑒定。雖然團(tuán)隊(duì)不要求在其流程中對(duì)Catapult HLS平臺(tái)進(jìn)行質(zhì)量鑒定,但實(shí)際上Siemens Safe計(jì)劃會(huì)提供該工具的ISO 26262質(zhì)量鑒定和相關(guān)文檔。
另一個(gè)主要要求是要確保設(shè)計(jì)能夠處理單個(gè)或瞬態(tài)故障,并能從中予以恢復(fù)。團(tuán)隊(duì)在ISP外圍使用邏輯BIST和Lockstep(鎖步)等外部安全機(jī)制來(lái)確保其穩(wěn)健性。
從HLS流程獲益
采用基于模板的HLS流程的主要優(yōu)勢(shì)在于,其可大幅減少開(kāi)發(fā)時(shí)間和成本,而又不會(huì)影響結(jié)果和設(shè)計(jì)質(zhì)量(表1)。使用該流程,團(tuán)隊(duì)創(chuàng)建設(shè)計(jì)的速度比手工編碼快了3倍左右,單個(gè)設(shè)計(jì)人員便可執(zhí)行驗(yàn)證,通常不需要單獨(dú)的驗(yàn)證人員資源。
表1. 一名設(shè)計(jì)人員和一名驗(yàn)證人員
花在ISP設(shè)計(jì)項(xiàng)目上的平均時(shí)間
開(kāi)發(fā)成本也將進(jìn)一步降低,原因如下:
◎ 使用C++進(jìn)行驗(yàn)證,以收集關(guān)鍵覆蓋率指標(biāo),這意味著團(tuán)隊(duì)可以在幾分鐘內(nèi)運(yùn)行數(shù)以千計(jì)的測(cè)試,而不像RTL那樣需要幾個(gè)小時(shí)
◎ 與RTL相比,C++代碼的行數(shù)顯著減少,這意味著維護(hù)成本將會(huì)大幅降低
◎ 可以輕松適應(yīng)設(shè)計(jì)流程后期的規(guī)范變化,而不會(huì)影響設(shè)計(jì)進(jìn)度
◎ 短短幾天時(shí)間便可完成對(duì)10名設(shè)計(jì)人員的HLS流程培訓(xùn),這意味著團(tuán)隊(duì)可以快速提高生產(chǎn)率
此外,Catapult HLS平臺(tái)具有自動(dòng)化設(shè)計(jì)實(shí)現(xiàn)的功能,因此可以進(jìn)一步降低HLS流程的開(kāi)發(fā)時(shí)間和成本:
◎ 自動(dòng)流水線(xiàn):通過(guò)指令的簡(jiǎn)單改變提高流水線(xiàn)級(jí) 數(shù),而C++代碼將保持不變。如果是手動(dòng)流水線(xiàn),則需要大量的重新編碼和調(diào)試工作
◎ 自動(dòng)硬件共享:例如,要在一個(gè)流水線(xiàn)的不同狀態(tài)下重復(fù)使用一個(gè)乘法器來(lái)處理同一迭代的幾個(gè)操作,若通過(guò)手動(dòng)實(shí)現(xiàn)將非常困難
◎ 自動(dòng)功能時(shí)鐘門(mén)控:相比手動(dòng)編碼可節(jié)省大量時(shí)間,并能自動(dòng)降低功耗10%
◎ 該團(tuán)隊(duì)發(fā)現(xiàn),使用該工具生成的RTL結(jié)果的質(zhì)量非常出色,尤其是針對(duì)復(fù)雜設(shè)計(jì)時(shí)。
如需了解有關(guān)Catapult HLS解決方案的更多信息,請(qǐng)點(diǎn)擊此處。
-
傳感器
+關(guān)注
關(guān)注
2565文章
52861瀏覽量
766219 -
西門(mén)子
+關(guān)注
關(guān)注
98文章
3166瀏覽量
118114 -
圖像信號(hào)
+關(guān)注
關(guān)注
0文章
27瀏覽量
14258 -
HLS
+關(guān)注
關(guān)注
1文章
133瀏覽量
24791
原文標(biāo)題:客戶(hù)故事|使用HLS流程設(shè)計(jì)和驗(yàn)證圖像信號(hào)處理設(shè)備,加快產(chǎn)品上市
文章出處:【微信號(hào):Mentor明導(dǎo),微信公眾號(hào):西門(mén)子EDA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于FPGA的混合信號(hào)驗(yàn)證流程
新手求助,HLS實(shí)現(xiàn)opencv算法加速的IP在vivado的使用
【正點(diǎn)原子FPGA連載】第一章HLS簡(jiǎn)介-領(lǐng)航者ZYNQ之HLS 開(kāi)發(fā)指南
【正點(diǎn)原子FPGA連載】第六章OV5640攝像頭灰度顯示實(shí)驗(yàn)-領(lǐng)航者ZYNQ之HLS 開(kāi)發(fā)指南
【正點(diǎn)原子FPGA連載】第十三章基于xfOpenCV的中值濾波實(shí)驗(yàn)-領(lǐng)航者ZYNQ之HLS 開(kāi)發(fā)指南
Vivado HLS實(shí)現(xiàn)OpenCV圖像處理的設(shè)計(jì)流程與分析
嵌入式硬件開(kāi)發(fā)學(xué)習(xí)教程——Xilinx Vivado HLS案例 (流程說(shuō)明)
關(guān)于ZYNQ HLS圖像處理加速總結(jié)的分享

HLS/HLV 流程說(shuō)明及優(yōu)勢(shì)

基于Vitis HLS的加速圖像處理

Vitis HLS工具簡(jiǎn)介及設(shè)計(jì)流程
使用HLS封裝的縮放IP來(lái)實(shí)現(xiàn)視頻圖像縮放功能
Vitis HLS圖像處理平臺(tái)搭建
相機(jī)圖像信號(hào)處理流程(ISP)介紹

評(píng)論