當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]O 引 言 隨著電子技術(shù)的飛速發(fā)展,在實際應(yīng)用中數(shù)據(jù)高速傳輸有著越來越高的要求,鏈路口為數(shù)據(jù)傳送提供了高速、獨立的通信機制,得到廣泛應(yīng)用。AD公司生產(chǎn)的TS201 DSP就具備這種端口。為了使不具備此接口的器件

O 引 言
    隨著電子技術(shù)的飛速發(fā)展,在實際應(yīng)用中數(shù)據(jù)高速傳輸有著越來越高的要求,鏈路口為數(shù)據(jù)傳送提供了高速、獨立的通信機制,得到廣泛應(yīng)用。AD公司生產(chǎn)的TS201 DSP就具備這種端口。為了使不具備此接口的器件同樣也能通過鏈路口與TS201進(jìn)行高速通信,引入FPGA進(jìn)行設(shè)計。
    FPGA器件因其集成度高、功能強大、現(xiàn)場可編程等優(yōu)點被廣泛應(yīng)用于各種場合。通過在FPGA上參照鏈路口通信協(xié)議編寫VHDL程序,完成數(shù)據(jù)傳送方式的轉(zhuǎn)換,實現(xiàn)此接口與其他設(shè)備通信,以滿足系統(tǒng)的高速通信要求。
    本文設(shè)計了一種基于Xilinx公司Virtex4系列的FPGA的128位并行數(shù)據(jù)與ADSP TS201的鏈路口通信方式。


l ADSP TS20l鏈路口協(xié)議
    ADSP TS201有4個鏈路口均采用LVDS(Low
Voltage Differential Signaling)電路,每個鏈路口都是由4位雙向差分?jǐn)?shù)據(jù)線和另外3個控制信號構(gòu)成。接收控制信號包括:Lxclkinp/n,Lxacko,Lxbcmpi;發(fā)送控制信號包括:Lxclkoutp/n,Lxacki和Lxbcmpo。其中,Lxclkoutp/n和Lxclkinp/n用于描述輸出或輸入信號的時鐘,Lxacko和Lxacki則表示接收端發(fā)出的信號和發(fā)送端接收的信號表明是否可以繼續(xù)發(fā)送,Lxbcmpi和Lxbcmpo說明塊傳輸已經(jīng)完成。鏈路口每個方向(Rx或Tx)均可通過1位或4位數(shù)據(jù)總線通信,發(fā)送端發(fā)送數(shù)據(jù)到外部設(shè)備,接收通端從外部設(shè)備獲取數(shù)據(jù)。這里主要討論4位數(shù)據(jù)總線通信模式的具體實現(xiàn)。
    在鏈路口通訊協(xié)議的時序上采用一些通用規(guī)則,具體規(guī)則如下:
    ①第一個數(shù)據(jù)(1位或4位)必須在鏈路口時鐘(Lxclkoutp)的第一個上升沿發(fā)送。
    ②后一個數(shù)據(jù)(1位或4位)必須在鏈路口時鐘(Lxclkoutp)最后一個下降沿發(fā)送。
    ③當(dāng)鏈路口停止收發(fā)后Lxclkoutp被置為低。
    ④每次至少傳送4個字(128位)。傳送需要用16個名車略口周期,如圖1所示。

當(dāng)Lxacki被置為高,即接收緩沖是空的,發(fā)送通道被初始化,發(fā)送端可以繼續(xù)發(fā)送數(shù)據(jù)。如圖2所示,第一個數(shù)據(jù)在第一個Lxclkoutp上升沿有效,最后一個數(shù)據(jù)在最后一個鏈路口時鐘下降沿之前發(fā)送。當(dāng)鏈路口停止時Lxclkoutp被置為低。
    圖3表示當(dāng)Lxacki被置為低時,說明接收端沒有準(zhǔn)備好接收更多數(shù)據(jù)的情況。此時若仍有數(shù)據(jù)傳送,則會造成數(shù)據(jù)的丟失。
    當(dāng)發(fā)送數(shù)據(jù)長度可變時發(fā)送方用Lxbcmpo信號通告接收數(shù)據(jù)塊傳輸已完成。Lxbcmpo與接收端的Lxbcmpi輸入信號連接,當(dāng)接收端識別該信息,就通知DMA通道數(shù)據(jù)塊傳送完畢。
    Lxbcmpo信號通過在塊的最后4個字傳輸?shù)牡谝粋€Lxclkout上升沿變低,指示塊傳輸完成。而在同一4個字的最后一個Lxclkout下降沿置位。若LTCTLx寄存器中的TBCMPE位被清除或當(dāng)鏈路口傳輸由處理器核執(zhí)行,Lxbcmpo無效。

[!--empirenews.page--]
2 模塊建立與優(yōu)化
    ADSP TS201的鏈路口采用的是獨立的發(fā)送和接收通道,因此對應(yīng)的FPGA也需要采用不同的接收電路和發(fā)送電路。
    無論是接收還是發(fā)送均由兩部分組成:接收/發(fā)送緩沖和接收/發(fā)送模塊。接收模塊主要是用于接口和數(shù)據(jù)的拆包處理,發(fā)送模塊是用于數(shù)據(jù)接收和打包處理。接收/發(fā)送緩沖則是用來分別配合接收/發(fā)送模塊進(jìn)行數(shù)據(jù)緩沖,并實現(xiàn)數(shù)據(jù)傳輸功能。
2.1 接收電路
    接收模塊:接收到由鏈路口4位數(shù)據(jù)總線送出的數(shù)據(jù)差分信號Lxdatap/n和控制差分信號Lxclk p/n以后不能直接拆包處理,需要將原來的差分信號轉(zhuǎn)換成完整信號、Lxdata和Lxclk,才可進(jìn)入雙倍數(shù)據(jù)速率器(DDR)寄存,此寄存器由時鐘信號clkin(與Lxclk同頻率)控制。由于是4位數(shù)據(jù)總線同時串行傳送數(shù)據(jù),其具體的數(shù)據(jù)排序如圖4所示。

可見,每一路傳送的數(shù)據(jù)均不是連續(xù)的,且都按模4余數(shù)分配。為了方便數(shù)據(jù)并行送出,需要將數(shù)據(jù)進(jìn)行拆包整理。每個clkin周期收到8位數(shù)據(jù),將此按位號由大到小的順序整理,并放入mid(7:O)中。其間增加一級觸發(fā)器作為緩沖。
    接收緩沖:此部分主要由狀態(tài)機和FIFO構(gòu)成,其中狀態(tài)機主要控制FIFO寫命令的產(chǎn)生,由鏈路口時鐘Lxclk和時鐘信號clkin共同產(chǎn)生,即當(dāng)Lxclk產(chǎn)生第一個上升沿時計數(shù)器開始計數(shù)從O~15,每次計數(shù)就會將相應(yīng)的FIFO寫許可we d置為有效。將128位數(shù)據(jù)每8位為一組,分別送入16個8位F1FO中,由外部的FIFO_oe讀信號和sysclk時鐘信號控制128位數(shù)據(jù)并行讀出。即將FIFO_oe信號同時接到16個FIFO上,當(dāng)FIFO_oe有效時,從16個FIFO中同時讀出數(shù)據(jù)。并根據(jù)FIFO存儲狀態(tài)發(fā)送Lxacko信號和fuiIflag信號,若FIF0不滿則將Lxacko信號置為1(高有效)允許發(fā)送端繼續(xù)通過鏈路口發(fā)送數(shù)據(jù);否則Lxacko置為O。
    其中,F(xiàn)IFO 8由Core generator直接生成,是異步8位先進(jìn)先出存儲器。下面涉及的FIFO 16,F(xiàn)IFO 32均這樣生成。接收(Rx)流程圖如圖5所示。

綜合后此電路的主時鐘Clkin頻率最快可達(dá)到368 MHz。由于一個FIFO 8就占用了一個18 Kb的嵌入式FIFO資源,而16個FIFO就占據(jù)了16個塊的資源,這不僅造成了資源的浪費,還增加了布局布線所需要的時間。因此,為了優(yōu)化結(jié)構(gòu),增加一級寄存器,擴展數(shù)據(jù)的位數(shù),使得數(shù)據(jù)在未進(jìn)入FIFO前就已得到處理,由原來的8位數(shù)據(jù)mid連成16位數(shù)據(jù)Data,再送入16位的FIFO 16中。優(yōu)化后,F(xiàn)IFO 16的使用率由原來的22%減少到11%,大大減少了線上延遲。綜合此電路的主時鐘clkin頻率最高可實現(xiàn)500 MHz。具體結(jié)構(gòu)如圖6所示。

2.2 發(fā)送電路[!--empirenews.page--]
    發(fā)送模塊:當(dāng)外部接收到128位并行數(shù)據(jù)Datain(127:0)及FIFO寫控制信號Datan_we后,將數(shù)據(jù)按以下規(guī)則重新組合排序:

 數(shù)據(jù)整理后,同時送入4個32位FIFO 32中,寫時鐘為sysclk。當(dāng)FIFO 32不為空且Lxacki信號為高電平時,接收端允許傳送數(shù)據(jù)。數(shù)據(jù)由FIFO 32中讀出,分別放入4個32位寄存器中,準(zhǔn)備發(fā)送。
    發(fā)送緩沖:此部分由狀態(tài)機和雙數(shù)據(jù)率(DDR)寄存器組成。當(dāng)發(fā)送條件成立,數(shù)據(jù)放入寄存器后,由state信號控制寄存器,每個Txclk周期從4個寄存器中各讀出2位數(shù)據(jù)Data_tx(7:O)共8位,為了滿足鏈路口通信協(xié)議,發(fā)送出的數(shù)據(jù)應(yīng)如圖4所示。因此,將Data_tx兩兩分組(0和4,1和5,2和6,3和7),4對數(shù)據(jù)分別由4個雙數(shù)據(jù)率(DDR)寄存器經(jīng)差分轉(zhuǎn)換送出,根據(jù)協(xié)議同時送出相應(yīng)的時鐘控制信號Lxclk p/n(與Tkclk相同頻率)。按照協(xié)議,Lxclk的第一個上升沿必須在第一位數(shù)據(jù)傳送中建立,因此,這里引入時鐘信號Txclk90(Txclk相移90°),用來控制Lxelk p/n信號。數(shù)據(jù)傳送結(jié)束前的最后一個時鐘周期內(nèi)將Lxbcompo信號置低(低有效)。發(fā)送(Tx)流程如圖7所示。結(jié)構(gòu)如圖8所示。

 綜合后此電路的主時鐘Txclk頻率最快可達(dá)到280 MHz。分析后發(fā)現(xiàn)此結(jié)構(gòu)制約速度的瓶頸為高頻計數(shù)器,此計數(shù)器產(chǎn)生控制信號。因此,為了提高速度優(yōu)化結(jié)構(gòu)。將此計數(shù)器改為原時鐘的二分頻信號clkd2控制計數(shù)。此時每當(dāng)clkd2上升沿從FIFO 32讀出32位數(shù)據(jù)放入寄存器,該寄存器同樣由clkd2控制,時鐘的上升沿來到時讀出4位數(shù)據(jù),組成連續(xù)的16位數(shù)據(jù),這些數(shù)據(jù)經(jīng)過子模塊fast的處理,按照鏈路口協(xié)議要求輸出數(shù)據(jù)dataout。綜合后此電路的主時鐘Txclk頻率最快可達(dá)到400 MHz。
    子模塊fast的結(jié)構(gòu)如圖9所示。

[!--empirenews.page--]

子模塊fast控制模塊是由clk,clknot,clkd2和clkd2not四個時鐘組合生成,產(chǎn)生muxO和muxl兩個控制信號。當(dāng)mux0=0時Datainn(3:O)輸出到DataO,反之,當(dāng)muxO=1時Datainn(11:8)輸出到Data0;同樣,當(dāng)muxl=0時Datainn(7:4)輸出到Datal,反之,當(dāng)muxl=0時,Datainn(15:12)輸出到Datal。
    為了提高速度,保證高頻率下程序的穩(wěn)定性,使用rloc命令,通過對。fast模塊各個觸發(fā)器屬性描述及對底層基本邏輯單元的相對位置進(jìn)行約束,使得同一組數(shù)據(jù)的觸發(fā)器放置相對集中,從而減少了由于時鐘信號在布局布線中產(chǎn)生延遲使得數(shù)據(jù)建立時間不足而引起的不定態(tài)。


3 實現(xiàn)與仿真
    ModelSim是一個獨立的仿真工具,在Xilinx公司的ISE集成開發(fā)環(huán)境中給ModelSim仿真軟件預(yù)留了接口,通過這個接口可以從ISE集成工具中直接啟動ModelSim工具進(jìn)行仿真。由于廠家的推廣,ModelSim得到了廣泛的應(yīng)用。
    仿真也可分為功能仿真和時序仿真等3大類型。由于特殊底層元件的使用,需要一些器件庫模型的支持。而綜合后門級功能仿真以及實現(xiàn)后時序仿真都需要廠家器件庫的支持。
    因此,在使用ModelSim 6.2進(jìn)行功能級仿真和布局布線后仿真時,應(yīng)根據(jù)需要提前對Xilinx的UN ISIM,XmnxCoreLib,SIMPRIM,SmartModel庫進(jìn)行編譯。其中,UNISIM庫包含了Xilinx公司全部的標(biāo)準(zhǔn)元件;XilinxCoreLib則包含了使用Xilinx CoreGenerator工具生成的IP的仿真模型;SIMPRIM庫用來做時序仿真或者門及功能仿真;SmartModel庫用來模擬復(fù)雜的FPGA設(shè)計。
首先按如下步驟完成對XX的編譯:
    (1)將ModelSim根目錄下的modelsim.ini文件的屬性設(shè)置為存檔;
    (2)在ModelSim的命令窗口中輸入命令:“compxlib—s mti_se-arch all—l vhdl—w—lib all”;
    (3)將ModelSim.ini文件的屬性重新設(shè)置為只讀。
    環(huán)境建立好以后,首先對程序進(jìn)行功能級仿真,驗證功能是否達(dá)到要求;功能仿真正確后再進(jìn)行布局布線后仿真,根據(jù)布局布線仿真的情況再對程序進(jìn)行分析,調(diào)整或者修改原先的設(shè)計,以滿足設(shè)計要求。
    發(fā)送:此波形顯示將128位數(shù)據(jù)Data0轉(zhuǎn)換成鏈路口的傳送協(xié)議送出,如圖10所示。
    接收:此波形表示有TS201鏈路口接收到一組數(shù)據(jù),當(dāng)FIFO_oe(即FIFO讀信號)為高時將數(shù)據(jù)并行送出,如圖11所示。

 結(jié) 語
    本文介紹了一種利用VHDL語言在FPGA上實現(xiàn)鏈路口通信的方法,實現(xiàn)FPGA與ADSP TS201之間的高速鏈路口通信。設(shè)計最終能達(dá)到的接收鏈路時鐘頻率為500 MHz,發(fā)送鏈路時鐘頻率為400 MHz,充分發(fā)揮了鏈路口通信的速度優(yōu)勢。也使得ADSPTS201通過具有此功能的FPGA與其他并行接口器件或設(shè)備進(jìn)行高速通信成為可能。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉