• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 網絡與存儲 > 設計應用 > Vivado HLS推動協(xié)議處理系統(tǒng)蓬勃發(fā)展(上)

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

    作者:KimonKarras JamesHrica 時間:2015-04-28 來源:電子產品世界 收藏

      1 提高抽象層次

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

       HLS能提高系統(tǒng)設計的抽象層次,為設計人員帶來切實的幫助。 HLS通過下面兩種方法提高抽象層次:

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

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

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

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

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

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

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

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

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

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

      2 設置簡單系統(tǒng)

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

      如圖1所示。

      構建一個由模塊和子模塊組成的系統(tǒng)意味著需要用一個頂層函數(shù)來調用底層函數(shù)。

      例1:在Vivado HLS中創(chuàng)建簡單系統(tǒng)

      1 void topLevelModule(stream&inData,

      stream&outData) {

      2 #pragma HLS dataflow interval=1

      3

    c語言相關文章:c語言教程


    c++相關文章:c++教程



    上一頁 1 2 下一頁

    關鍵詞: Vivado FIFO 存儲器 RAM C/C++

    評論


    相關推薦

    技術專區(qū)

    關閉
    主站蜘蛛池模板: 大渡口区| 麻栗坡县| 庐江县| 仪征市| 清原| 保亭| 林西县| 海阳市| 青河县| 西宁市| 舒城县| 盐津县| 北碚区| 荆门市| 栾川县| 泰安市| 宁城县| 新乡县| 大田县| 扎鲁特旗| 丹棱县| 金门县| 崇阳县| 肃北| 沙雅县| 治县。| 高密市| 乐陵市| 洞口县| 东方市| 岑巩县| 卢湾区| 永城市| 平度市| 灌南县| 广州市| 兖州市| 兴安县| 广汉市| 舒兰市| 密云县|