1. 程式人生 > >xilinx vivado HLS 小記

xilinx vivado HLS 小記

目前FPGA主要用於介面、通訊等,HLS的出現使得opencv中的C程式碼通過綜合直接部署到硬體。
HLS主要應用場景在與演算法更密切的應用如DSP影象處理。
RTL:暫存器傳輸級 register transfer level

verilog中分級是:系統級,演算法級,RTL級,門級,開關級(分為行為級、結構級)
verilog建模方式分為:行為級和結構級。
xilinx的高層次綜合(High level Synthesis, HLS)HLS技術是將C/C++/System C 軟體語言轉換成verilog和VHDL硬體描述語言的技術。

HLS主要有以下功能:
1)從C語言到RTL級實現,關鍵在於綜合約束
2)從C語言提取出控制和資料流
3)從預設和使用者定義命令實現設計

高階綜合工具的核心是排程(schedule)、繫結(binding)或分配(clllocation)。
設計中C程式碼關鍵屬性:
1)函式:所有程式碼由函式組成,函式用於表示設計的層次,這對於硬體也是一樣的。
2)引數:頂層函式的引數決定了硬體RTL的埠
3)陣列:預設地陣列用RAM實現(或FIFO)

目前HLS只存在vivado中,ISE無HLS;
HLS 能夠快速生成可實現硬體演算法加速器所需要的HDL程式碼,而且提供完整的AXI介面,能直接插入zynq SOC的PL。
下面說明opencv和hls中使用的opencv函式的區別和聯絡
opencv中影象型別有:IPImage CvMat Mat型別等,對應的vivoda的HLS中影象hls::mat型別。
opencv中常用與影象操作有關的資料容器有Mat,cvMat 和IpImage,均可代表和顯示影象,但Mat型別側重與計算,數學性較高,而CvMat和IpImage更側重於影象,opencv對影象操作(縮放、單通道)進行優化。
opencv和hls:opencv的區別是:


1、opencv基於資料幀,很難用於高解析度和高幀率;HLS基於資料流優化來實現;
2、HLS用定點運算而非浮點運算
3、片上行快取,視窗快取
開發中使用vivoda HLS實現Opencv的設計流程:
1)在計算機上開發opencv應用;
2)使用I/O函式抽取FPGA實現部分,用HLS庫代替opencv函式;
3)執行HLS生成程式碼,在Xilinx的ISE或vivado做RTL整合和FPGA實現。

HLS實現opencv侷限性:
1)必須用HLS視訊庫函式代替opencv呼叫
2)不支援opencv訪問幀快取
3)不支援opencv的隨機訪問
4)不支援opencv 的Ip-place更新

相關推薦

xilinx vivado HLS 小記

目前FPGA主要用於介面、通訊等,HLS的出現使得opencv中的C程式碼通過綜合直接部署到硬體。 HLS主要應用場景在與演算法更密切的應用如DSP影象處理。 RTL:暫存器傳輸級 register transfer level verilog中分級是:系

Vivado HLS Coding Style

bubuko ima TP ont uid tst styles level image Vivado Design Suite User GuideHigh-Level SynthesisUG902 (v2017.2) June 7, 2017 Chapter 3. Hi

[轉]Xilinx Vivado的使用詳細介紹(1):創建工程、編寫代碼、行為仿真、Testbench

always 選擇器 資料 多個 sign bench 通過 output tar 新建工程 打開Vivado軟件,直接在歡迎界面點擊Create New Project,或在開始菜單中選擇File - New Project即可新建工程。 點擊Next 輸入工程名稱和

Xilinx Vivado的使用詳細介紹(5):調用用戶自定義封裝的IP核

cond 5.4 vba adding 計算機 property with 我們 class Zedboard OLED Display Controller IP v1 介紹

Vivado HLS實現FIR濾波器(2)——Vivado呼叫HLS生成的FIR IP核

系統框圖 器件xq7a50tfg484-2I,兩個DDS,輸入時鐘100MHz,輸出分別為8MHz和12MHz,位寬為16位,相乘後輸出位寬32位,三角函式積化和差得4MHz訊號和20MHz訊號,濾波器設計採用Filter Solutions 2015,截止頻率10MHz,取樣率10

Vivado HLS實現FIR濾波器(1)——使用官方C程式碼實現FIR

使用官方C程式碼實現FIR 參考資料: 不同點說明 程式結構 C語言程式碼 模擬綜合 參考資料: 教程——基於HLS實現FIR濾波器https://blog.csdn.net/LZY27

System Generator從入門到放棄(九)-利用Vivado HLS block實現Vivado HLS呼叫C/C++程式碼

System Generator從入門到放棄(九)-利用Vivado HLS block實現Vivado HLS呼叫C/C++程式碼 文章目錄 System Generator從入門到放棄(九)-利用Vivado HLS block實現Vivado HLS

System Generator從入門到放棄(六)-利用Vivado HLS block實現Vivado HLS呼叫C/C++程式碼

System Generator從入門到放棄(六)-利用Vivado HLS block實現Vivado HLS呼叫C/C++程式碼 文章目錄 System Generator從入門到放棄(六)-利用Vivado HLS block實現Vivado HLS

初窺Vivado HLS--轉載我之前的blog的內容

本週剛剛打算入手一個ZYNQ的開發板,想體驗一下賽靈思的最新科技ARM + FPGA架構,於是開始接觸一下vivado的高階綜合令人興奮!下面開始介紹! 1,Vivado的HLS高階綜合。 我是在電子發燒友看到這邊文章: http://www.elecfans.com/emb/

Vivado HLS 程式優化

 前言(本文基於賽靈思官方HLS文件UG871中的7.1節):           在使用高層次綜合,創造高質量的RTL設計時,一個重要部分就是對C程式碼進行優化。  

Vivado HLS 程式優化(基礎例項)(高階綜合)(FPGA)

 前言(本文基於賽靈思官方HLS文件UG871中的7.1節):           在使用高層次綜合,創造高質量的RTL設計時,一個重要部分就是對C程式碼進行優化。         &nb

Vivado HLS中的TCL命令介面(指令碼語言)(高階綜合)(FPGA)

前言:這個例項源於賽靈思的官方HLS手冊——(UG871),展示瞭如何基於已存在的Vivado HLS工程來建立一個TCL指令碼命令和如何應用TCL介面(已存在的工程為"lab1",使用TCL新建立的工程為“lab2”),軟體版本2013.4和2017.4均親測有效。 一、步驟1:

Xilinx Vivado的使用詳細介紹(3):使用IP核

ilinx Vivado的使用詳細介紹(3):使用IP核 Author:zhangxianhe IP核(IP Core) Vivado中有很多IP核可以直接使用,例如數學運算(乘法器、除法器、浮點運算器等)、訊號處理(FFT、DFT、DDS等)。IP核類似程式設計中的函式庫(例如C語言中的printf()

Xilinx Vivado的使用詳細介紹(4):Zedboard+vivado之流水燈(加SDK)

Vivado+zedboard之初學流水燈 Author:zhangxianhe 環境:vivado 2016.3(已驗證適用於2015.4) 開發板:Zedboard version xc7z020clg484-1 實驗:使用Vivado和SDK進行Zedboard開發,製作一個簡單的流水燈程式以說明軟硬體

Xilinx Vivado的使用詳細介紹(5):呼叫使用者自定義封裝的IP核

Zedboard OLED Display Controller IP v1 介紹                                                                                                                  

Ubuntu16.04 下啟動 Vivado HLS

首先需要說明一下:今天遇到的這個問題給了我很大的感觸,由於最近正在學習Zynq,從我在網上看到的部落格來說,重複的內容太多,好多人的部落格都是在照貓畫虎,導致搜尋問題解決方案的時候,很費勁,這種情況會浪費很多時間,與部落格發展的初衷相違背。 遇到的問題 : 在Ubuntu系統下

PYNQ上手筆記 | ⑤採用Vivado HLS進行高層次綜合設計

1.實驗目的 通過例程探索Vivado HLS設計流 用圖形使用者介面和TCL指令碼兩種方式建立Vivado HLS專案 用各種HLS指令綜合介面 優化Vivado HLS設計來滿足各種約束 用不用的指令來探索多個HLS解決方案 2.實驗內容

Xilinx Vivado的使用詳細介紹(2):綜合、實現、管腳分配、時鐘設定、燒寫

前面一篇介紹了從新建工程一直到編寫程式碼進行行為模擬,這篇繼續進行介紹。 修改器件型號 新建工程時選擇過器件型號,如果新建好工程後需要修改型號,可以選擇選單Tools - Project Settings。 彈出視窗中,點選Project Device右側的按鈕

第3課:10 分鐘上手 Vivado HLS

Vivado HLS設計流程 使用Xilinx提供的特有C語言庫進行演算法設計 使用編譯器進行C語言原始碼語法檢查 編寫C語言的test bench 進行C模擬和基於C餘元test bench的RTL級模擬 模擬結果檢視和分析 IP核打包和匯出

vivado HLS入門流程

參照部落格1和部落格2走了一遍,遇到問題註釋一下,以便他人節省時間。 問題描述:生成波形檔案無法開啟。 解決: 1、在HLS介面設定部落格中所說 Solution > Run C/RTL Cosimulation,模擬完成後,需要在Vivado下檢視模擬結果。