0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用HLS流程設計和驗證圖像信號處理設備

西門子EDA ? 來源:西門子EDA ? 2025-01-08 14:39 ? 次閱讀

STMicroelectronics成像部門負責向消費者、工業(yè)、安全和汽車市場提供創(chuàng)新的成像技術(shù)和產(chǎn)品。該團隊精心制定了一套通過模板實現(xiàn)的High-Level Synthesis(HLS)高層次綜合流程,使得上述產(chǎn)品能夠迅速上市。對于汽車市場,該流程符合ISO 26262標準,因此能確保可靠性。

ISP是處理圖像傳感器數(shù)據(jù)的硬件和軟件組合。ISP可能非常復雜,因此該團隊使用了可復用的IP模塊來組裝設計。圖1顯示了一個示例ISP方框圖。

圖1中的ISP顯示了主要ISP功能,并沿著數(shù)據(jù)通路說明了各自所需的諸多處理算法。

33c75c92-cd70-11ef-9310-92fbcf53809c.png

圖1.用于汽車應用的復雜高質(zhì)量ISP

了解HLS工具歷史

成像部門于2007年開始對多媒體IP(編碼器、解碼器、顯示器和ISP功能)運用HLS設計流程,最初使用的是西門子數(shù)字化工業(yè)軟件競爭對手提供的工具。當該工具在2015年停止服務后,該團隊對不同供應商提供的各種HLS工具進行了評估。他們將若干ISP設計用作測試案例,然后監(jiān)測其所生成的RTL的面積和功耗結(jié)果。在此評估基礎(chǔ)上,Catapult High-Level Synthesis平臺因為表現(xiàn)優(yōu)異而被該團隊選中。

借助Catapult HLS平臺,設計人員便能利用行業(yè)標準ANSI C++和SystemC來描述功能意圖,并將其提高到生產(chǎn)率更高的抽象層次。根據(jù)這些高層次的描述,Catapult即可生成產(chǎn)品級的RTL。通過加快RTL生成時間以及自動生成無錯誤的RTL,Catapult可顯著縮短RTL驗證所需的時間。Catapult的功耗優(yōu)化功能可自動大幅降低動態(tài)功耗。高度交互的工作流程可提供對綜合過程的完全可見性和控制,使設計人員能夠在功耗、性能和面積等方面迅速收斂到理想實現(xiàn)方案(圖2)。

33f28d36-cd70-11ef-9310-92fbcf53809c.png

圖2.快速探索架構(gòu)以求得理想功耗和面積

創(chuàng)建成像IP模板

該團隊意識到,ISP是一系列的級聯(lián)濾波器,這些濾波器具有相似的結(jié)構(gòu)和接口。他們的想法是利用C++模板開發(fā)一個參數(shù)化濾波器庫,然后將其復用于每個ISP設計中。這種方法具有如下優(yōu)勢:

◎ 設計效率:復用經(jīng)過驗證的模板可以更快地構(gòu)建ISP

◎ 更新:能夠輕松將更新應用到每個IP模塊,而且可以在一天內(nèi)將算法更改整合完畢

◎ 集中精力:設計人員可以將時間花在增量算法開發(fā)上,而不必在通用結(jié)構(gòu)上耗費心力

◎ 資源:團隊可以為項目開發(fā)更多的IP模塊,且無需增加額外的員工

每個參數(shù)化模板都是一個C++類(圖3),其可實現(xiàn)如下方面功能:

◎ 內(nèi)存管理

◎ 協(xié)議橋

◎ 像素管理內(nèi)核

◎ 連接到驗證平臺

340e27c6-cd70-11ef-9310-92fbcf53809c.png

圖3.設計人員可專注于算法,而不是基礎(chǔ)架構(gòu)

設計人員可覆寫filterFunction以提供算法代碼,然后再通過覆寫execute函數(shù)將其連接到濾波器。

34271768-cd70-11ef-9310-92fbcf53809c.png

利用這一模板流程,該團隊在過去兩年間創(chuàng)建了50多個設計,規(guī)模從1萬個邏輯門到200萬個邏輯門不等。

驗 證 設 計

該團隊使用UVM驗證平臺來指定提供偽隨機驗證及收集代碼和功能覆蓋率指標的序列。該團隊使用了相同的驗證平臺(無需任何修改)來驗證C++和生成的RTL設計。每個驗證平臺(圖4)會為每個項目建立相同的標準集,這樣一來,便可通過自動設置驗證環(huán)境來縮短開發(fā)時間。此標準集包括:

◎ 標準化數(shù)據(jù)的輸入和輸出接口

◎ 標準化寄存器配置接口

◎ 標準化高層次控制(啟用和重置設計)

◎ 標準化輸入和輸出數(shù)據(jù)格式

343ddf0c-cd70-11ef-9310-92fbcf53809c.png

圖4.常見UVM驗證平臺仿真C++(圖中所示)

或RTL被測設計

UVM驗證平臺的常見元素包括操作被測設計(DUT)的測試和序列、約束和功能覆蓋率語句,以及多種檢查器和斷言。圖片和寄存器序列可操作DUT輸入。該團隊使用功能模型對DUT進行按位比較。

該團隊對每個項目使用了相同的驗證方法,因此可以確保獲得尚佳質(zhì)量的設計(圖5)。

3450a45c-cd70-11ef-9310-92fbcf53809c.png

圖5.驗證流程

HLS驗證流程的高層次步驟包括:

◎ 設計人員創(chuàng)建一個功能模型,驗證人員利用必要 的序列和約束建立UVM驗證平臺。此階段的仿真能夠提供對整體環(huán)境的“正確性”檢查,因此可能會發(fā)現(xiàn)問題。

◎ 在一個項目中,HLS調(diào)試步驟消耗的時間最多。此時,需要運行相關(guān)序列來調(diào)試問題以及收集代碼和功能覆蓋率指標。

◎ 藉由使用相同的UVM驗證平臺,團隊可以對 Catapult HLS生成的RTL進行仿真。此時,團隊 會針對C++設計中未建模的功能,例如輸入和輸出之間的延遲以及重置行為,添加一些特定RTL測試。在此步驟中,團隊還會仿真HLS流程中未生成的任何RTL(如有)。此時,團隊會從設計的頂層收集代碼和功能覆蓋率指標。

符合ISO 26262標準

許多ISP產(chǎn)品的目標市場均為汽車市場,這意味著團隊必須遵循ISO 26262標準。ISO 26262是一項針對重量在3500公斤及以下的公路車輛中的電氣電子元器件功能安全的標準。團隊需要確保HLS流程和設計穩(wěn)健性符合標準(圖6)。

346d3dce-cd70-11ef-9310-92fbcf53809c.png

圖6.HLS流程符合ISO 26262

該標準的其中一個關(guān)鍵要求是要確保器件沒有永久性故障(設計錯誤)。也就是說,團隊必須確保開發(fā)流程是“安全的”。要滿足這一標準,則必須應用成熟的技術(shù),執(zhí)行一系列測試,并收集衡量指標報告。團隊沒有對Catapult HLS平臺進行 ISO 26262質(zhì)量鑒定。相反,他們對運行測試的仿真器進行了鑒定。雖然團隊不要求在其流程中對Catapult HLS平臺進行質(zhì)量鑒定,但實際上Siemens Safe計劃會提供該工具的ISO 26262質(zhì)量鑒定和相關(guān)文檔。

另一個主要要求是要確保設計能夠處理單個或瞬態(tài)故障,并能從中予以恢復。團隊在ISP外圍使用邏輯BIST和Lockstep(鎖步)等外部安全機制來確保其穩(wěn)健性。

從HLS流程獲益

采用基于模板的HLS流程的主要優(yōu)勢在于,其可大幅減少開發(fā)時間和成本,而又不會影響結(jié)果和設計質(zhì)量(表1)。使用該流程,團隊創(chuàng)建設計的速度比手工編碼快了3倍左右,單個設計人員便可執(zhí)行驗證,通常不需要單獨的驗證人員資源。

34825eca-cd70-11ef-9310-92fbcf53809c.png

表1. 一名設計人員和一名驗證人員

花在ISP設計項目上的平均時間

開發(fā)成本也將進一步降低,原因如下:

◎ 使用C++進行驗證,以收集關(guān)鍵覆蓋率指標,這意味著團隊可以在幾分鐘內(nèi)運行數(shù)以千計的測試,而不像RTL那樣需要幾個小時

◎ 與RTL相比,C++代碼的行數(shù)顯著減少,這意味著維護成本將會大幅降低

◎ 可以輕松適應設計流程后期的規(guī)范變化,而不會影響設計進度

◎ 短短幾天時間便可完成對10名設計人員的HLS流程培訓,這意味著團隊可以快速提高生產(chǎn)率

此外,Catapult HLS平臺具有自動化設計實現(xiàn)的功能,因此可以進一步降低HLS流程的開發(fā)時間和成本:

◎ 自動流水線:通過指令的簡單改變提高流水線級 數(shù),而C++代碼將保持不變。如果是手動流水線,則需要大量的重新編碼和調(diào)試工作

◎ 自動硬件共享:例如,要在一個流水線的不同狀態(tài)下重復使用一個乘法器來處理同一迭代的幾個操作,若通過手動實現(xiàn)將非常困難

◎ 自動功能時鐘門控:相比手動編碼可節(jié)省大量時間,并能自動降低功耗10%

◎ 該團隊發(fā)現(xiàn),使用該工具生成的RTL結(jié)果的質(zhì)量非常出色,尤其是針對復雜設計時。

如需了解有關(guān)Catapult HLS解決方案的更多信息,請點擊此處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2552

    文章

    51222

    瀏覽量

    754631
  • 西門子
    +關(guān)注

    關(guān)注

    94

    文章

    3049

    瀏覽量

    116050
  • 圖像信號
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    14157
  • HLS
    HLS
    +關(guān)注

    關(guān)注

    1

    文章

    130

    瀏覽量

    24144

原文標題:客戶故事|使用HLS流程設計和驗證圖像信號處理設備,加快產(chǎn)品上市

文章出處:【微信號:Mentor明導,微信公眾號:西門子EDA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA的混合信號驗證流程

    混合信號共同仿真環(huán)境在指定的SoC中驗證混合信號組件?! ≡赑SC流程中,混合信號仿真是沒有必要的。對待組件內(nèi)的模擬功能像開架式分離組件一般
    發(fā)表于 10-16 22:55

    新手求助,HLS實現(xiàn)opencv算法加速的IP在vivado的使用

    是video in to AXI4-Stream,接到DMA,而HLS生成的算法IP是AXI4-Stream in and out。我想把AXI-Stream信號輸出接到HLS輸出的IP,IP經(jīng)過
    發(fā)表于 01-16 09:22

    【正點原子FPGA連載】第一章HLS簡介-領(lǐng)航者ZYNQ之HLS 開發(fā)指南

    的“HLS視頻庫”中的函數(shù),來進行基于HLS的視頻圖像處理。對于上面列出的各個庫,我們同樣會在后續(xù)章節(jié)中用到時候再進行介紹。
    發(fā)表于 10-10 16:44

    【正點原子FPGA連載】第六章OV5640攝像頭灰度顯示實驗-領(lǐng)航者ZYNQ之HLS 開發(fā)指南

    中使用OpenCV作圖像處理。本章包括以下幾個部分:66.1簡介6.2實驗任務6.3HLS設計6.4IP驗證6.5下載驗證6.1簡介Viva
    發(fā)表于 10-13 16:58

    【正點原子FPGA連載】第十三章基于xfOpenCV的中值濾波實驗-領(lǐng)航者ZYNQ之HLS 開發(fā)指南

    簡介13.2實驗任務13.3HLS設計13.4IP驗證13.5下載驗證13.1簡介空間濾波是圖像處理領(lǐng)域應用非常廣泛的工具之一,它可以改善
    發(fā)表于 10-16 16:22

    Vivado HLS實現(xiàn)OpenCV圖像處理的設計流程與分析

    本文通過對OpenCV中圖像類型和函數(shù)處理方法的介紹,通過設計實例描述在vivadoHLS中調(diào)用OpenCV庫函數(shù)實現(xiàn)圖像處理的幾個基本步驟,完成從OpenCV設計到RTL轉(zhuǎn)換綜合的開
    發(fā)表于 07-08 08:30

    嵌入式硬件開發(fā)學習教程——Xilinx Vivado HLS案例 (流程說明)

    、USB、Micro SD、CAN、UART等接口,支持LCD顯示拓展及Qt圖形界面開發(fā),方便快速進行產(chǎn)品方案評估與技術(shù)預研。HLS基本開發(fā)流程如下:HLS工程新建/工程導入編譯與仿真綜合IP核封裝IP核
    發(fā)表于 11-11 09:38

    關(guān)于ZYNQ HLS圖像處理加速總結(jié)的分享

    HLS工具 以個人的理解,xilinx將HLS(高層次綜合)定位于更方便的將復雜算法轉(zhuǎn)化為硬件語言,通過添加某些配置條件HLS工具可以把可并行化的C/C++的代碼轉(zhuǎn)化為vhdl或verilog,相比于純?nèi)斯な褂胿hdl實現(xiàn)
    發(fā)表于 10-12 17:34 ?2432次閱讀
    關(guān)于ZYNQ <b class='flag-5'>HLS</b><b class='flag-5'>圖像</b><b class='flag-5'>處理</b>加速總結(jié)的分享

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

    在特定圖像處理硬件設計中成功運用 High-Level Synthesis (HLS) 和 High-Level Verification (HLV) 數(shù)年之后, Qualcomm 認識到了
    發(fā)表于 09-11 11:37 ?9次下載
    <b class='flag-5'>HLS</b>/HLV <b class='flag-5'>流程</b>說明及優(yōu)勢

    基于Vitis HLS的加速圖像處理

    使用Vivado / Vitis工具提供預安裝的OpenCV版本。盡管Vitis_hls編譯Vision庫不需要OpenCV,但是用戶測試驗證使用時OpenCV。
    的頭像 發(fā)表于 02-16 16:21 ?2477次閱讀
    基于Vitis <b class='flag-5'>HLS</b>的加速<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>

    如何利用HLS功能創(chuàng)建圖像處理解決方案

    本方案利用 HLS 功能創(chuàng)建圖像處理解決方案,在可編程邏輯中實現(xiàn)邊緣檢測 (Sobel)。
    的頭像 發(fā)表于 05-13 17:47 ?3635次閱讀
    如何利用<b class='flag-5'>HLS</b>功能創(chuàng)建<b class='flag-5'>圖像</b><b class='flag-5'>處理</b>解決方案

    Vitis HLS工具簡介及設計流程

    Vitis HLS 是一種高層次綜合工具,支持將 C、C++ 和 OpenCL 函數(shù)硬連線到器件邏輯互連結(jié)構(gòu)和 RAM/DSP 塊上。Vitis HLS 可在Vitis 應用加速開發(fā)流程中實現(xiàn)硬件
    的頭像 發(fā)表于 05-25 09:43 ?2398次閱讀

    使用HLS封裝的縮放IP來實現(xiàn)視頻圖像縮放功能

    這里向大家介紹使用HLS封裝的縮放IP來實現(xiàn)視頻圖像縮放功能。將HLS封裝的縮放IP加入到OV5640圖像傳輸系統(tǒng),驗證
    的頭像 發(fā)表于 10-11 14:21 ?2213次閱讀

    Vitis HLS圖像處理平臺搭建

    在 2019.2 以上的版本中AMD-Xilinx去除了對 OpenCV 的庫函數(shù)的直接支持,需要我們手動搭建一個OpenCV的環(huán)境(主要是仿真環(huán)境),這一步雖然對綜合不影響,但是對于算法的功能驗證還是不方便,所以這一步對于使用OpenCV進行圖像
    的頭像 發(fā)表于 11-21 09:10 ?1234次閱讀

    相機圖像信號處理流程(ISP)介紹

    本文是圖像信號處理流程的一個總體的介紹,以便更好理解一張照片究竟是如何誕生的,實際的技術(shù)要復雜很多。
    的頭像 發(fā)表于 12-09 09:51 ?3134次閱讀
    相機<b class='flag-5'>圖像</b><b class='flag-5'>信號</b><b class='flag-5'>處理</b><b class='flag-5'>流程</b>(ISP)介紹