FPGA設計之模塊划分常用架構(轉)


上面通過AT93C46的項目,講解了如何根據划分好的模塊架構,確認模塊的端口及數據流向。下面給出明德揚明德揚在FPGA/ASIC設計領域多年的項目經歷,總結出來五個常用的模塊交互架構,讀者在進行項目設計時,可結合明德揚模塊划分原則,參照“模塊划分常用架構”進行模塊划分。

一.直接交互架構

直接交互不需要模塊B反饋,模塊A直接發送數據。一般應用於下游模塊處理速率高於上游模塊發送速率的場景。框圖如圖6-1。

圖6-1 直接交互架構

直接交互架構的典型應用是4.2.1項目一:包文匯聚模塊。其系統框圖見圖6-2。

圖6-2 包文匯聚模塊模塊划分框圖

在此項目中,網口A,B,C作為上游模塊其工作時鍾分別是40MHz、20MHz、10MHz,下游模塊的工作時鍾是80MHz。由於下游模塊的處理速率高於上游模塊的總發送速率,所以即使三個網口同時全速發送數據,下游模塊仍然可以完成對所有數據的處理。

因此,下游模塊不需要通過反饋信號控制上游模塊數據的發送,即采用直接交互架構即可。

二.無緩存rdy交互架構
當rdy為高電平時,表示模塊B可以接受模塊A的讀寫命令,開始傳輸數據,模塊A每發送一個數據,模塊B就處理,處理完后再發送下一個數據。一般應用於上游模塊速率高,下游模塊速率低,並且上游模塊有緩存的場景。框圖如圖6-3。

圖6-3 無緩存rdy交互架構

 

其實際應用請見6.6.1項目一:AT93C46的存儲與讀取。

三.有緩存rdy交互架構
收到讀寫命令后,模塊A開始傳輸數據,數據先輸入模塊B的FIFO,然后模塊A和模塊B按照各自時鍾進行讀寫FIFO的數據,可以解決讀寫速率不匹配的問題。一般應用於上下游模塊都有緩存的場景。優點是控制簡單,對時序要求不太嚴格。框圖如圖6-4。

圖6-4 有緩存rdy交互架構

其實際應用請見6.6.1項目一:AT93C46的存儲與讀取。

四.請求應答交互架構 
模塊A請求發送,模塊B收到應答后就可以傳輸數據。一般應用於上游模塊等待響應后才能連續發送一段數據的場景。框圖如圖6-5。

圖6-5 請求應答交互架構

此架構的一個典型應用是3.2.3項目三:SDRAM接口。其模塊划分框圖如圖6-6所示:

圖6-6 SDRAM接口模塊划分框圖

在3.2.3中,我們只設計了SDRAM的接口模塊,可以按照SDRAM的時序完成讀寫操作,而讀寫指令、地址以及需要寫入的數據等等,我們只把它們作為來自命令模塊的輸入信號,並不考慮它們是如何產生的。我們再來回顧一下命令模塊的寫時序,如圖6-7。

圖6-7  SDRAM命令模塊的寫時序

 

讀者會發現其中有兩個信號——req與ack,可見命令模塊與SDRAM接口模塊的交互方式是請求應答交互架構。為什么此處要使用請求應答交互架構?下面我們給出分析過程。

首先假設命令模塊給接口模塊一個寫命令,而此時SDRAM正在執行自動刷新操作,則必須要等到自動刷新完成,SDRAM才可以響應寫命令,但是寫命令一般只持續一個時鍾周期,等到自動刷新完成,寫命令已經失效了。

為了解決此問題,我們采用請求了應答交互架構。命令模塊給接口模塊一個寫請求,接口模塊在空閑的時候會給命令模塊回復一個寫應答信號,命令模塊在收到應答信號后,撤銷寫請求。

五.外設交互架構
1.不需配置交互架構

圖6-8 不需配置交互架構

 

類似5.1模塊划分原則中用到的AT93C46項目,不需要配置外設寄存器即可正常工作的外設,可采用此種架構。

2.需配置交互架構

圖6-9 需配置交互架構

 

對於需要配置寄存器才能正常工作的外設,或者可以通過配置寄存器實現多種功能的外設,采用此架構。整個架構包括接口模塊和配置模塊,其中配置模塊內部還有一個配置表,我們要實現多種功能,只需要更改配置表即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM