資源描述:
《基于cyclone_的高速異步串行接口的實現(xiàn).pdf》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、2008年第1期大眾科技No.1,2008(總第101期)DAZHONGKEJI(CumulativelyNo.101)基于cycloneⅡ的高速異步串行接口的實現(xiàn)宋開鑫,李斌,王婧,靖文,張嘉春,孫新立(沈陽理工大學(xué),遼寧沈陽100168)【摘要】文章首先介紹了系統(tǒng)的總體結(jié)構(gòu),然后詳細(xì)論述了系統(tǒng)各個組成部分的原理和工作過程,主要論證了如何利用鎖相環(huán)進(jìn)行5倍采樣從而實現(xiàn)位同步和串并轉(zhuǎn)換,然后用FIFO來實現(xiàn)時鐘域的轉(zhuǎn)換,外加一些必要的設(shè)置,最終實現(xiàn)了利用現(xiàn)場可編程邏輯器件cycloneⅡ?qū)?50M數(shù)據(jù)正確的接收和轉(zhuǎn)發(fā)?!娟P(guān)鍵詞】并串串并轉(zhuǎn)換;位同步;鎖相環(huán);VerilogHDL【中
2、圖分類號】TP303【文獻(xiàn)標(biāo)識碼】A【文章編號】1008-1151(2008)01-0065-02求。接收端PLL產(chǎn)生兩個時鐘信號:主時鐘MCLK(150×5/4(一)研究背景=187.5MHZ)和對其移相90°的時鐘MCLK90,由于PLL的輸一直以來,高速數(shù)據(jù)的接收始終是一個難題,由于必須出口僅有兩個,系統(tǒng)內(nèi)部還需要加一級反相器,生成另兩個采用本地高頻時鐘來進(jìn)行位同步,所以用FPGA來接收百兆以時鐘信號!MCLK和!MCLK90;發(fā)送端PLL生成150MHZ的時鐘以上的數(shù)據(jù),如何選擇高頻時鐘并運(yùn)用它正確的進(jìn)行數(shù)據(jù)接收正確發(fā)送數(shù)據(jù)。下面介紹一下該結(jié)構(gòu)圖的各個組成部分:是一個挑戰(zhàn)。如
3、果高速串行數(shù)據(jù)需要經(jīng)過兩個完全不同的時1.接收端鐘域轉(zhuǎn)發(fā),一個理想的方法是同步后加一級FIFO緩存。下面接收端主要由以下幾個部分組成:輸入端口、接收端PLL、就介紹一種能夠正確接收并發(fā)送150M高速串行碼流的方法,外部反相器、串并轉(zhuǎn)換器、位同步等。其主題思想是利用cycloneⅡ來生成兩個模塊:發(fā)送端和接收2.發(fā)送端端。發(fā)送端主要是同步模塊加一級FIFO緩存,接收端利用PLL發(fā)送端主要由以下幾個部分組成:輸出端口(LVDS標(biāo)準(zhǔn))、產(chǎn)生150M時鐘,正確的將數(shù)據(jù)從FIFO中讀取并發(fā)送出去。發(fā)送端PLL和并串轉(zhuǎn)換器。3.FIFO緩存器(二)總體架構(gòu)主要用作數(shù)據(jù)緩沖器。本系統(tǒng)接收數(shù)據(jù)后由本
4、地時鐘利用fpga提供的鎖相環(huán)進(jìn)(三)系統(tǒng)工作過程簡介行位同步,經(jīng)過FIFO緩存,最終完成由原始時鐘域到本地時鐘域的轉(zhuǎn)換,總體結(jié)構(gòu)框圖如圖1所示。系統(tǒng)的整體工作過程如下:首先接收端四個相位相差90°的時鐘對由LVDS端口發(fā)送來的串行數(shù)據(jù)進(jìn)行循環(huán)采樣,采樣后對接收數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,然后經(jīng)FIFO緩存器后由另一個時鐘域RXCLK讀出,這樣就完成了時鐘域的轉(zhuǎn)換,轉(zhuǎn)換得到的信號送至發(fā)送端;然后發(fā)送端接收到信號,經(jīng)并串轉(zhuǎn)換器生接收端本地時鐘接收端PLL成150M的信號由輸出端口發(fā)送出去。輸入接收端FIFO輸出發(fā)送端(四)模塊詳細(xì)介紹發(fā)送端PLL1.采樣模塊(接收端)采用5倍采樣方式,其vhdl
5、描述過程如下:接收端四個發(fā)送端本地時鐘時鐘(MCLK、MCLK90、!MCLK、!MCLK90)分別對串行數(shù)據(jù)進(jìn)圖1系統(tǒng)的總體結(jié)構(gòu)圖行采樣,用四個三位的數(shù)組(sa[2..0],sb[2..0],sc[2..0]、兩個端口的本地時鐘可以是完全不同的(也可以相同),sd[2..0])來存放采樣的數(shù)據(jù)。由于MCLK為輸入頻率的5/4,接收端與發(fā)送端之間通過一個FIFO相連接。本系統(tǒng)每個時鐘所以每個輸入數(shù)據(jù)被采樣了五次。該模塊主要用來確定輸入周期對外部碼流采樣五次,外部碼頻為150M,則所需最高時數(shù)據(jù)的傳輸點和位同步。具體程序描述如下:鐘頻率為750(5×150)MHZ,CycloneⅡ的P
6、LL完全滿足要if(posedgeMCLK)then{sa[0]<=data_in;【收稿日期】2007-10-22【作者簡介】宋開鑫,男,山東沂南人,沈陽理工大學(xué)碩士生,研究方向為fpgacpld硬件研發(fā)。-65-sa[2]<=sa[1]<=sa[0];q[11..2]都為低的情況;而由于D[10]始終為高電平,所以在sb[2]<=sb[1]<=sb[0];sc[2]<=sc[1]<=sc[0];D[10]->q[1]之前,不會出現(xiàn)q[11..2]都為低的情況;當(dāng)D[10]sd[2]<=sd[1];}->q[1]的瞬間,D[11]->q[2],所以此時q[11..2]全為0,if
7、(posedgeMCLK90)then{sb[0]<=data_in;load端使能,下一組并行信號被輸入其中。如此,隨著時鐘sd[1]<=sd[0];}信號的不斷變化,寄存器不停的向外發(fā)送串行數(shù)據(jù)。if(negedgeMCLK)then{sc[0]<=data_in;}if(negedgeMCLK90)then{sd[0]<=data_in;}(五)QuartusⅡ配置sample0[7..4]<=sample0[3..0]<={sa[2],sb[2],