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

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

ID:27467873

大小:30.00 KB

頁數(shù):5頁

時(shí)間:2018-12-04

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

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

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

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

3、ab計(jì)算結(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);  給出測試?yán)讨?,A如下:[plain]      8210161566  912898434  1355969285  9296498094  6497819668  b如下:[plain]     

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

6、件,命名為MatrixMultiply.c(后綴不要省略?。缓簏c(diǎn)Next添加頂層文件測試腳本。這里New一個(gè)文件TestMatrixMultiply.c(后綴不要省略?。缓驛dd前面用Matlab生成的A.h,b.h,c.h,如下圖所示:  點(diǎn)Next,選擇解決方案配置,如下圖所示  其余保持默認(rèn),只修改PartSelection部分,改為ZedBoard。改完后,F(xiàn)inish即可進(jìn)入主界面,如下圖所示  可以看出,VivadoHLS界面很像很像XilinxSDK,不同的是前者負(fù)責(zé)PL部分開發(fā),后者負(fù)責(zé)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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

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

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