Board從入門到精通系列(八).doc

Board從入門到精通系列(八).doc

ID:27467873

大?。?0.00 KB

頁數(shù):5頁

時間:2018-12-04

Board從入門到精通系列(八).doc_第1頁
Board從入門到精通系列(八).doc_第2頁
Board從入門到精通系列(八).doc_第3頁
Board從入門到精通系列(八).doc_第4頁
Board從入門到精通系列(八).doc_第5頁
資源描述:

《Board從入門到精通系列(八).doc》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫

1、Board從入門到精通系列(八)  終于到了HLS部分。HLS是HighLevelSynthesis的縮寫,是一種可以將高級程序設計語言C,C++,SystemC綜合為RTL代碼的工具。生產(chǎn)力的發(fā)展推動了設計模式。在電子技術初級階段,人們關注的是RLC電路,通過建立微分方程求解電路響應。門級電路是對RLC的初步封裝,人們進而采用布爾代數(shù)、卡諾圖進行電路設計與分析。之后隨著集成電路進一步發(fā)展,門電路可以集成為寄存器、觸發(fā)器、ROM等宏單元,設計工具也變得更為高度模塊化。算法級別的電路設計,則一直沒有特別好的工具,直到出現(xiàn)了HLS。HLS可

2、以將算法直接映射為RTL電路,實現(xiàn)了高層次綜合。從這個層面上講,SystemGenerator也是一種高層次綜合工具,因為它將matlab算法描述綜合為RTL代碼。如果今后機器學習、人工智能獲得重大突破,或許會出現(xiàn)將人類自然語言綜合為RTL代碼的工具,不知我們是否能見證它的面世。HLS的學習資源可以參考。本節(jié)給出較為通用的矩陣與向量相乘例子,從全串行到全并行進行了一步步優(yōu)化實現(xiàn)。矩陣實驗室Matlab是比較常用的數(shù)學仿真軟件。本博主用的是R2013a版本。為了驗證矩陣向量相乘正確性,我們先用matlab生成測試矩陣和向量,并利用matl

3、ab計算結(jié)果。代碼如下:[plain]      clear;  clc;  closeall;  N=5;  A=randi([1,100],N,N);  b=randi(100,N,1);  c=A*b;  KKK_SaveToCHeaderFile(A,’A.h’);  KKK_SaveToCHeaderFile(b,’b.h’);  KKK_SaveToCHeaderFile(c,’c.h’);  這里給出的是A*b=c的簡單例子,A為5X5矩陣,b為5X1向量,結(jié)果c為5X1向量。其中KKK_SaveToCHeaderFile

4、()是將矩陣、向量保存為C語言數(shù)組的子函數(shù),定義如下:[plain]      funcTIon[]=KKK_SaveToCHeaderFile(var,fn)  fid=fopen(fn,’w’);  var=reshape(var.’,1,[]);  fprintf(fid,’%d,r’,var);  fclose(fid);  給出測試例程中,A如下:[plain]      8210161566  912898434  1355969285  9296498094  6497819668  b如下:[plain]     

5、 76  75  40  66  18  得到的c如下:980015846165552312422939運行matlab腳本之后,生成三個文件:A.h,b.h,c.h,這些是作為HLS程序的輸入數(shù)據(jù)和參考結(jié)果。下面我們用HLS工具實現(xiàn)上述矩陣X向量的功能。第一步,運行VivadoHLS?! ∵x擇第一項,CreateNewProject,建立新工程MatrixMulTIply  輸入路徑和工程名之后,點Next?! √砑禹攲幽K文件。這里我們TopFuncTIons輸入MatrixMulTIply,然后NewFile...,新建一個.c文

6、件,命名為MatrixMultiply.c(后綴不要省略!),然后點Next添加頂層文件測試腳本。這里New一個文件TestMatrixMultiply.c(后綴不要省略?。?,然后Add前面用Matlab生成的A.h,b.h,c.h,如下圖所示:  點Next,選擇解決方案配置,如下圖所示  其余保持默認,只修改PartSelection部分,改為ZedBoard。改完后,F(xiàn)inish即可進入主界面,如下圖所示  可以看出,VivadoHLS界面很像很像XilinxSDK,不同的是前者負責PL部分開發(fā),后者負責PS軟件編寫,定位不同決定

7、了二者今后的路必然走向分歧。將MatrixMultiply.c內(nèi)容改為:[cpp]      typedefintdata_type;  #defineN5  voidMatrixMultiply(data_typeAA[N*N],data_typebb[N],data_typecc[N])  {  inti,j;  for(i=0;i

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。