RocketIOTM GTP在串行高速接口中的位寬設計
對于這個(gè)問(wèn)題,Xilinx提供了非對稱(chēng)的異步FIFO,但這樣又會(huì )造成較大的延時(shí),同時(shí)無(wú)法避免圖4所示的DW組合轉換不當的問(wèn)題。這樣就使得FIF0的控制邏輯比較復雜,而數據的延時(shí)又較大,又會(huì )致使性能下降,有些得不償失,也不符合SATA2.0的高速低延遲要求。
為了降低延時(shí),同時(shí)簡(jiǎn)化邏輯,筆者設計了一個(gè)滑動(dòng)窗口位寬轉換器,其中滑動(dòng)窗口的作用就在于尋找到正確的DW邊界,避免不當的DW組合轉換。150 MHz時(shí)鐘和75 MHz時(shí)鐘的相位一致是這種轉換穩定進(jìn)行的保障,而xilinx Virtex-5xc5vlx50t FPGA恰恰通過(guò)DCM提供了這樣兩個(gè)穩定時(shí)鐘,因此,這兩個(gè)時(shí)鐘必須接到DCM響應頻率的輸出。
利用3個(gè)18bit寄存器可以組成一個(gè)右移的寄存器組,輸入按[rxcharisk,rxdata]的形式組合成18 bit輸入數據。在位寬轉換開(kāi)始后,通過(guò)判別中間寄存器的最高2 bit rxcharisk是否為2’bOl可判別DW的邊界,并選擇輸出數據來(lái)自哪個(gè)窗口。如果75 MHz時(shí)鐘有效沿檢測到中間寄存器最高2 bit rxcharisk是2’b01,則輸出reg2和regl重組后的36 bit數據。否則,就會(huì )輸出regl和reg0重組后的36 bit數據。但由于150 MHz時(shí)鐘和75 MHz時(shí)鐘存在著(zhù)有效沿不一致的情況(即150 MHz時(shí)鐘的上升沿可能對應著(zhù)75 MHz時(shí)鐘的下降沿),75MHz時(shí)鐘有效沿可能會(huì )檢測到rxcharisk=2’b01,也可能永遠檢測不到,這取決于復位之后初始輸入數據的特性。數據重組的作用是將2個(gè)相鄰的寄存器中的16bit數據(rxdata)及其2 bit類(lèi)型指示(rxcharisk)信號重組為32 bit數據及其4 bit類(lèi)型指示信號。DW邊界判別的依據是:在PHY連接建立之后,主機和設備之間會(huì )相互發(fā)送SYNC原語(yǔ),表明兩端處于空閑狀態(tài),而SYNC就是一個(gè)控制(K)字節,其低字接收后的xcharisk是2’bol,通過(guò)這個(gè)即可識別DW的邊界。
2.2 32 bit至16 bit位寬轉換模塊
根據上面16 bit至32 bit位寬轉換分析,需要將數據處理邏輯輸出的32 bit數據拆分成兩個(gè)16bit數據交給GTP進(jìn)行發(fā)送。同時(shí)在轉換的開(kāi)始時(shí)刻,要求先發(fā)送一個(gè)DW的低字,然后發(fā)送其高字,而不能先發(fā)送一個(gè)DW的高字,否則接收端將無(wú)法正確恢復出DW。另外,150 MHz時(shí)鐘和75MHz時(shí)鐘的相位一致,同樣是這種轉換穩定進(jìn)行的保障,因此,這兩個(gè)時(shí)鐘也必須接到DCM響應頻率的輸出。其32 bit轉16 bit的實(shí)現邏輯示意圖如圖5所示。本文引用地址:http://dyxdggzs.com/article/180728.htm
用2個(gè)18 bit的寄存器組寄存經(jīng)數據重組后的36 bit輸入數據時(shí),可根據輸入數據的控制字節(rxcharisk)指示位來(lái)判別數據的寫(xiě)入和讀出。由于150 MHz時(shí)鐘和75 MHz時(shí)鐘存在著(zhù)有效沿不一致的情況,即150 MHz時(shí)鐘的上升沿可能對應著(zhù)75 MHz時(shí)鐘的下降沿,因此,要準確地進(jìn)行讀寫(xiě)控制,就必須對wr_en和rd_en信號進(jìn)行同步。同步方法是利用75 MHz時(shí)鐘的有效沿(上升沿)與150 MHz時(shí)鐘有效沿一致的特性來(lái)同步產(chǎn)生wr-en和rd_en信號。而產(chǎn)生wr_en和rd_en信號的依據是在系統復位后,由數據處理邏輯向外發(fā)送SYNC信號來(lái)表明系統處于空閑(Idle)狀態(tài)。事實(shí)上,SYNC就是一個(gè)控制(K)字節,其響應的rxcharisk是4’b0001,通過(guò)這個(gè)可以正確地將DW寫(xiě)入和讀出。DW的發(fā)送要求先發(fā)送低字,然后發(fā)送高字。數據讀出控制塊會(huì )利用rd-en信號使能2 bit的計數器,然后利用計數值將DW的低高字依次選擇讀出。
3 仿真及驗證
通過(guò)對位寬轉換模塊的Verilog HDL描述,可在ModelSim se以及Xilinx ISE集成開(kāi)發(fā)環(huán)境下進(jìn)行功能仿真和綜合布局布線(xiàn)后的時(shí)序仿真,也可在Xilinx Virtex-5 xc5vlx50t FPGA上進(jìn)行驗證。圖6所示為16 bit轉32 bit邏輯仿真圖。而其32 bit轉16 bit邏輯仿真圖如圖7所示。
4 結束語(yǔ)
本設計可實(shí)現Virrex-5 RocketI0TM GTP進(jìn)行SATA2.0相關(guān)開(kāi)發(fā)過(guò)程中的位寬匹配轉換功能,而且具有處理延遲小、差錯率低等優(yōu)點(diǎn),并通過(guò)了Xilinx ISE綜合布線(xiàn)以及Virtex-5 FPGA上的驗證,結果證明:本設計能夠完全滿(mǎn)足SATA2.0相關(guān)開(kāi)發(fā)時(shí)序及功能上的要求。實(shí)際上,邏輯設計人員利用Virrex-5 RocketIOTM GTP進(jìn)行其他高速串行傳輸接口的開(kāi)發(fā)時(shí),也可以借鑒此設計思想。
評論