<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò )與存儲 > 設計應用 > Vivado HLS推動(dòng)協(xié)議處理系統蓬勃發(fā)展(上)

Vivado HLS推動(dòng)協(xié)議處理系統蓬勃發(fā)展(上)

作者:KimonKarras JamesHrica 時(shí)間:2015-04-28 來(lái)源:電子產(chǎn)品世界 收藏

  1 提高抽象層次

本文引用地址:http://dyxdggzs.com/article/273294.htm

   HLS能提高系統設計的抽象層次,為設計人員帶來(lái)切實(shí)的幫助。 HLS通過(guò)下面兩種方法提高抽象層次:

  ● 使用作為編程語(yǔ)言,充分利用該語(yǔ)言中提供的高級結構;

  ● 提供更多數據原語(yǔ),便于設計人員使用基礎硬件構建塊(位向量、隊列等)。

  與使用RTL相比,這兩大特性有助于設計人員使用 HLS更輕松地解決常見(jiàn)的協(xié)議系統設計難題。最終簡(jiǎn)化系統匯編,簡(jiǎn)化訪(fǎng)問(wèn),實(shí)現控制流程的抽象。HLS的另一大優(yōu)勢是便于架構研究和仿真。

  Vivado HLS把C++函數視為模塊,函數定義等效于模塊的RTL描述,函數調用等效于模塊實(shí)例化。這種方法能減少需要用戶(hù)編寫(xiě)的代碼量,進(jìn)而顯著(zhù)簡(jiǎn)化用于系統描述的結構代碼,最終加速系統匯編進(jìn)程。

  在Vivado HLS中,可通過(guò)兩種方法訪(fǎng)問(wèn)。一種是通過(guò)合適的對象(比如對流對象的讀寫(xiě))。另一種是直接訪(fǎng)問(wèn)綜合工具隨后將實(shí)現為Block 或分布式的標準C陣列。綜合工具會(huì )根據需要處理額外的信令、同步或尋址問(wèn)題。

  從控制流的角度,Vivado HLS從簡(jiǎn)單的接口到完整的AXI4-Stream均可提供整套流控制感知接口。使用這些接口,設計人員可直接訪(fǎng)問(wèn)數據,無(wú)需檢查背壓或數據可用性。Vivado HLS會(huì )適當地調度執行,應對一切緊急情況,同時(shí)確保正確完成執行。

  設計人員還會(huì )感激Vivado HLS提供的另一項功能,即簡(jiǎn)便的架構研究功能。用戶(hù)只需在代碼中插入程序指令(如使用GUI或批處理模式時(shí)的Tcl命令),就可以把設計所需特性傳遞給綜合工具。這樣用戶(hù)可以在不修改設計代碼本身的情況下研究大量備選架構方案。研究的范圍可以是模塊流水線(xiàn)化等根本性問(wèn)題,也可以是FIFO隊列深度等較常見(jiàn)的問(wèn)題。

  最后,C和RTL仿真是Vivado HLS另一個(gè)大放異彩的地方。設計一般采用兩步流程驗證:第一步是C語(yǔ)言仿真。這個(gè)步驟中的編譯和執行與常見(jiàn)的程序相同;第二步是C/RTL協(xié)仿真。在這步驟中,Vivado HLS會(huì )根據C/C++測試平臺自動(dòng)生成RTL測試平臺,然后設置并執行RTL仿真,檢查實(shí)現方案8的正確性。

  如能充分發(fā)揮這些優(yōu)勢,這將對于用戶(hù)的系統設計大有裨益。這不僅體現在開(kāi)發(fā)時(shí)間和生產(chǎn)力上,還由于Vivado HLS代碼更加緊湊的特點(diǎn),體現在代碼可維護性和可讀性上。此外通過(guò)高層次綜合,用戶(hù)仍能有效控制架構及其特性。正確理解和使用Vivado HLS程序對實(shí)現這一控制起著(zhù)根本作用。

  高層次綜合在賽靈思提供的包處理解決方案的層級結構中起著(zhù)承上啟下、承前啟后的作用。而Vivado SDNet和RTL則對其起到補充作用。Vivado SDnet使用特定領(lǐng)域語(yǔ)言,提供一種大為簡(jiǎn)便但相當受限的協(xié)議處理系統表達方法。RTL則可以用于Vivado HLS無(wú)法表達的大量系統的實(shí)現工作(例如使用DCM或差分信號并需要詳細時(shí)鐘管理的各類(lèi)系統)。雖然有種種局限,Vivado HLS仍然是在保證結果質(zhì)量或設計人員靈活性的前提下設計大部分協(xié)議處理解決方案的有效途徑。

  2 設置簡(jiǎn)單系統

  開(kāi)始新設計時(shí)需要完成的最基本工作首先是確定設計的結構,然后將其實(shí)現在Vivado HLS中。Vivado HLS中的基本系統構建塊是C/C++函數。構建一個(gè)由模塊和子模塊組成的系統意味著(zhù)需要用一個(gè)頂層函數來(lái)調用底層函數。圖1所示的是一個(gè)極為簡(jiǎn)單的三級流水線(xiàn),我們以此為例來(lái)介紹Vivado HLS中系統構建的基本思路。一般采用流水線(xiàn)化設計執行協(xié)議處理,由每一級負責解決處理的特定部分。

  如圖1所示。

  構建一個(gè)由模塊和子模塊組成的系統意味著(zhù)需要用一個(gè)頂層函數來(lái)調用底層函數。

  例1:在Vivado HLS中創(chuàng )建簡(jiǎn)單系統

  1 void topLevelModule(stream&inData,

  stream&outData) {

  2 #pragma HLS dataflow interval=1

  3

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


c++相關(guān)文章:c++教程



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Vivado FIFO 存儲器 RAM C/C++

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>