国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

ADSP?。裕樱玻埃辨溌房谕ㄐ诺模疲校牵翆崿F(xiàn)

2009-03-19 01:59:12魏云斐張遂南
現(xiàn)代電子技術 2009年3期

魏云斐 張遂南

摘 要:AD公司的TS201 DSP系列可通過其特有的鏈路口實現(xiàn)高速通信,為使不具備此接口的設備也能與TS201進行鏈路通訊,采用 FPGA實現(xiàn)數(shù)據(jù)在鏈路口與其他并行接口之間的傳輸,即 128位并行模式和4位通信模式之間的轉換。設計選用Xilinx公司的Virtex4系列的FPGA,它具有低功耗差分(LVDS)模式,雙倍數(shù)據(jù)速率(DDR)寄存器以及嵌入式先進先出(FIFO)存儲器等功能,更適合于此設計。在ISE 和Modelsim等輔助工具的幫助下,使用VHDL語言編程,分析和優(yōu)化整個設計,最終完成設計??蓪崿F(xiàn)接收鏈路時鐘頻率為500 MHz,發(fā)送鏈路時鐘頻率為400 MHz。

關鍵詞:鏈路口;低功耗差分;雙倍數(shù)據(jù)速率;FPGA;VHDL

中圖分類號:TN919文獻標識碼:B

文章編號:1004-373X(2009)03-167-04

Implementation of ADSP TS201 Link Port Communication on FPGA

WEI Yunfei,ZHANG Suinan

(Xi′an Micro-electronics Technology Institute,Xi′an,710075,China)

Abstract:Through AD′s TS201 DSP series special high speed link ports communication,to enable the equipments which doesn′t has the interface to link with TS201 communication,the transmission of data between link ports and other parallel interfaces is realized by FPGA,that is,the conversion between 128 b and 4 b Xilinx Virtex4 grade -12 series FPGA is chosen,it contains a Low-power Differential (LVDS) model,Double Data Rate (DDR) register,embedded FIFO memory and other functions.In the ISE and Modelsim′s help,using VHDL language program,the entire design is analysed and optimized.It can get a receiving clock frequency about 500 MHz,a transmitting clock frequency about 400 MHz.

Keywords:link port;LVDS;DDR;FPGA;VHDL

0 引 言

隨著電子技術的飛速發(fā)展,在實際應用中數(shù)據(jù)高速傳輸有著越來越高的要求,鏈路口為數(shù)據(jù)傳送提供了高速、獨立的通信機制,得到廣泛應用。AD公司生產(chǎn)的TS201 DSP就具備這種端口。為了使不具備此接口的器件同樣也能通過鏈路口與TS201進行高速通信,引入FPGA進行設計。

FPGA器件因其集成度高、功能強大、現(xiàn)場可編程等優(yōu)點被廣泛應用于各種場合。通過在FPGA上參照鏈路口通信協(xié)議編寫VHDL程序,完成數(shù)據(jù)傳送方式的轉換,實現(xiàn)此接口與其他設備通信,以滿足系統(tǒng)的高速通信要求。

本文設計了一種基于Xilinx公司Virtex4系列的FPGA的128位并行數(shù)據(jù)與ADSP TS201的鏈路口通信方式。

1 ADSP TS201鏈路口協(xié)議

ADSP TS201有4個鏈路口均采用LVDS(Low Voltage Differential Signaling )電路, 每個鏈路口都是由4位雙向差分數(shù)據(jù)線和另外3個控制信號構成。接收控制信號包括: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ù)據(jù)。這里主要討論4位數(shù)據(jù)總線通信模式的具體實現(xiàn)。

在鏈路口通訊協(xié)議的時序上采用一些通用規(guī)則,具體規(guī)則如下:

① 第一個數(shù)據(jù)(1位或4位)必須在鏈路口時鐘(Lxclkoutp)的第一個上升沿發(fā)送。

② 后一個數(shù)據(jù)(1位或4位)必須在鏈路口時鐘(Lxclkoutp)最后一個下降沿發(fā)送。

③ 當鏈路口停止收發(fā)后Lxclkoutp被置為低。

④ 每次至少傳送4個字(128位)。傳送需要用16個鏈路口周期,如圖1所示。

當Lxacki被置為高,即接收緩沖是空的,發(fā)送通道被初始化,發(fā)送端可以繼續(xù)發(fā)送數(shù)據(jù)。如圖2所示,第一個數(shù)據(jù)在第一個Lxclkoutp上升沿有效,最后一個數(shù)據(jù)在最后一個鏈路口時鐘下降沿之前發(fā)送。當鏈路口停止時Lxclkoutp被置為低。

圖1 4位模式時序

圖2 鏈路口a只發(fā)送4個字的時序

圖3 鏈路口a發(fā)送到接收端(Rx滿)

圖3表示當Lxacki被置為低時,說明接收端沒有準備好接收更多數(shù)據(jù)的情況。此時若仍有數(shù)據(jù)傳送,則會造成數(shù)據(jù)的丟失。

當發(fā)送數(shù)據(jù)長度可變時發(fā)送方用Lxbcmpo信號通告接收數(shù)據(jù)塊傳輸已完成。Lxbcmpo與接收端的Lxbcmpi輸入信號連接,當接收端識別該信息,就通知DMA通道數(shù)據(jù)塊傳送完畢。

Lxbcmpo信號通過在塊的最后4個字傳輸?shù)牡谝粋€Lxclkout上升沿變低,指示塊傳輸完成。而在同一4個字的最后一個Lxclkout下降沿置位。若LTCTLx寄存器中的TBCMPE位被清除或當鏈路口傳輸由處理器核執(zhí)行,Lxbcmpo無效。

2 模塊建立與優(yōu)化

ADSP TS201的鏈路口采用的是獨立的發(fā)送和接收通道,因此對應的FPGA也需要采用不同的接收電路和發(fā)送電路。

無論是接收還是發(fā)送均由兩部分組成:接收/發(fā)送緩沖和接收/發(fā)送模塊。接收模塊主要是用于接口和數(shù)據(jù)的拆包處理,發(fā)送模塊是用于數(shù)據(jù)接收和打包處理。接收/發(fā)送緩沖則是用來分別配合接收/發(fā)送模塊進行數(shù)據(jù)緩沖,并實現(xiàn)數(shù)據(jù)傳輸功能。

2.1 接收電路

接收模塊:接收到由鏈路口4位數(shù)據(jù)總線送出的數(shù)據(jù)差分信號Lxdata_p/n和控制差分信號Lxclk_p/n以后不能直接拆包處理,需要將原來的差分信號轉換成完整信號Lxdata和Lxclk,才可進入雙倍數(shù)據(jù)速率器(DDR)寄存,此寄存器由時鐘信號clkin(與Lxclk同頻率)控制。由于是4位數(shù)據(jù)總線同時串行傳送數(shù)據(jù),其具體的數(shù)據(jù)排序如圖4所示。

可見,每一路傳送的數(shù)據(jù)均不是連續(xù)的,且都按模4余數(shù)分配。為了方便數(shù)據(jù)并行送出,需要將數(shù)據(jù)進行拆包整理。每個clkin周期收到8位數(shù)據(jù),將此按位號由大到小的順序整理,并放入mid(7:0)中。其間增加一級觸發(fā)器作為緩沖。

接收緩沖:此部分主要由狀態(tài)機和FIFO構成,其中狀態(tài)機主要控制FIFO寫命令的產(chǎn)生,由鏈路口時鐘Lxclk和時鐘信號clkin共同產(chǎn)生,即當Lxclk產(chǎn)生第一個上升沿時計數(shù)器開始計數(shù)從0~15,每次計數(shù)就會將相應的FIFO寫許可we_d置為有效。將128位數(shù)據(jù)每8位為一組,分別送入16個8位FIFO中,由外部的FIFO_oe讀信號和sysclk時鐘信號控制128位數(shù)據(jù)并行讀出。即將FIFO_oe信號同時接到16個FIFO上,當FIFO_oe有效時,從16個FIFO中同時讀出數(shù)據(jù)。并根據(jù)FIFO存儲狀態(tài)發(fā)送Lxacko信號和fullflag信號,若FIFO不滿則將Lxacko信號置為1(高有效)允許發(fā)送端繼續(xù)通過鏈路口發(fā)送數(shù)據(jù);否則Lxacko置為0。

圖4 4位數(shù)據(jù)模式傳送數(shù)據(jù)排序

其中,F(xiàn)IFO 8由Core generator直接生成,是異步8位先進先出存儲器。下面涉及的FIFO 16,F(xiàn)IFO 32均這樣生成。接收(Rx)流程圖如圖5所示。

圖5 接收流程圖

綜合后此電路的主時鐘Clkin頻率最快可達到368 MHz。由于一個FIFO 8就占用了一個18 Kb的嵌入式FIFO資源,而16個FIFO就占據(jù)了16個塊的資源,這不僅造成了資源的浪費,還增加了布局布線所需要的時間。因此,為了優(yōu)化結構,增加一級寄存器,擴展數(shù)據(jù)的位數(shù),使得數(shù)據(jù)在未進入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。具體結構如圖6所示。

圖6 優(yōu)化后的接收結構

2.2 發(fā)送電路

發(fā)送模塊:當外部接收到128位并行數(shù)據(jù)Datain(127:0)及FIFO寫控制信號Datain_we后,將數(shù)據(jù)按以下規(guī)則重新組合排序:

loop0 : for i in 0 to 7 generate

ramdata0((4*i)+3 downto 4*i)<=datain((16*i)+3 downto (16*i)+0);

ramdata1((4*i)+3 downto 4*i)<=datain((16*i)+7 downto (16*i)+4);

ramdata2((4*i)+3 downto 4*i)<=datain((16*i)+11 downto (16*i)+8);

ramdata3((4*i)+3 downto 4*i)<=datain((16*i)+15 downto (16*i)+12);

end generate;

數(shù)據(jù)整理后,同時送入4個32位FIFO 32中,寫時鐘為sysclk。當FIFO 32不為空且Lxacki信號為高電平時,接收端允許傳送數(shù)據(jù)。數(shù)據(jù)由FIFO 32中讀出,分別放入4個32位寄存器中,準備發(fā)送。

發(fā)送緩沖:此部分由狀態(tài)機和雙數(shù)據(jù)率(DDR)寄存器組成。當發(fā)送條件成立,數(shù)據(jù)放入寄存器后,由state信號控制寄存器,每個Txclk周期從4個寄存器中各讀出2位數(shù)據(jù)Data_tx(7:0) 共8位,為了滿足鏈路口通信協(xié)議,發(fā)送出的數(shù)據(jù)應如圖4所示。因此,將Data_tx兩兩分組(0和4,1和5,2和6,3和7),4對數(shù)據(jù)分別由4個雙數(shù)據(jù)率(DDR)寄存器經(jīng)差分轉換送出,根據(jù)協(xié)議同時送出相應的時鐘控制信號Lxclk_p/n(與Txclk相同頻率)。按照協(xié)議,Lxclk的第一個上升沿必須在第一位數(shù)據(jù)傳送中建立,因此,這里引入時鐘信號Txclk90(Txclk相移90°),用來控制Lxclk_p/n信號。數(shù)據(jù)傳送結束前的最后一個時鐘周期內將Lxbcompo信號置低(低有效)。發(fā)送(Tx)流程如圖7所示。結構如圖8所示。

圖7 數(shù)據(jù)流程圖

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

子模塊fast的結構如圖9所示。

子模塊fast控制模塊是由clk,clknot,clkd2和clkd2not四個時鐘組合生成,產(chǎn)生mux0和mux1兩個控制信號。當mux0=0時Datainn(3:0)輸出到Data0,反之,當mux0=1時Datainn(11:8)輸出到Data0;同樣,當mux1=0時Datainn(7:4)輸出到Data1,反之,當mux1=0時,Datainn(15:12)輸出到Data1。

圖8 發(fā)送結構

圖9 fast模塊結構

為了提高速度,保證高頻率下程序的穩(wěn)定性,使用rloc命令,通過對fast模塊各個觸發(fā)器屬性描述及對底層基本邏輯單元的相對位置進行約束,使得同一組數(shù)據(jù)的觸發(fā)器放置相對集中,從而減少了由于時鐘信號在布局布線中產(chǎn)生延遲使得數(shù)據(jù)建立時間不足而引起的不定態(tài)。

3 實現(xiàn)與仿真

ModelSim是一個獨立的仿真工具,在Xilinx公司的ISE集成開發(fā)環(huán)境中給ModelSim 仿真軟件預留了接口,通過這個接口可以從ISE集成工具中直接啟動ModelSim工具進行仿真。由于廠家的推廣,ModelSim得到了廣泛的應用。

仿真也可分為功能仿真和時序仿真等3大類型。由于特殊底層元件的使用,需要一些器件庫模型的支持。而綜合后門級功能仿真以及實現(xiàn)后時序仿真都需要廠家器件庫的支持。

因此,在使用ModelSim 6.2進行功能級仿真和布局布線后仿真時,應根據(jù)需要提前對Xilinx的UNISIM,XilinxCoreLib,SIMPRIM,SmartModel庫進行編譯。其中,UNISIM庫包含了Xilinx公司全部的標準元件;XilinxCoreLib則包含了使用Xilinx Core Generator工具生成的IP的仿真模型;SIMPRIM庫用來做時序仿真或者門及功能仿真;SmartModel庫用來模擬復雜的FPGA設計。

首先按如下步驟完成對XX的編譯:

(1) 將ModelSim根目錄下的modelsim.ini文件的屬性設置為存檔;

(2) 在ModelSim的命令窗口中輸入命令:“compxlib-s mti_se-arch all-l vhdl-w-lib all”;

(3) 將ModelSim.ini文件的屬性重新設置為只讀。

環(huán)境建立好以后,首先對程序進行功能級仿真,驗證功能是否達到要求;功能仿真正確后再進行布局布線后仿真,根據(jù)布局布線仿真的情況再對程序進行分析,調整或者修改原先的設計,以滿足設計要求。

發(fā)送:此波形顯示將128位數(shù)據(jù)Data0轉換成鏈路口的傳送協(xié)議送出,如圖10所示。

圖10 發(fā)送波形

接收:此波形表示有TS201鏈路口接收到一組數(shù)據(jù),當FIFO_oe(即FIFO讀信號) 為高時將數(shù)據(jù)并行送出,如圖11所示。

圖11 接收波形

4 結 語

本文介紹了一種利用VHDL語言在FPGA上實現(xiàn)鏈路口通信的方法,實現(xiàn)FPGA與ADSP TS201 之間的高速鏈路口通信。設計最終能達到的接收鏈路時鐘頻率為500 MHz,發(fā)送鏈路時鐘頻率為400 MHz,充

分發(fā)揮了鏈路口通信的速度優(yōu)勢。也使得ADSP TS201通過具有此功能的FPGA與其他并行接口器件或設備進行高速通信成為可能。

參考文獻

[1]侯伯亨.VHDL硬件描述語言與數(shù)字邏輯電路設計[M].西安:西安電子科技大學出版社,1999.

[2]劉書明,羅勇將.ADSP TS20XS系列DSP原理與應用設計[M].北京:電子工業(yè)出版社,2007.

[3]王誠,薛小剛,鐘信潮.FPGA/CPLD設計工具-XilinxISE使用詳解[M].北京:人民郵電出版社,2005.

[4]ModelSimsRSE User′s Manual[DB/OL].Software Version 6.2b,2006.

[5]Xilinx ISE 8 Software Manuals[DB/OL].Xilinx,Inc.All Rights Reserved,2006.

[6]朱明程.現(xiàn)場可編程邏輯門陣列器件 FPGA原理及應用設計[M].北京:電子工業(yè)出版社,1994.

[7]Stefan Sjoholm,Lennart Lindh.VHDL for Designers[M].北京:清華大學出版社,2000.

[8]初步產(chǎn)品技術規(guī)范.Virtex-4系列概述[DB/OL].DS112(v2.0),2007.

[9]Virtex-4 User Guide[DB/OL].UG070 (v2.2),2007.

[10]ADSP-TS201 TigerSHARCsRProcessor Hardware Reference[DB/OL].Revision 1.1,2004.

作者簡介

魏云斐 女,1981年出生,碩士研究生。主要研究方向為計算機系統(tǒng)結構

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。

武清区| 井研县| 财经| 百色市| 白沙| 纳雍县| 当阳市| 化德县| 衡山县| 迁西县| 盐亭县| 惠安县| 洛宁县| 密云县| 绩溪县| 通许县| 来宾市| 赫章县| 鄂州市| 宁德市| 临邑县| 肇源县| 伊通| 华蓥市| 沈丘县| 高安市| 时尚| 资兴市| 历史| 郁南县| 彰武县| 雅安市| 武定县| 九台市| 应城市| 宜良县| 乌海市| 南京市| 泗水县| 建阳市| 莲花县|