STMicroelectronics成像部門負(fù)責(zé)向消費(fèi)者、工業(yè)、安全和汽車市場提供創(chuàng)新的成像技術(shù)和產(chǎn)品。該團(tuán)隊(duì)精心制定了一套通過模板實(shí)現(xiàn)的High-Level Synthesis(HLS)高層次綜合流程,使得上述產(chǎn)品能夠迅速上市。對于汽車市場,該流程符合ISO 26262標(biāo)準(zhǔn),因此能確保可靠性。
ISP是處理圖像傳感器數(shù)據(jù)的硬件和軟件組合。ISP可能非常復(fù)雜,因此該團(tuán)隊(duì)使用了可復(fù)用的IP模塊來組裝設(shè)計(jì)。圖1顯示了一個(gè)示例ISP方框圖。
圖1中的ISP顯示了主要ISP功能,并沿著數(shù)據(jù)通路說明了各自所需的諸多處理算法。

圖1.用于汽車應(yīng)用的復(fù)雜高質(zhì)量ISP
了解HLS工具歷史
成像部門于2007年開始對多媒體IP(編碼器、解碼器、顯示器和ISP功能)運(yùn)用HLS設(shè)計(jì)流程,最初使用的是西門子數(shù)字化工業(yè)軟件競爭對手提供的工具。當(dāng)該工具在2015年停止服務(wù)后,該團(tuán)隊(duì)對不同供應(yīng)商提供的各種HLS工具進(jìn)行了評估。他們將若干ISP設(shè)計(jì)用作測試案例,然后監(jiān)測其所生成的RTL的面積和功耗結(jié)果。在此評估基礎(chǔ)上,Catapult High-Level Synthesis平臺因?yàn)楸憩F(xiàn)優(yōu)異而被該團(tuán)隊(duì)選中。
借助Catapult HLS平臺,設(shè)計(jì)人員便能利用行業(yè)標(biāo)準(zhǔn)ANSI C++和SystemC來描述功能意圖,并將其提高到生產(chǎn)率更高的抽象層次。根據(jù)這些高層次的描述,Catapult即可生成產(chǎn)品級的RTL。通過加快RTL生成時(shí)間以及自動(dòng)生成無錯(cuò)誤的RTL,Catapult可顯著縮短RTL驗(yàn)證所需的時(shí)間。Catapult的功耗優(yōu)化功能可自動(dòng)大幅降低動(dòng)態(tài)功耗。高度交互的工作流程可提供對綜合過程的完全可見性和控制,使設(shè)計(jì)人員能夠在功耗、性能和面積等方面迅速收斂到理想實(shí)現(xiàn)方案(圖2)。

圖2.快速探索架構(gòu)以求得理想功耗和面積
創(chuàng)建成像IP模板
該團(tuán)隊(duì)意識到,ISP是一系列的級聯(lián)濾波器,這些濾波器具有相似的結(jié)構(gòu)和接口。他們的想法是利用C++模板開發(fā)一個(gè)參數(shù)化濾波器庫,然后將其復(fù)用于每個(gè)ISP設(shè)計(jì)中。這種方法具有如下優(yōu)勢:
◎ 設(shè)計(jì)效率:復(fù)用經(jīng)過驗(yàn)證的模板可以更快地構(gòu)建ISP
◎ 更新:能夠輕松將更新應(yīng)用到每個(gè)IP模塊,而且可以在一天內(nèi)將算法更改整合完畢
◎ 集中精力:設(shè)計(jì)人員可以將時(shí)間花在增量算法開發(fā)上,而不必在通用結(jié)構(gòu)上耗費(fèi)心力
◎ 資源:團(tuán)隊(duì)可以為項(xiàng)目開發(fā)更多的IP模塊,且無需增加額外的員工
每個(gè)參數(shù)化模板都是一個(gè)C++類(圖3),其可實(shí)現(xiàn)如下方面功能:
◎ 內(nèi)存管理
◎ 協(xié)議橋
◎ 像素管理內(nèi)核
◎ 連接到驗(yàn)證平臺

圖3.設(shè)計(jì)人員可專注于算法,而不是基礎(chǔ)架構(gòu)
設(shè)計(jì)人員可覆寫filterFunction以提供算法代碼,然后再通過覆寫execute函數(shù)將其連接到濾波器。

利用這一模板流程,該團(tuán)隊(duì)在過去兩年間創(chuàng)建了50多個(gè)設(shè)計(jì),規(guī)模從1萬個(gè)邏輯門到200萬個(gè)邏輯門不等。
驗(yàn) 證 設(shè) 計(jì)
該團(tuán)隊(duì)使用UVM驗(yàn)證平臺來指定提供偽隨機(jī)驗(yàn)證及收集代碼和功能覆蓋率指標(biāo)的序列。該團(tuán)隊(duì)使用了相同的驗(yàn)證平臺(無需任何修改)來驗(yàn)證C++和生成的RTL設(shè)計(jì)。每個(gè)驗(yàn)證平臺(圖4)會為每個(gè)項(xiàng)目建立相同的標(biāo)準(zhǔn)集,這樣一來,便可通過自動(dòng)設(shè)置驗(yàn)證環(huán)境來縮短開發(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.常見UVM驗(yàn)證平臺仿真C++(圖中所示)
或RTL被測設(shè)計(jì)
UVM驗(yàn)證平臺的常見元素包括操作被測設(shè)計(jì)(DUT)的測試和序列、約束和功能覆蓋率語句,以及多種檢查器和斷言。圖片和寄存器序列可操作DUT輸入。該團(tuán)隊(duì)使用功能模型對DUT進(jìn)行按位比較。
該團(tuán)隊(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)證平臺。此階段的仿真能夠提供對整體環(huán)境的“正確性”檢查,因此可能會發(fā)現(xiàn)問題。
◎ 在一個(gè)項(xiàng)目中,HLS調(diào)試步驟消耗的時(shí)間最多。此時(shí),需要運(yùn)行相關(guān)序列來調(diào)試問題以及收集代碼和功能覆蓋率指標(biāo)。
◎ 藉由使用相同的UVM驗(yàn)證平臺,團(tuán)隊(duì)可以對 Catapult HLS生成的RTL進(jìn)行仿真。此時(shí),團(tuán)隊(duì) 會針對C++設(shè)計(jì)中未建模的功能,例如輸入和輸出之間的延遲以及重置行為,添加一些特定RTL測試。在此步驟中,團(tuán)隊(duì)還會仿真HLS流程中未生成的任何RTL(如有)。此時(shí),團(tuán)隊(duì)會從設(shè)計(jì)的頂層收集代碼和功能覆蓋率指標(biāo)。
符合ISO 26262標(biāo)準(zhǔn)
許多ISP產(chǎn)品的目標(biāo)市場均為汽車市場,這意味著團(tuán)隊(duì)必須遵循ISO 26262標(biāo)準(zhǔn)。ISO 26262是一項(xiàng)針對重量在3500公斤及以下的公路車輛中的電氣和電子元器件功能安全的標(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)鍵要求是要確保器件沒有永久性故障(設(shè)計(jì)錯(cuò)誤)。也就是說,團(tuán)隊(duì)必須確保開發(fā)流程是“安全的”。要滿足這一標(biāo)準(zhǔn),則必須應(yīng)用成熟的技術(shù),執(zhí)行一系列測試,并收集衡量指標(biāo)報(bào)告。團(tuán)隊(duì)沒有對Catapult HLS平臺進(jìn)行 ISO 26262質(zhì)量鑒定。相反,他們對運(yùn)行測試的仿真器進(jìn)行了鑒定。雖然團(tuán)隊(duì)不要求在其流程中對Catapult HLS平臺進(jìn)行質(zhì)量鑒定,但實(shí)際上Siemens Safe計(jì)劃會提供該工具的ISO 26262質(zhì)量鑒定和相關(guān)文檔。
另一個(gè)主要要求是要確保設(shè)計(jì)能夠處理單個(gè)或瞬態(tài)故障,并能從中予以恢復(fù)。團(tuán)隊(duì)在ISP外圍使用邏輯BIST和Lockstep(鎖步)等外部安全機(jī)制來確保其穩(wěn)健性。
從HLS流程獲益
采用基于模板的HLS流程的主要優(yōu)勢在于,其可大幅減少開發(fā)時(shí)間和成本,而又不會影響結(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í)間
開發(fā)成本也將進(jìn)一步降低,原因如下:
◎ 使用C++進(jìn)行驗(yàn)證,以收集關(guān)鍵覆蓋率指標(biāo),這意味著團(tuán)隊(duì)可以在幾分鐘內(nèi)運(yùn)行數(shù)以千計(jì)的測試,而不像RTL那樣需要幾個(gè)小時(shí)
◎ 與RTL相比,C++代碼的行數(shù)顯著減少,這意味著維護(hù)成本將會大幅降低
◎ 可以輕松適應(yīng)設(shè)計(jì)流程后期的規(guī)范變化,而不會影響設(shè)計(jì)進(jìn)度
◎ 短短幾天時(shí)間便可完成對10名設(shè)計(jì)人員的HLS流程培訓(xùn),這意味著團(tuán)隊(duì)可以快速提高生產(chǎn)率
此外,Catapult HLS平臺具有自動(dòng)化設(shè)計(jì)實(shí)現(xiàn)的功能,因此可以進(jìn)一步降低HLS流程的開發(fā)時(shí)間和成本:
◎ 自動(dòng)流水線:通過指令的簡單改變提高流水線級 數(shù),而C++代碼將保持不變。如果是手動(dòng)流水線,則需要大量的重新編碼和調(diào)試工作
◎ 自動(dòng)硬件共享:例如,要在一個(gè)流水線的不同狀態(tài)下重復(fù)使用一個(gè)乘法器來處理同一迭代的幾個(gè)操作,若通過手動(dòng)實(shí)現(xiàn)將非常困難
◎ 自動(dòng)功能時(shí)鐘門控:相比手動(dòng)編碼可節(jié)省大量時(shí)間,并能自動(dòng)降低功耗10%
◎ 該團(tuán)隊(duì)發(fā)現(xiàn),使用該工具生成的RTL結(jié)果的質(zhì)量非常出色,尤其是針對復(fù)雜設(shè)計(jì)時(shí)。
如需了解有關(guān)Catapult HLS解決方案的更多信息,請點(diǎn)擊此處。
-
傳感器
+關(guān)注
關(guān)注
2576文章
55032瀏覽量
791261 -
西門子
+關(guān)注
關(guān)注
98文章
3310瀏覽量
120375 -
圖像信號
+關(guān)注
關(guān)注
0文章
29瀏覽量
14322 -
HLS
+關(guān)注
關(guān)注
1文章
135瀏覽量
25831
原文標(biāo)題:客戶故事|使用HLS流程設(shè)計(jì)和驗(yàn)證圖像信號處理設(shè)備,加快產(chǎn)品上市
文章出處:【微信號:Mentor明導(dǎo),微信公眾號:西門子EDA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于FPGA的混合信號驗(yàn)證流程
新手求助,HLS實(shí)現(xiàn)opencv算法加速的IP在vivado的使用
【正點(diǎn)原子FPGA連載】第一章HLS簡介-領(lǐng)航者ZYNQ之HLS 開發(fā)指南
【正點(diǎn)原子FPGA連載】第六章OV5640攝像頭灰度顯示實(shí)驗(yàn)-領(lǐng)航者ZYNQ之HLS 開發(fā)指南
【正點(diǎn)原子FPGA連載】第十三章基于xfOpenCV的中值濾波實(shí)驗(yàn)-領(lǐng)航者ZYNQ之HLS 開發(fā)指南
Vivado HLS實(shí)現(xiàn)OpenCV圖像處理的設(shè)計(jì)流程與分析
嵌入式硬件開發(fā)學(xué)習(xí)教程——Xilinx Vivado HLS案例 (流程說明)
關(guān)于ZYNQ HLS圖像處理加速總結(jié)的分享
HLS/HLV 流程說明及優(yōu)勢
基于Vitis HLS的加速圖像處理
使用HLS流程設(shè)計(jì)和驗(yàn)證圖像信號處理設(shè)備
評論