《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于SOPC的數據發生系統設計
基于SOPC的數據發生系統設計
現代電子技術
邱文靜,張凱,張曉輝 東南大學
摘要: 提出一種基于SOPC的數據發生系統及其PCI接口的設計方案,詳細介紹了系統主要模塊的硬件設計方法,實現SOPC系統中定制用戶自定義主從外設及其通過相應的主從端口與Avalon。總線的連接,并在EDA工具QuartusⅡ和ModelSim平臺上用硬件描述語言VHDL語言對該方案中的基本模塊,如數據產生,乒乓結構和PCI9054接口邏輯進行了邏輯綜合及功能仿真。可以在本系統的基礎上,通過軟件的完善,實現復雜的非常規類型數據的產生,提高了系統的適應性和靈活性,有利于參數的修改和系統升級。
Abstract:
Key words :

摘 要:提出一種基于SOPC的數據發生系統及其PCI接口的設計方案,詳細介紹了系統主要模塊的硬件設計方法,實現SOPC系統中定制用戶自定義主從外設及其通過相應的主從端口與Avalon。總線的連接,并在EDA工具QuartusⅡ和ModelSim平臺上用硬件描述語言VHDL語言對該方案中的基本模塊,如數據產生,乒乓結構PCI9054接口邏輯進行了邏輯綜合及功能仿真。可以在本系統的基礎上,通過軟件的完善,實現復雜的非常規類型數據的產生,提高了系統的適應性和靈活性,有利于參數的修改和系統升級。
關鍵詞:SOPC;Avalon總線;乒乓結構;PCI9054


0 引 言
    可編程片上系統(SOPC)是一種特殊的嵌入式系統,因為SOPC是片上系統(SoC),即由單個芯片完成整個系統的主要邏輯功能;SOPC是可編程系統,具有靈活的設計方式,可裁減,可擴充,可升級,并具備軟硬件在系統可編程的功能;SOPC結合了SoC和FPGA的優點,涵蓋了嵌入式系統設計技術的全部內容;SOPC涉及目前已引起普遍關注的軟硬件協同設計技術。
    現以數據發生系統為例,介紹采用SOPC技術,以硬件描述語言為主要手段,產生偽隨機序列的設計方案。研究了偽隨機序列的產生,兩片SRAM乒乓結構存儲以及通過PCI9054芯片與PC機之間數據傳遞等模塊的硬件實現問題。


1 基本原理和系統的整體結構
    本系統的主要模塊框圖如圖1所示,SOPC系統采用Altera的CycloneⅡ系列的芯片。系統包括NiosⅡ軟核處理器,擴展的程序存儲器FLASH,數據存儲器SRAM,以及用戶自定義邏輯如PCI9054接口邏輯模塊、數據產生模塊、乒乓結構模塊等,并通過Avalon總線連接起來。數據產生模塊產生偽隨機序列,該數據存儲到兩片片外擴展的SRAM中,PCI9054接口邏輯將數據從SRAM中讀出后通過PCI9054接口芯片傳輸到PC機中,其中SRAM中數據的寫入和讀出是通過乒乓結構模塊控制的。

    由于PCI總線協議比較復雜,該系統采用PCI接口專用芯片PCI9054,用于PCI總線的控制。為了實現數據的高速傳輸,采用了DMA傳輸模式。在該模式中,PCI9054既是PCI總線的控制器又是本地總線的控制器,所以其與FPGA之間的接口邏輯模塊設置為AvaIon主外設,控制SRAM的讀操作。
    FPGA的片上資源很寶貴,所以數據的存儲采用了片外擴展SRAM。由于數據為16 b,而且為實現數據的高速傳輸,采用了兩片256K x 16 b的SRAM(IDT71V416)構成乒乓結構,以用作系統的數據存儲器。為保證整個系統高速運行以及以后升級的需要,選用了存取時間為10 ns的IDT71V416。


2 系統主要硬件設計
2.1 數據產生模塊
    該模塊的邏輯功能由VHDL語言設計實現,可以通過修改該模塊的設計產生所需要的數據,本系統產生的數據為偽隨機序列。模塊的邏輯功能是:先產生8 b的偽隨機數,再將所產生的數據通過D觸發器組合成16 b的數據。該系統采用了非線性反饋的移位寄存器,即全狀態移位計數器來產生所需要的偽隨機數。這種計數器利用了移位寄存器的所有狀態,能夠自啟動,不需要額外輸入。這種偽隨機序列發生器,可大大簡化結構,提高可靠性,易于實現。
    全狀態移位計數器的狀態變化規律有兩個特點:狀態的最高位由反饋函數確定;余下的各位由原態移位得到。該系統采用的反饋函數為:

   
式中:Qi(i=1,…,8)為電路的現態。
2.2 乒乓結構模塊
2.2.1 乒乓結構的硬件實現
    為了提高系統的傳輸速率,兩片SRAM構成了乒乓緩存結構,即在一片執行寫操作的同時,另一片在執行讀操作。乒乓結構模塊的原理如圖2所示,P1口與數據產生模塊相連接,僅具有寫入功能,P2口設計為Avalon從端口,與Avalon總線相連僅具有讀出功能。

    對于數據產生模塊而言,由于僅具有并行數據的輸出,沒有地址和控制信號端口,故它無法直接對SRAM進行寫操作,因而要求乒乓結構模塊有地址產生功能。P1口的CLK作為計數器的脈沖源,計數器的輸出作為SRAM的地址。DBl連接數據產生模塊的輸出端。CBl為控制信號,因為P1口只有寫入功能,所以其we_n恒接低,oe_n恒接高。
    P2口為只有讀出功能的Avalon從端口,所以AB2為從端口的地址線address;DB2為數據線readdata;CB2中的we_n為讀信號線read,oe_n恒接低。由于兩片SRAM始終處于工作狀態,所以相應的片選信號chip_select_n恒接低。
    兩片SRAM在P1口和P2口之間的切換的控制信號即chipselect,由計數器產生。當計數值小于262 144時,chipselect接低,SR1與P1口相接,SR2與P2口相接;當計數值在262 144~524 288之間時,chipselecl接高,SR1與P2口相接,SR2與P1口相接。當計數值到達524 288時,計數器清零。
2.2.2 Avalon從外設的端口信號設計
    系統中,數據產生模塊與乒乓結構模塊結合為一個模塊,通過P2口掛在Avalon總線上。該模塊的信號列表如圖3所示。其中,avalon_slave_O接口類型的信號與Avalon總線相連接,而conduit_end接口類型的信號與SRAM相連接。圖3中的Avalon從端口即為P2口,采用了流水線讀傳輸的模式,這種模式能在前一次傳輸返回readdata前開始一次新的傳輸,增加了帶寬。

2.2.3 動態地址對齊及其時許設計
    Avalon總線模塊能夠適應主從外設的不同寬度和不匹配的數據寬度。當系統中村子不匹配的存儲口時,要考慮地址對齊問題。對于存儲器類型的外設,采用動態地址對齊方式。IDT71V416型SRAM是靜態RAM,屬于存儲器型外設,所以該Aalon從端口采用動態地址對齊方式,如圖4所示。選用動態地址對齊方式,使得主端口能連續地對從外設進行讀寫,并使系統將外設認作存儲器型外設。

    根據IDT71V416型SRAM手冊中讀寫時序的各時間參數值設定set up,read wait,write wait及holdtime的時間均為10 ns,使該端口既符合Avalon總線讀寫時序的要求,又符合IDT71V416型SRAM的讀寫時序的要求,如圖5所示。

    數據產生,乒乓結構和兩片SRAM三部分的組合在ModelSim中的仿真結果如圖6所示。avalon_ad-dress_b不變時是在執行第一次寫操作,此時沒有數據讀出,所以avalon_readdata_b值為高阻;avalon_ad-dress_b開始變化時,表示一片SRAM已經寫滿,正在執行該片的讀操作,而另一片在執行寫操作,avalon_readdata_b為系統生成的數據。

2.3 PCI9054接口邏輯模塊
    PCI總線作為PC機與外部設備之間重要的連接總線,具有數據傳輸穩定靈活,傳輸速度快,即插即用和良好的擴展性等特點,被廣泛地用在各種與PC機互聯的設備中。該系統采用的PCI9054芯片口可以將復雜的PCI總線接口轉換為相對簡單的用戶接口,大大縮短了設計周期。
2.3.1 本地總線狀態機設計
    由于PCI9054的DMA傳輸方式只適宜于做單次傳輸,故該系統采用了DMA結合中斷的方式傳輸數據。由于數據的存儲采用了乒乓結構,可以在一片SRAM執行DMA傳輸的同時執行另一片寫操作,這樣不會造成數據丟失,狀態也比較容易控制。
    系統復位后,數據產生模塊開始產生偽隨機序列,產生的數據直接存入SRAM中。此時,計數器同步計數,當計數值每一次達到262 144時,也就是一片SRAM已經存滿時,SOPC系統就會觸發PCI9054中斷請求信號LINT#,CPU響應中斷,發出讀命令、要讀取的字節數、地址信號等。PCI9054:先通過LHOLD申請本地總線的控制權,SOPC系統通過LHOLDA響應,使PCI9054.獲得本地總線的控制權。PCI9054將PCI地址空間映射到本地地址空間,接著啟動本地總線的DMA傳輸。
    該系統采用VHDL語言,實現了DMA讀傳輸本地端的時序控制狀態機設計。狀態0為空閑狀態(i-dle),若LHOLD信號被置1,則轉到狀態1,否則留在狀態0。狀態1為總線保持狀態(hold),在此狀態下應將LHOLDA信號置l。如果信號ADs為O且LW_R為0,則轉到狀態2。狀態2為DMA讀狀態(DMA_read),在此狀態下應將READY信號和模塊內部信號avaIon_read置l,從而使AvaIon主端口的master_read置1,表示Avalon主外設發起讀傳輸。如果BLAST為1,則表明此次DMA讀取還沒有完成,繼續留在狀態2;如果BLAsT為0,則表明此次DMA讀取完成,轉到狀態3。狀態3為DMA讀操作完成狀態(end cycle),當LHOLD被置0時,表示PCI9054不再請求本地總線,則轉到狀態0;當BLAST為0且LHOLD為1時,則表明PCI9054還要進行DMA讀操作,則轉到狀態1繼續。其中的DMA讀操作的時序邏輯的ModelSim仿真結果如圖7所示。

2.3.2 Avalon主外設的端口信號設計
    該系統中,PCI9054控制數據從本地總線上讀出,先到PCI9054的FIFO中,再將FIFO中的數據傳輸到PCI總線上。因此SOPC系統中的PCI9054接口邏輯模塊為Avalon主外設,主端口通過address,read,wait-request等信號發起Avalon總線上的讀操作,從而控制Avalon從外設即乒乓結構模塊的讀操作。
    由于本系統定制的從外設采用了流水線讀的傳輸模式,為了使端口傳輸模式匹配,主外設也采用流水線讀的傳輸模式。流水線主端口一個必須的信號為readdatavalid,Avalon交換結構向主端口發出readdat-avalid,以表示readdata信號正在提供有效的數據。
    本系統定制的Avalon主外設構成模塊主要由5部分構成,其中Read Master Logic提供了符合Aval-on接口規范的主端口信號;Control Logic是ReadMaster Logic與PCI9054 Local Bus Logic控制信號和狀態信號轉換的橋梁;FIFO是數據由Read MasterLogic向PCI9054傳輸的緩沖區。這三部分通過主端口流水線讀傳輸時序邏輯聯系在一起,提供了Avalon主外設的主端口接口界面。PCI9054 Local Bus Logic即VHDL語言設計的本地總線狀態機,它將PCI9054本地端的信號通過狀態機邏輯轉換為與Control Logic和FIFO相對應的信號;Clock/Reset提供了主外設的clk和reset信號。
    利用SOPC Builder中的new cormponent edit設計PCI9054接口邏輯模塊的接口。在new component ed-it的signal中設置模塊的各信號線以及相應的總線型號類型;在interface中設置各信號線對應的端口類型及其相應的參數。圖8為Avalon主端口的參數設置。

2.4 系統中各中斷的實現
    在SOPC系統中,當沒有進行傳輸時,Avalon交換結構忽略來自主端口所有與傳輸相關的輸出信號,并且主端口也忽略來自Avalon交換結構所有與傳輸相關的輸入信號。但是Avalon總線接口提供控制信號來實現中斷請求等功能,這些信號不直接與數據傳輸相關。Avalon中斷請求信號允許從端口發出一個IRQ,表明它需要主外設來服務。系統中,PCI9054采用了DMA加中斷的方式來傳輸數據,而且DMA傳輸中的主控制器PCI9054芯片也要通過中斷信號LINT#來觸發,所以中斷的實現是本系統功能實現的關鍵。
    系統從端口的中斷原理在于系統復位之后,數據產生模塊開始自動產生偽隨機序列,并自動將數據存入SRAM中,當一片SRAM存滿之后,從端口的irq信號被設置。這個irq信號的時序必須與相關時鐘的上升沿同步,其相關地址端口的名字必須是本模塊中Aval-on從端口的名字。系統中從端口中斷的具體設置如圖9所示。

    系統主端口的中斷原理:在于主端口的irq檢測到從端口有中斷發出,通過置為有效來響應這個中斷,并同時用該信號觸發PCI9054的LINT#信號。PCI9054獲得本地總線的控制權,并啟動DMA傳輸,向SOPC:系統中的主外設即PCI9054接口邏輯模塊發送地址和傳輸的字節長度,開始DMA傳輸。當字節長度減為O,另一片SRAM存滿時,再次觸發PCI9054的LINT#信號,使得PCI9054啟動下一次DMA傳輸。主端口中斷的設置如圖10所示。

3 結 語
    圖10 主端口中斷設置詳細介紹了基于SOPC設計的數據發生系統中PCI接口的開發過程。對其中的關鍵技術,如設計添加在SOPC系統中的用戶自定義主外設和從外設;PCI9054本地總線狀態機的設計,乒乓結構的存儲模塊的設計,以及系統中各中斷的實現等主要部分做了分析和研究,給出了基于SOPC的硬件實現方案。系統的主要部分由VHDL語言設計實現,有利于參數修改和系統升級。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产网站免费在线观看 | 国产在线精品网址你懂的 | 成人精品综合免费视频 | 国产美女精品视频 | 四虎成人国产精品视频 | 精品一区 二区三区免费毛片 | 久久久久免费精品视频 | 日韩二区 | 久久精视频 | 精品久久久久久中文字幕无碍 | 99r在线视频 | 大香网伊人久久综合网2020 | 国产精品高清在线观看 | 潦草影视在线观看 | 成熟性xxxxx 成人做羞羞事免费网站 | 女人精69xxxxx免费视频 | 国产日产一区二区三区四区五区 | 娼年免费在线观看 | 91国偷自产一区二区三区蜜臀 | 九九九精品视频免费 | 九九精品国产兔费观看久久 | 日日操网站 | 四虎com| 99久久免费国内精品 | 欧美高清日韩 | 十分钟视频高清免费观看 | 九月丁香婷婷亚洲综合色 | 日韩欧美成人免费中文字幕 | 久久精品国产99精品最新 | 伊人国产精品 | 看毛片的网址 | 国产日韩不卡免费精品视频 | 久久加久久 | 国产精品99久久免费观看 | 久久免费99精品久久久久久 | 黄色小视频免费在线观看 | www.激情| 国产精品婷婷久青青原 | 欧美精品 破 过程 | 亚洲精品乱码久久久久久蜜桃欧美 | 青青热久久国产久精品秒播 |