<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

            1 提高抽象層次

          本文引用地址:http://www.ex-cimer.com/article/273294.htm

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

            ● 使用作為編程語(yǔ)言,充分利用該語(yǔ)言中提供的高級(jí)結(jié)構(gòu);

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

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

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

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

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

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

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

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

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

            2 設(shè)置簡(jiǎn)單系統(tǒng)

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

            如圖1所示。

            構(gòu)建一個(gè)由模塊和子模塊組成的系統(tǒng)意味著需要用一個(gè)頂層函數(shù)來(lái)調(diào)用底層函數(shù)。

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

            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 存儲(chǔ)器 RAM C/C++

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();