本實驗練習使用的設計是實驗1并對它進行優化。
步驟1:創建新項目
1.打開Vivado HLS 命令提示符
a.在windows系統中,采用Start>All Programs>Xilinx Design Tools>Vivado2014.2>Vivado HLS>Vivado HLS 2014.2 Command Prompt
b. 在linux系統下,打開新的shell
2.變更到lab3路徑:cdc:\Vivado_HLS_Tutorial\Introduction\lab3.
3.在命令提示符窗口中,鍵入:vivado_hls -f run_hls.tcl建立工程
4.在命令提示符窗口中,鍵入:vivado_hls -p fir_prj在vivado用戶界面打開工程,Vivado HLS打開,如下圖所示。方案1的綜合已經完成
如前面所述,本設計的目標是:
?為這個設計創建一個的最高吞吐量的版本
?最終的設計應該能夠處理一個伴隨輸入有效信號的輸入數據。
?伴隨著一個輸出有效信號的輸出數據。
?為了FIR設計,此濾波器系數存儲在外部的一個單端口的ram中。
步驟2:優化I/O接口
因為設計規范中包含了I/O協議,所以首先你對創建正確的I/O協議和端口執行優化。I/O協議類型的選擇可能會影響設計優化的可能性。如果有I / O協議的規定,應在設計周期的早期設置I/O協議。
在lab1中,查看一下設計中的I/O協議,您可以通過導航找到在solution1\syn文件夾下的報告文件夾中綜合報告,可以重看一遍綜合報告,會發現I/O要求是:
?端口C必須有一個單端口的RAM訪問
?端口X必須有一個指示輸入數據是有效的信號
?端口Y必須有一個指示輸出數據是有效的信號
(重看了綜合報告,看見了Interface里面x,y,c等RTL 端口,但是這樣的具體要求不知道在什么地方體現出來,就是I/O協議方面的要求,應該是下面紅色的圈起來的)
端口C已經是一個單端口RAM的訪問。但是,如果你沒有明確指定的RAM訪問類型,高層次綜合可能會使用雙端口接口的RAM。HLS如果為了創建一個具有更高的吞吐量設計可以這樣做。如果要求是單端口的,你應該明確地添加要求到設計的I / O協議中,要求使用單端口RAM。
輸入端口x在默認情況下是一個簡單的32位數據口。您可以通過指定的I / O協議ap_vld實現它與相關的數據有效信號的輸入數據端口。
輸出Y口已經有一個相關聯的輸出有效信號。這是默認的指針參數。你沒有對這個端口指定明確的端口協議,因此就按照默認要求去實現,但如果要求了,那就按照要求去實現。
為了保存已經存在的結果,創建一個新的解決方案,命名為solution2
1. 點擊New Solution工具欄按鈕,創建一個新的解決方案
2. 保存默認的solution2名字,不要更改任何技術或時鐘設定
3. 點擊完成
創建solution2,并將其設置為默認的解決方案 - 確認solution2是在資源管理器窗格中突出顯示,表示它是當前的解決方案。
要添加優化指令來定義所需的I / O接口的解決方案,請執行以下步驟。
4. 在資源管理器窗口中,打開Source包含項(見圖22)
5. 雙擊fir.c ,在信息窗口中打開文件
6. 激活輔助窗格中的指令選項卡(Directives tab),選擇頂層函數中fir跳轉到源代碼視圖中fir函數的頂部(圖22)。
指令選項卡在圖22右邊展示,列出了在設計中的所有可以被優化的對象。在指令選項卡中,你可以為設計添加優化指令。只有當源代碼是在信息窗格中打開時您才可以查看指令選項卡。
7. 在指令選項卡中,選擇C的參數/端口(綠點)。
8. 右擊并選擇插入指令(Insert Directives)
9. 實現單端口ram接口須按以下操作
a. 從該指令的下拉菜單中選擇源(RESOURCE)(為什么要選擇RESOURCE,這個下拉框中其他選項有什么意義,在什么情況下用,有待研究)
b. 點擊core框
c. 選擇RAM_1P_BRAM, 如圖23所示(這個下拉菜單中也有很多選項,每個選項在什么情況下用有待研究,不知道從什么地方可以找到相關資料)
上述步驟指定數組c是使用單端口塊RAM資源來實現。由于數組c是函數的參數列表,因此是函數之外。自動創建一組數據端口來訪問單端口RAM塊的RTL實現之外。
由于I / O協議是不可能改變的,你可以將這些指令優化添加到源代碼里,作為編譯指示,以確保正確的I/ O協議嵌入到設計中。
10. 在指令編輯器(Directive Editor)中的Destination中選擇源文件(source file)。
11. 要應用指令,單擊OK。
提示:如果你想改變任何指令的目的,就在指令選項卡中的指令雙擊并修改目標。
12. 接下來,指定端口X要有相關的有效信號/端口
a. 在指令選項卡中,選擇輸入端口x(綠色點)
b. 右擊,并選擇Insert Directives
c. 從指令編譯下拉菜單中選擇接口(Interface )
d. 從對話框的Destination中選擇Source File
e. 在mode中選擇ap_vld模式
f. 單擊OK應用指令
13. 最后,明確指定端口Y,有一個相關聯的有效信號/端口。
a. 在指令(Directive)選項卡中,選擇輸入端口y(綠色點)
b. 右擊,并選擇Insert Directives
c. 從指令編譯下拉菜單中選擇接口(Interface )
d. 從對話框的Destination中選擇Source File
e. 選擇ap_vld的模式
f. 單擊確定應用指令
評論
查看更多