<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è) > 嵌入式系統 > 設計應用 > 一種ARM+DSP協(xié)作架構的FPGA驗證實(shí)現

一種ARM+DSP協(xié)作架構的FPGA驗證實(shí)現

作者:張暉 謝凱年 時(shí)間:2008-05-26 來(lái)源:電子技術(shù)應用 收藏

  2.1 負責準備階段

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

  從Flash中運行啟動(dòng)代碼,通過(guò)配置PLD來(lái)連接 X3S5000中的AHBC,目的在于通過(guò)AHBC同 X2V6000中的 Core進(jìn)行交互。

  代碼喚醒外部DMA通過(guò)以太網(wǎng)口從PC機端搬運第一幀待處理的圖像數據,放到雙核公用的外部SRAM memory既定的地址段中。然后,ARM Core通過(guò)AHBC控制 X2V6000中的 Core。

  這里需要說(shuō)明兩點(diǎn):

  (1) FPGA開(kāi)發(fā)板的的圖像傳輸是通過(guò)專(zhuān)門(mén)配置的帶有LXT972芯片的以太網(wǎng)口與PC機的以太網(wǎng)口進(jìn)行交互, 如圖3所示。圖3左邊的以太網(wǎng)子板即圖1中的Ethernet模塊。

        

  (2) Core頂層的wrapper是支持AMBA協(xié)議的TOP Module,其中包括一個(gè)Debug Sub-Module。ARM就是通過(guò)讀寫(xiě)Debug Sub-Module的控制寄存器來(lái)控制DSP Core的啟動(dòng)、停止等工作狀態(tài)的。所以說(shuō),Debug Sub-Module是整個(gè)FPGA工程最為關(guān)鍵的部件之一,它直接關(guān)系到ARM和DSP之間的交互。本項目中,利用Debug Sub-Module實(shí)現對DSP Core的復位、啟動(dòng)、暫停、斷點(diǎn)設置、單步運行、讀寫(xiě)內部SRAM、讀DSP Core寄存器等一系列功能,大大方便了調試工作,同時(shí)也非常便捷地實(shí)現了ARM和DSP的交互運行。

  2.2 DSP運行階段

  ARM寫(xiě)控制寄存器使DSP Core復位,并把小目標識別的程序代碼寫(xiě)入DSP內部的SRAM0中等待DSP啟動(dòng)運行,由ARM控制DSP Core運行起來(lái)。DSP Core運行完程序之后,會(huì )在外部SRAM的一個(gè)地址上返回一個(gè)標志數(0x00ff00ff),同時(shí)進(jìn)入idle狀態(tài),完全釋放對AHBC的操作。每隔一段時(shí)間,ARM檢查一下相應地址上的這個(gè)標志數,如果沒(méi)有,則表示程序還未運行完,ARM繼續檢查;如果有,則表示程序已經(jīng)運行完畢,ARM將進(jìn)入下一步操作。

  選用這種流程有兩個(gè)特點(diǎn):(1)ARM完全實(shí)現了控制和輔助的作用,而運行部分則完全由DSP負責,各自分工明確。(2)ARM和DSP實(shí)現了很好的交互,嚴謹地控制了流程的運行步驟。

  2.3 ARM控制停止返回

  ARM通過(guò)寫(xiě)控制寄存器把DSP Core停下來(lái),從外部SRAM的既定地址段中取出DSP Core運行完所返回的小目標的坐標信息,并通過(guò)以太網(wǎng)口返回到PC機端,在顯示界面的此幀圖像上顯示出小目標。圖4為其中一幀圖像的處理結果顯示。

  ARM擦除DSP Core運行完畢的標志數,同時(shí)判斷當前處理完的圖像是否為最后一幀,如果不是,則流程跳回DMA搬運步驟去執行下一幀圖像,同時(shí)加上必要的控制,避免寫(xiě)程序的重復執行;如果是,則結束整個(gè)程序運行。這樣循環(huán)下去,直到所有圖像序列處理完畢。

  這個(gè)過(guò)程充分顯示了ARM在控制流程的判斷跳轉方面所起到的主要作用。由ARM的平臺來(lái)實(shí)現對整個(gè)視頻序列的最終處理控制過(guò)程,顯得非常清晰便捷。

  3 體系架構的調試

  3.1 FPGA的選取

  FPGA的選取一定要合適(這里主要針對容量而言)。以本開(kāi)發(fā)過(guò)程為例, Xilinx的兩片FPGA(X2V6000和X3S5000)的容量分別為600萬(wàn)門(mén)和500萬(wàn)門(mén)左右,而項目的硬件代碼容量卻稍微超出了這個(gè)范圍,所以不得不對一些模塊作精簡(jiǎn)和舍棄。即便如此,兩片FPGA的利用率都已大于90%。

  一般來(lái)說(shuō),FPGA的利用率達到70%或多一些是比較好的,太高的利用率反而容易造成板子的不穩定。本開(kāi)發(fā)過(guò)程就有一些不穩定因素,例如,因一些數據線(xiàn)、地址線(xiàn)的個(gè)別位傳輸值不正確,需要花大量的精力才能追查出這些存在問(wèn)題的線(xiàn)路,然后更換Bonding連接,選用其他的通路。同時(shí),所造成的不穩定因素也會(huì )影響下載代碼的運行速度。目前經(jīng)過(guò)Xilinx的軟件工具ISE綜合出來(lái)的FPGA可下載代碼受時(shí)序約束,所能達到的速度上限為25MHz時(shí)鐘頻率。

  容量大的FPGA的成本同樣也會(huì )比較高,所以在研發(fā)需要和成本之間必須找到一個(gè)比較好的平衡點(diǎn),這在整個(gè)電路設計階段就要預測得比較好,但這不太容易做到,需要經(jīng)驗的積累。

  3.2 觀(guān)測點(diǎn)的預留

  開(kāi)發(fā)板在設計電路圖階段,一定要預留出足夠的觀(guān)測點(diǎn)。這一點(diǎn)非常重要。因為:在后來(lái)的調試過(guò)程中,當出現問(wèn)題時(shí)需要追查線(xiàn)路,而目前的FPGA調試軟件還不成熟,并不像RTL代碼前端仿真那樣方便,能夠把所有的信號都輸出到屏幕上觀(guān)看,而且FPGA調試時(shí)使用的邏輯分析儀只能夠測量觀(guān)測點(diǎn)的信號波形,如果觀(guān)測點(diǎn)不夠的話(huà),當出現邏輯錯誤時(shí),根本沒(méi)辦法追查下去,找不到問(wèn)題的所在,或者需要做相當繁瑣的重復工作,才能把估計存在問(wèn)題的線(xiàn)路節點(diǎn)信號連(Bonding)到僅有的觀(guān)測點(diǎn)上。如果經(jīng)排查,估計得不正確或者需要進(jìn)一步拉出更多的其他信號時(shí),又需要重新花時(shí)間將節點(diǎn)新信號連到觀(guān)測點(diǎn)。這樣,會(huì )耗費非常多的時(shí)間和精力。因為對每一次新的節點(diǎn)生成一版新的FPGA下載代碼都很煩瑣。

  所以,從電路的設計之初,預留出足夠的觀(guān)測點(diǎn),盡量將更多的節點(diǎn)信號連到觀(guān)測點(diǎn)上。這樣將會(huì )極大地方便調試工作,加快整個(gè)研發(fā)進(jìn)程。

  3.3 FPGA調試的原則

  FPGA的調試應該按照由簡(jiǎn)入繁的步驟進(jìn)行。這樣可以方便研發(fā)人員快速地熟悉板子,并且容易定位問(wèn)題的所在。

  由于整個(gè)ARM+DSP體系結構是由ARM加上兩塊FPGA共同工作,相對比較復雜,相互之間交互性比較多。所以,在調試整個(gè)程序之前,可以先通過(guò)另外的小程序和硬件結構分別調通ARM對兩片FPGA的交互;然后,再用較為簡(jiǎn)單的功能模塊調試好三塊片子的簡(jiǎn)單交互功能;最后,把整個(gè)大程序應用在上面進(jìn)行嘗試。這樣一步步下來(lái),出現問(wèn)題時(shí),就比較容易發(fā)現問(wèn)題所在,方便調試。

  例如,可以先不考慮FPGA X2V6000,單獨調試ARM通過(guò)FPGA X3S5000中的AHBC對外部SRAM讀寫(xiě)的控制,成功之后,再將FPGA X2V6000考慮進(jìn)去,但先不考慮Debug模塊對DSP的控制,單獨將Debug模塊提取出來(lái),下載到FPGA X2V6000當中;然后再調試ARM通過(guò)FPGA X3S5000中的AHBC對于FPGA X2V6000當中的Debug模塊的控制寄存器的讀寫(xiě)情況等。



評論


相關(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>