<li id="wkceg"></li>
<rt id="wkceg"><delect id="wkceg"></delect></rt>
<bdo id="wkceg"></bdo>
<strike id="wkceg"><acronym id="wkceg"></acronym></strike>

  • 帳號(hào):
    密碼:
    智動(dòng)化 / 文章 /

    利用模型化基礎(chǔ)設(shè)計(jì)將通訊協(xié)定佈署至FPGA
    [作者 Hung Nguyen等人]   2018年04月16日 星期一 瀏覽人次: [11033]


    為了在追求加速嵌入系統(tǒng)開發(fā)及維持其可靠性的同時(shí),又能夠兼顧降低開發(fā)成本,產(chǎn)業(yè)界開始轉(zhuǎn)向可重組的設(shè)計(jì)架構(gòu),這種架構(gòu)能夠適用於未來的任務(wù)要求,並且可以掌握系統(tǒng)失靈的狀況。這些可重組的子系統(tǒng)通常以資源受限的FPGA硬體、或者功能完善、帶有特定DSP的多核心處理系統(tǒng)為基礎(chǔ)。


    以FPGAs做為目標(biāo)硬體時(shí),必須使用Verilog或VHDL來開發(fā),而處理器的開發(fā)則是須透過C/C++。許多演算法與零件,特別是與通訊相關(guān)領(lǐng)域,會(huì)同時(shí)需要將以處理器為基礎(chǔ)與FPGA為基礎(chǔ)的兩種子系統(tǒng)作為目標(biāo)。


    美國桑迪亞國家實(shí)驗(yàn)室(Sandia National Laboratories)與來自MathWorks公司的顧問展開一項(xiàng)計(jì)畫來評(píng)估這類應(yīng)用的模型化基礎(chǔ)設(shè)計(jì)(Model-Based Design)。模型化基礎(chǔ)設(shè)計(jì)幫助他們從方塊圖產(chǎn)生C/C++或HDL,並將相同的演算法轉(zhuǎn)檔佈署到以處理器為基礎(chǔ)與以FPGA為基礎(chǔ)的兩種子系統(tǒng)上。這項(xiàng)計(jì)畫包含實(shí)現(xiàn)兩種標(biāo)準(zhǔn)化的通訊協(xié)定,Joint Architecture Standard Packet Protocol(JPP)與Joint Architecture Standard Reliable Data Delivery Protocol(JRDDP)。JPP與JRDDP為建立在SpaceWire-常用於嵌入式系統(tǒng)模組間通訊物理協(xié)定層級(jí)之上的高階協(xié)定。桑迪亞國家實(shí)驗(yàn)室使用一個(gè)以手動(dòng)編碼版本的協(xié)定來評(píng)估透過模型化基礎(chǔ)設(shè)計(jì)開發(fā)的執(zhí)行成果。


    本文將介紹這項(xiàng)計(jì)畫,聚焦於模型架構(gòu)以及用來進(jìn)行驗(yàn)證的技術(shù),證明了模型化基礎(chǔ)設(shè)計(jì)非常適合使用在協(xié)定的執(zhí)行。


    設(shè)計(jì)要求

    JPP與JRDDP通訊協(xié)定指定了資料如何從來源節(jié)點(diǎn)傳輸至目標(biāo)節(jié)點(diǎn),並指定封包的格式與封包傳輸與再次傳輸?shù)捻樞颉?/span>


    由於需要執(zhí)行這些協(xié)定的活動(dòng)是預(yù)先定義且有特定次序,使用狀態(tài)機(jī)因此成為一個(gè)合乎邏輯的選擇。我們決定使用Simulink和Stateflow來執(zhí)行建立模型與產(chǎn)生C和HDL協(xié)定程式碼的狀態(tài)機(jī)。


    模型架構(gòu)

    這項(xiàng)計(jì)畫包含利用Simulink和Stateflow開發(fā)JPP與JRDDP模型。作為一項(xiàng)詳盡的協(xié)定,JPP只需要一個(gè)發(fā)射器模塊與接收器模塊。JRDDP則比較複雜一些,由於它是一個(gè)可靠的封包傳送協(xié)定,擔(dān)保資料在應(yīng)用程序之間的傳輸,因此必需具備傳送及接收資料封包與控制封包的模塊。


    為了這項(xiàng)計(jì)畫而開發(fā)的模塊經(jīng)過優(yōu)化以執(zhí)行在硬體上(FPGA)。使用者應(yīng)用程序必須讓資料以運(yùn)作時(shí)鐘頻率串流往返於模塊之間。發(fā)射器模塊提供了一個(gè)雙埠RAM模塊,使用者應(yīng)用程序在觸發(fā)開始傳送的訊號(hào)之前先在這裡面串流資料。


    接收器模塊維持兩組雙埠RAM,接收到的資料被串流為其抵達(dá)時(shí)候的樣子。當(dāng)完整的資料封包形成,會(huì)以一個(gè)訊號(hào)脈衝通知使用者應(yīng)用程序在對(duì)應(yīng)的記憶體區(qū)域(bank)有一個(gè)完整的封包可以使用。



    圖1 : 使用者應(yīng)用程序與JPP之間的介面
    圖1 : 使用者應(yīng)用程序與JPP之間的介面

    所有的發(fā)射器模塊都有相同的架構(gòu)。圖二為JPP發(fā)射器模塊的頂層架構(gòu)。



    圖2 : JPP發(fā)射器
    圖2 : JPP發(fā)射器

    這個(gè)發(fā)射器一端連結(jié)到使用者應(yīng)用程序,另一端連結(jié)到SpaceWire介面


    接收器模塊也有類似的結(jié)構(gòu)(圖3)。



    圖3 : JPP接收器
    圖3 : JPP接收器

    圖4為使用JPP協(xié)定傳送與接收資料完整應(yīng)用程序。



    圖4 : 以JPP為基礎(chǔ)的完整應(yīng)用程序。發(fā)射器應(yīng)用程序(左上)產(chǎn)生資料並使用JPP發(fā)射到接收器應(yīng)用程序(右上)。JPP發(fā)射器與接收器(圖中)連接到SpaceWire介面。
    圖4 : 以JPP為基礎(chǔ)的完整應(yīng)用程序。發(fā)射器應(yīng)用程序(左上)產(chǎn)生資料並使用JPP發(fā)射到接收器應(yīng)用程序(右上)。JPP發(fā)射器與接收器(圖中)連接到SpaceWire介面。

    執(zhí)行更高階的JRDDP協(xié)定

    JRDDP是一個(gè)高階的協(xié)定,因此建模會(huì)比JPP更有挑戰(zhàn)性。JRDDP定義了初始化階段發(fā)射端點(diǎn)與接收端點(diǎn)之間互相連結(jié)的通訊。一個(gè)節(jié)點(diǎn)可能具備多個(gè)發(fā)射和接收端點(diǎn)。完整的JRDDP端點(diǎn)必須將基礎(chǔ)JRDDP模塊組合在一起並為其安排計(jì)畫。


    我們建立一個(gè)帶有兩個(gè)發(fā)射端點(diǎn)的範(fàn)例發(fā)射器與帶有兩個(gè)接收端點(diǎn)的範(fàn)例接收器來說明這個(gè)處理過程。


    JRDDP定義了端點(diǎn)必須經(jīng)過的幾種不同的狀態(tài)。在最初的狀態(tài),端點(diǎn)是「關(guān)閉(Closed)」的。當(dāng)使用者應(yīng)用程序請(qǐng)求將端點(diǎn)打開,端點(diǎn)會(huì)轉(zhuǎn)換到「啟用(Enabled)」的狀態(tài),在這裡端點(diǎn)發(fā)送一個(gè)打開的請(qǐng)求到遙控端點(diǎn)。接收到確認(rèn)之後,端點(diǎn)轉(zhuǎn)換為「開啟(Open)」?fàn)顟B(tài)。在「開啟」?fàn)顟B(tài),使用者應(yīng)用程序可以發(fā)射資料到遙控節(jié)點(diǎn)。


    模型化基礎(chǔ)設(shè)計(jì)讓我們能夠在一個(gè)Stateflow圖表裡面捕捉到整個(gè)複雜的過程(圖5)。



    圖5 : JRDDP狀態(tài)圖
    圖5 : JRDDP狀態(tài)圖

    完整的JRDDP執(zhí)行包含維持每一個(gè)端點(diǎn)的JRDDP狀態(tài)機(jī),以及使用JRDDP來建立模塊:一個(gè)JRDDP發(fā)射模塊、一個(gè)JRDDP接收器模塊、一個(gè)JRDDP控制與確認(rèn)封包模塊。我們需要建立Simulink和Stateflow模塊來把資料從SpaceWire介面引導(dǎo)到適當(dāng)端點(diǎn)的狀態(tài)機(jī),以及從端點(diǎn)的狀態(tài)機(jī)引導(dǎo)到SpaceWire介面。


    圖6說明了兩個(gè)發(fā)射端點(diǎn)的JRDDP端點(diǎn)執(zhí)行。圖的上方為兩個(gè)JRDDP狀態(tài)機(jī),對(duì)應(yīng)到兩個(gè)端點(diǎn)。中間的Stateflow圖表是一個(gè)封包的路由器,將控制與資料封包從每一個(gè)狀態(tài)機(jī)引導(dǎo)到控制或資料發(fā)射器模塊。這張圖表包含了一個(gè)將接收到的封包引導(dǎo)到適當(dāng)端點(diǎn)狀態(tài)機(jī)的資料接收器。



    圖6 : 雙通道JRDDP發(fā)射端點(diǎn)
    圖6 : 雙通道JRDDP發(fā)射端點(diǎn)

    將SpaceWire介面整合為桑迪亞IP

    桑迪亞開發(fā)了VHDL智慧財(cái)產(chǎn)(intellectual property,IP)來建立SpaceWire接收器與發(fā)射器端點(diǎn)。對(duì)於桑迪亞來說,評(píng)估將一個(gè)已經(jīng)使用在生產(chǎn)多年的IP整合到從Simulink模型透過HDL Coder產(chǎn)生的HDL程式碼的難易度是相當(dāng)重要的。


    Simulink可以進(jìn)行黑盒子處理,子系統(tǒng)的建立僅包含了用來將手動(dòng)編寫的實(shí)體物實(shí)例化的介面連接埠。工程師可以將空的子系統(tǒng)關(guān)聯(lián)到一個(gè)外部的VHDL實(shí)體物或Verilog模組。我們使用黑盒子來將桑迪亞的SpaceWire IP與Simulink模型結(jié)合,來開發(fā)完整的JPP與JRDDP協(xié)定介面。我們也使用黑盒子來與桑迪亞的手動(dòng)編碼JPP協(xié)定的執(zhí)行成果相比較,測(cè)試Simulink產(chǎn)生的JPP介面。


    驗(yàn)證與測(cè)試

    在Simulink進(jìn)行協(xié)定開發(fā)有幾個(gè)優(yōu)點(diǎn),特別是在非常高的層級(jí)測(cè)試協(xié)定的能力。在這樣的階層進(jìn)行除錯(cuò)比起在硬體或硬體模擬器除錯(cuò)的成本更低、更容易、而且更快速。我們透過以下五個(gè)步驟來完成驗(yàn)證:


    1.在Simulink模擬發(fā)射與接收訊息。為此,我們?cè)赟tateflow建立一個(gè)SpaceWire介面的函式模型。Simulink支援高階除錯(cuò),讓使用者可以在模塊層級(jí)、在Stateflow狀態(tài)、以及在狀態(tài)轉(zhuǎn)換時(shí)都可以設(shè)置中斷點(diǎn)。除此之外,Simulink能夠激發(fā)狀態(tài)的轉(zhuǎn)換,提供視覺上的驗(yàn)證讓模型的表現(xiàn)可以如同期望。


    2.利用HDL Verifier透過Simulink模型協(xié)同模擬產(chǎn)生出來的VHDL來證實(shí)從Simulink產(chǎn)生的VHDL與原始Simulink模型帶來相同的結(jié)果。因此HDL Verifier自動(dòng)地對(duì)結(jié)果、圖表、錯(cuò)誤進(jìn)行比較。在這個(gè)步驟,我們使用Stateflow來模擬SpaceWire介面;沒有使用到真正的SpaceWire IP。


    3.再一次使用協(xié)同模擬,以桑迪亞的SpaceWire介面IP取代SpaceWire函式模型。我們使用協(xié)同模擬模型在ModelSim產(chǎn)生測(cè)試輸入值並在Simulink得到結(jié)果。


    4.將接收器替換為桑迪亞的手動(dòng)編碼執(zhí)行的JPP接收器


    5.以桑迪亞VHDL JPP接收器替換掉在Simulink與Stateflow開發(fā)的JPP接收器,並執(zhí)行另一個(gè)協(xié)同模擬測(cè)試。這項(xiàng)測(cè)試確認(rèn)了兩個(gè)JPP接收器是可以互相取代的。


    結(jié)論

    這項(xiàng)計(jì)畫證實(shí)模型化基礎(chǔ)設(shè)計(jì)可以被用在軟體與硬體進(jìn)行高階協(xié)定的建模與實(shí)現(xiàn)。以Simulink和Stateflow建立協(xié)定模型帶來多項(xiàng)好處。第一,模型針對(duì)該協(xié)定提供了一個(gè)清楚的可執(zhí)行規(guī)格。再者,自動(dòng)產(chǎn)生C/C++與HDL程式碼促進(jìn)了參考執(zhí)行的快速開發(fā)。


    模型化基礎(chǔ)設(shè)計(jì)具有除錯(cuò)以及驗(yàn)證在高階軟體環(huán)境執(zhí)行的能力,是另外一個(gè)重要的優(yōu)點(diǎn)。Simulink與Stateflow容許在模塊與訊號(hào)層級(jí)的狀態(tài)之中與狀態(tài)轉(zhuǎn)換階段設(shè)置中斷點(diǎn)。Stateflow也藉由推動(dòng)狀態(tài)轉(zhuǎn)換讓階層式的狀態(tài)機(jī)除錯(cuò)更便利。在高階除錯(cuò)之後,協(xié)同模擬與FPGA迴圈模擬提供了設(shè)計(jì)的除錯(cuò)與驗(yàn)證功能。


    以JPP的執(zhí)行來說,HDL在ML507(以Virtex 5為基礎(chǔ)的板子)的資源使用率大約為1%。而對(duì)於JRDDP協(xié)定,兩個(gè)端點(diǎn)執(zhí)行的資源使用率大約是10%。更進(jìn)一步的優(yōu)化與調(diào)整可以再降低資源使用率。由於手動(dòng)編寫的版本並不是執(zhí)行在XilinlxR平臺(tái),因此無法進(jìn)行直接的比較,但是從Simulink與Stateflow模型產(chǎn)生的HDL的資源使用率對(duì)桑迪亞來說是可以接受的。


    在模型化基礎(chǔ)設(shè)計(jì),同樣的Simulink模型可以為處理器的佈署產(chǎn)生C/C++,以及為硬體(FPGA或ASIC)的佈署產(chǎn)生HDL。不論是HDL還是C/C++,都可以從相同的模型產(chǎn)生出來,但是Simulink模型必須依每一種執(zhí)行,利用Simulink不同子系統(tǒng)的功能分別經(jīng)過優(yōu)化。


    對(duì)於以處理器為基礎(chǔ)的執(zhí)行,使用者應(yīng)用程序可能會(huì)建立資料框架並傳遞到協(xié)定層,在這裡以完整的框架而不是單一的位元流來處理。以硬體為基礎(chǔ)的執(zhí)行從使用者應(yīng)用程序以硬體的時(shí)鐘頻率一次一位元地接收資料。


    建立像是Simulink與Stateflow等高階語言的模型讓非硬體專家的工程師也能夠建立硬體執(zhí)行。不過,我們還是建議有硬體專家的加入,以針對(duì)進(jìn)行設(shè)計(jì)優(yōu)化及最終的目標(biāo)硬體整合。


    (本文由鈦思科技提供,作者Hung Nguyen、William Marchetto任職於美國桑迪亞國家實(shí)驗(yàn)室; Roger Theyyunni、Babak Soheili任職於MathWorks公司)


    相關(guān)文章
    ? 專攻低功耗工業(yè)4.0應(yīng)用 可程式化安全功能添防禦
    ? 以3D模擬協(xié)助自動(dòng)駕駛開發(fā)
    ? 無線通訊的未來--為無所不在的連接做好準(zhǔn)備
    ? 使用深度學(xué)習(xí)進(jìn)行地下電纜系統(tǒng)預(yù)測(cè)性維護(hù)
    ? 最大限度精減電源設(shè)計(jì)中輸出電容的數(shù)量和尺寸
    comments powered by Disqus
      相關(guān)新聞
    » 意法半導(dǎo)體推出新款車用高電流、低電壓切換式穩(wěn)壓器,有效支援各類嚴(yán)苛負(fù)載
    » 臺(tái)達(dá)電子公佈一百一十四年六月份營收 單月合併營收新臺(tái)幣422.08億元
    » 新唐科技的 NPCM8mnx BMC 晶片通過 OCP S.A.F.E. 安全認(rèn)證
    » 臺(tái)達(dá)攜手珍古德協(xié)會(huì)與海科館 三方合作推動(dòng)珊瑚復(fù)育教育
    » IPAC'25國際粒子加速器會(huì)議首度在臺(tái)灣登場
      相關(guān)產(chǎn)品
    » 意法半導(dǎo)體推出車用閘極驅(qū)動(dòng)器 強(qiáng)化電動(dòng)車動(dòng)力系統(tǒng)的效能與擴(kuò)充彈性
    » 意法半導(dǎo)體推出適用於數(shù)位鑰匙應(yīng)用的新一代車用 NFC 讀寫器 擴(kuò)展 ST25R 高效能產(chǎn)品系列
    » 適用于高頻功率應(yīng)用的 IXD2012NTR 高壓側(cè)和低壓側(cè)柵極驅(qū)動(dòng)器
    » KSC XA輕觸開關(guān)提供聲音柔和的輕觸回饋,增強(qiáng)用戶體驗(yàn)
    » 首款採用 DO-214AB 緊湊型封裝的 2kA 保護(hù)晶閘管

    ?
    刊登廣告 新聞信箱 讀者信箱 著作權(quán)聲明 隱私權(quán)聲明 本站介紹

    Copyright ©1999-2025 遠(yuǎn)播資訊股份有限公司版權(quán)所有 Powered by O3
    地址:臺(tái)北數(shù)位產(chǎn)業(yè)園區(qū)(digiBlock Taipei) 103臺(tái)北市大同區(qū)承德路三段287-2號(hào)A棟204室
    電話 (02)2585-5526 #0 轉(zhuǎn)接至總機(jī) / E-Mail: webmaster@hope.com.tw
    主站蜘蛛池模板: 民县| 孝义市| 江门市| 吴川市| 威宁| 清远市| 兴国县| 尼勒克县| 葫芦岛市| 溆浦县| 新平| 麻江县| 晋宁县| 乌拉特中旗| 西城区| 梁山县| 内丘县| 高青县| 闽侯县| 鸡泽县| 沙湾县| 金平| 绵阳市| 双柏县| 甘谷县| 泸西县| 吉安市| 湘潭市| 湘潭县| 拉萨市| 南江县| 扎赉特旗| 海伦市| 壤塘县| 蓝田县| 青海省| 尚志市| 界首市| 铁岭市| 荃湾区| 密云县|