《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > RocketIOTM GTP在串行高速接口中的位寬設計
RocketIOTM GTP在串行高速接口中的位寬設計
電子元器件應用
桑 旭,閆 波,卓建亮
電子科技大學
摘要: Virtex-5 RocketI0TM GTP是Xilinx公司根據高速串行接口開發市場對高性能GTP的特殊要求而開發的一款具有通用性、易用性、低功耗和低成本特性的GTP收發器。文章針對Virtex-5 RocketIOTM GTP收發器的串行高速系統接口開發過程中位寬轉換的幾個技術問題提出了解決方案,并以SATA2.0開發為例,通過Xilinx Virtex-5 XC5VLX50T FPGA驗證方案進行了可行性驗證。
Abstract:
Key words :

 0 引言

      二十世紀六七十年代,集成電路技術取得了大幅進步,大量元件可以集成到一個小小的芯片上,因此,當時的計算機系統便開始普遍采用并行通訊處理機制。但是,隨著技術進步和速度需求的提升,人們發現,并行通訊也存在很多弊端,比如碼間串擾,時鐘混亂,傳輸距離受限,傳輸線造價高等。

      最近幾年,在接口互聯技術范圍內,高速串行接口正在迅速取代并行拓撲結構而成為流行的接口標準。當今很多公用互連標準(如USB,PCIExpress,Serial ATA)都是基于串行傳輸來實現速度的躍升。串行接口技術的開發也迅速在全世界走紅。

      為了迎合串行高速接口技術開發的廣闊前景,Xilinx公司在推出的Virtex-5 FPGA以及配套的Virtex-5 RocketIOTM GTP收發中開始支持多種協議,如SATA2.0傳輸協議。SATA (Serial ATA),即串行高級技術附加裝置,該協議于2001年發布,是目前主流的主機硬盤互聯標準,該標準采用差分信號串行傳輸數據,進而解決了IDE硬盤由于串擾而導致的傳輸速率受限問題。2002年,Serial ATA委員會確立的Serial ATA 2.0規范可對外提供3.0Gb/s的傳輸速率,并支持熱插拔NCO,磁盤陣列等功能。2005年,SATA2.0產品正式上市。此外,Virtex-5 Rock-etI0TM GTP收發器還可以完成內部8B/10B轉換,但是,Virtex-5 RocketIOTMGTP進行8B/10B轉換時,處理的目標數據以字節為單位,即并行數據接收端的最大位寬為16bit,而SATA2.0協議中定義的數據處理單位是雙字(DW:Double Words),同時,FPGA中設計的數據處理邏輯也是根據協議的要求而定義為75MHz的時鐘域來進行處理,因此,在將數據交給FPGA中的數據處理主體邏輯之前,還必須進行等速率的時鐘域和位寬的轉換。

      為此,本文在對Virtex-5 RocketIOTM GTP進行了解的基礎上,針對串行高速接口開發中位寬不匹配的問題,提出了一種位寬轉換方法,以解決Virtex-5 RocketI0TM GTP無法直接應用于某些串行高速接口開發的問題,并就SATA2.0接口開發中該問題的解決方案進行詳細闡述。

 1 SATA2.0協議數據的相關操作結構

      根據SATA2.0協議規定,系統進行數據操作和傳輸時的基本單位是Dword (Double、word),共計32 bit,由低有效字wordO和高有效字wordl組成,也可以看做是由byte0~byte3四個有效字節組成。其相互關系如圖1所示。

      原語(primitive)是主機與設備間鏈路層交互的載體,一般由一個帶有控制字符byteO和附加字符bvtel—byte3的Dword組成,SATA2.0協議將原語的byte0稱為K字符,將附加字符bytel一byte3稱為D字符,由不同的K字符和D字符可以構成原語組。字符內容由8B/10B轉換中的6—4分組確定。其原語組的編碼如表1所列。

      無論是在傳輸還是在操作過程中,都要保證每個Dword的正確性和完整性,否則將導致數據出錯或原語流失。

      另外,目前高速數據傳輸接口或總線常用8B/10B編碼來編碼,其根本目的是實現直流平衡(DC Balance)。當高速串行流的邏輯1或邏輯0有多個位沒有變化時,信號的轉換就會因為電壓位階的關系而造成信號錯誤。直流平衡的最大好處便是可以克服以上問題。8B/10B編碼是目前許多高速串行總線采用的一種編碼機制,如1394b、Serial ATA、PCI Express、Infini-band、Fiber Channel、RapidIO等總線或網絡,都是8B/10B編碼的擁護者。該編碼技術的基本精神很簡單,就是將8個位經過映射的機制轉化為10個位的字碼,但它平衡了位流中0與l的數量。

      8B/10B編碼是將一組連續的8位數據分解成兩組數據,一組3位,一組5位,經過編碼后分別構成一組4位代碼和一組6位代碼,從而組成一組10位的數據發送出去。相反,解碼是將l組10位的輸入數據經過變換得到8位數據位。其8B/10B編解碼過程如圖2所示。

      Xilinx公司推出的Virtex-5 FPGA以及配套的Virtex-5 RocketI0TM GTP收發器只支持16bit接口位寬的數據傳輸,即該GTP收發器是以word為數據處理單位。由于這與SATA2.0協議的相關規定出現了偏差,因而要求在數據進入設計主體邏輯前后要進行合并以及分解。同時,FPGA中設計的數據處理邏輯是根據協議的要求而定義為75 MHz的時鐘域來進行處理的,因此,在將數據交給FPGA中的數據處理主體邏輯之前,也必須進行位寬的轉換。

      由于GTP附帶的2 bit控制字節指示信號rxcharisk可用以表征接收到了K字符,故實際的數據需要從150 MHz (16+2) bit轉換為75 MHz(32+4)bit。但由于16 bit和32 bit的并行數據是主體。因此,筆者仍稱之為16 bit到32 bit位寬轉換和32bit到16 bit位寬轉換,它們實際上都包含了指示信號,用來標示該字符是否是控制字符。

2 位寬轉換
    根據SATA2.0協議的規定和Virrex-5 RocketIOTM GTP的特性,以及SATA2.0接口邏輯中需要提取原語(primitive)進行邏輯控制的要求,16bit和32 bit位寬的相互轉換不能簡單的進行word合并拆解,而是需要實現圖1中wordO和wordl的正確組合,否則將導致原語或數據受損,使控制邏輯無法獲得有效的交互原語,數據處理邏輯組幀傳輸錯誤,文件損壞的狀況發生。這就要求系統能夠在提取原語和數據組幀之前,及時進行Dword邊界校正,以保證后續處理的正確。
2.1 16bit至32bit位寬轉換模塊
    該模塊將GTP接收后的150 MHz 16 bit并行數據轉換成數據處理邏輯可以工作的75 MHz 32 bit的并行數據。圖3所示為其位寬轉換要求示意圖。

    由于在轉換開始時,必須正確地將2個相關的16 bit Word組合成一個32bit DW,但不能將一個DW的低字跟相鄰的一個DW的高字組合成一個DW,否則邏輯處理時就會出錯。圖4所示是16Bit轉32 bit的實現邏輯示意圖。

   對于這個問題,Xilinx提供了非對稱的異步FIFO,但這樣又會造成較大的延時,同時無法避免圖4所示的DW組合轉換不當的問題。這樣就使得FIF0的控制邏輯比較復雜,而數據的延時又較大,又會致使性能下降,有些得不償失,也不符合SATA2.0的高速低延遲要求。
    為了降低延時,同時簡化邏輯,筆者設計了一個滑動窗口位寬轉換器,其中滑動窗口的作用就在于尋找到正確的DW邊界,避免不當的DW組合轉換。150 MHz時鐘和75 MHz時鐘的相位一致是這種轉換穩定進行的保障,而xilinx Virtex-5xc5vlx50t FPGA恰恰通過DCM提供了這樣兩個穩定時鐘,因此,這兩個時鐘必須接到DCM響應頻率的輸出。
    利用3個18bit寄存器可以組成一個右移的寄存器組,輸入按[rxcharisk,rxdata]的形式組合成18 bit輸入數據。在位寬轉換開始后,通過判別中間寄存器的最高2 bit rxcharisk是否為2’bOl可判別DW的邊界,并選擇輸出數據來自哪個窗口。如果75 MHz時鐘有效沿檢測到中間寄存器最高2 bit rxcharisk是2’b01,則輸出reg2和regl重組后的36 bit數據。否則,就會輸出regl和reg0重組后的36 bit數據。但由于150 MHz時鐘和75 MHz時鐘存在著有效沿不一致的情況(即150 MHz時鐘的上升沿可能對應著75 MHz時鐘的下降沿),75MHz時鐘有效沿可能會檢測到rxcharisk=2’b01,也可能永遠檢測不到,這取決于復位之后初始輸入數據的特性。數據重組的作用是將2個相鄰的寄存器中的16bit數據(rxdata)及其2 bit類型指示(rxcharisk)信號重組為32 bit數據及其4 bit類型指示信號。DW邊界判別的依據是:在PHY連接建立之后,主機和設備之間會相互發送SYNC原語,表明兩端處于空閑狀態,而SYNC就是一個控制(K)字節,其低字接收后的xcharisk是2’bol,通過這個即可識別DW的邊界。
2.2 32 bit至16 bit位寬轉換模塊
    根據上面16 bit至32 bit位寬轉換分析,需要將數據處理邏輯輸出的32 bit數據拆分成兩個16bit數據交給GTP進行發送。同時在轉換的開始時刻,要求先發送一個DW的低字,然后發送其高字,而不能先發送一個DW的高字,否則接收端將無法正確恢復出DW。另外,150 MHz時鐘和75MHz時鐘的相位一致,同樣是這種轉換穩定進行的保障,因此,這兩個時鐘也必須接到DCM響應頻率的輸出。其32 bit轉16 bit的實現邏輯示意圖如圖5所示。

    用2個18 bit的寄存器組寄存經數據重組后的36 bit輸入數據時,可根據輸入數據的控制字節(rxcharisk)指示位來判別數據的寫入和讀出。由于150 MHz時鐘和75 MHz時鐘存在著有效沿不一致的情況,即150 MHz時鐘的上升沿可能對應著75 MHz時鐘的下降沿,因此,要準確地進行讀寫控制,就必須對wr_en和rd_en信號進行同步。同步方法是利用75 MHz時鐘的有效沿(上升沿)與150 MHz時鐘有效沿一致的特性來同步產生wr-en和rd_en信號。而產生wr_en和rd_en信號的依據是在系統復位后,由數據處理邏輯向外發送SYNC信號來表明系統處于空閑(Idle)狀態。事實上,SYNC就是一個控制(K)字節,其響應的rxcharisk是4’b0001,通過這個可以正確地將DW寫入和讀出。DW的發送要求先發送低字,然后發送高字。數據讀出控制塊會利用rd-en信號使能2 bit的計數器,然后利用計數值將DW的低高字依次選擇讀出。

3 仿真及驗證
    通過對位寬轉換模塊的Verilog HDL描述,可在ModelSim se以及Xilinx ISE集成開發環境下進行功能仿真和綜合布局布線后的時序仿真,也可在Xilinx Virtex-5 xc5vlx50t FPGA上進行驗證。圖6所示為16 bit轉32 bit邏輯仿真圖。而其32 bit轉16 bit邏輯仿真圖如圖7所示。

4 結束語
    本設計可實現Virrex-5 RocketI0TM GTP進行SATA2.0相關開發過程中的位寬匹配轉換功能,而且具有處理延遲小、差錯率低等優點,并通過了Xilinx ISE綜合布線以及Virtex-5 FPGA上的驗證,結果證明:本設計能夠完全滿足SATA2.0相關開發時序及功能上的要求。實際上,邏輯設計人員利用Virrex-5 RocketIOTM GTP進行其他高速串行傳輸接口的開發時,也可以借鑒此設計思想。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩网站免费观看| 老鸭窝毛片一区二区三区 | 亚洲激情第一区| 伊人久久婷婷色综合98网| 国产三级欧美三级日产三级99| 国产精品成人久久久久| 欧美日韩国产综合网| 欧美另类视频在线| 欧美久久电影| 欧美日韩日韩| 欧美日韩免费一区| 欧美日韩专区| 国产精品久线观看视频| 国产精品美女www爽爽爽| 国产精品区二区三区日本 | 国产精品系列在线| 国产精品你懂的| 国产伦精品一区二区三区免费| 国产精品一区毛片| 国产欧美va欧美va香蕉在| 国产婷婷色一区二区三区| 国产一区二区在线观看免费| 国产中文一区| 亚洲第一精品电影| 亚洲精品视频一区二区三区| 99精品黄色片免费大全| 亚洲小说欧美另类婷婷| 亚洲欧美春色| 欧美一区激情视频在线观看| 久久精品91久久久久久再现| 亚洲欧洲一区二区三区| 夜夜精品视频一区二区| 在线一区二区三区四区| 午夜精品久久久久久99热软件| 欧美在线高清| 另类春色校园亚洲| 欧美日本精品| 国产精品手机视频| 韩国一区二区在线观看| 亚洲国产高清在线观看视频| 亚洲人成网站777色婷婷| 亚洲视频一二区| 欧美亚洲一区在线| 亚洲国产欧美在线人成| 日韩一级在线| 性久久久久久久久久久久| 久久久一区二区三区| 欧美1区2区3区| 国产精品www色诱视频| 国产日韩欧美不卡| 亚洲电影欧美电影有声小说| 一区二区三区精品| 久久www免费人成看片高清 | 亚洲欧美日韩精品一区二区| 久久免费视频网站| 欧美日韩综合另类| 国产亚洲一级高清| 亚洲精品视频免费| 欧美一区二区三区在线看| 亚洲乱码国产乱码精品精| 午夜伦欧美伦电影理论片| 麻豆精品一区二区综合av| 欧美日韩精品欧美日韩精品| 国产欧美一区二区三区在线老狼| 亚洲国产精品女人久久久| 亚洲一区二区免费看| 亚洲精品久久| 欧美在线视频免费播放| 欧美精品一区三区| 国产丝袜一区二区三区| 亚洲精品一区二| 久久精品国产亚洲5555| 亚洲女同在线| 欧美韩日精品| 国产一区二区高清| 一区二区三区欧美成人| 亚洲国产精品热久久| 小处雏高清一区二区三区| 欧美搞黄网站| 黄色亚洲网站| 亚洲尤物在线| 中日韩高清电影网| 你懂的国产精品永久在线| 国产日韩欧美不卡| 这里只有视频精品| 亚洲乱码久久| 老司机aⅴ在线精品导航| 国产模特精品视频久久久久| 日韩午夜免费视频| 亚洲肉体裸体xxxx137| 久久国产精品一区二区三区| 欧美体内谢she精2性欧美| 亚洲国产精品久久久久秋霞不卡| 欧美在线观看www| 午夜在线精品偷拍| 欧美日韩在线观看一区二区| 亚洲激情av在线| 亚洲经典三级| 老司机成人网| 禁断一区二区三区在线| 午夜欧美大片免费观看| 亚洲欧美日产图| 欧美偷拍另类| 亚洲乱码国产乱码精品精| 亚洲国产日日夜夜| 久久午夜精品| 国产综合久久| 欧美在线资源| 久久久精品国产一区二区三区 | 欧美福利在线| 在线精品视频一区二区三四| 久久国产视频网站| 久久精品国产欧美亚洲人人爽| 国产精品区免费视频| 亚洲午夜在线| 亚洲综合久久久久| 国产精品卡一卡二| 亚洲综合清纯丝袜自拍| 亚洲欧美激情一区| 欧美亚日韩国产aⅴ精品中极品| 99国产精品99久久久久久| 一区二区三区高清视频在线观看| 欧美喷水视频| 99精品视频免费全部在线| 一区二区三区毛片| 欧美日韩在线免费观看| 在线一区日本视频| 亚洲欧美另类在线| 国产精品一页| 久久精品电影| 欧美成人精精品一区二区频| 91久久国产综合久久蜜月精品| 日韩午夜免费| 欧美私人啪啪vps| 亚洲无限乱码一二三四麻| 午夜精品一区二区三区电影天堂| 国产九九视频一区二区三区| 午夜视频在线观看一区| 久久久久久网站| 亚洲第一福利社区| 99综合视频| 国产精品久久久久久久久久尿 | 性视频1819p久久| 麻豆精品一区二区av白丝在线| 亚洲高清不卡在线| 一区二区三区欧美日韩| 国产精品伦理| 欧美在线视频一区| 蜜桃av一区二区| 日韩午夜剧场| 欧美诱惑福利视频| 在线观看国产欧美| 一本色道久久综合亚洲精品婷婷 | 亚洲精品久久久久| 欧美午夜精品理论片a级按摩| 亚洲一二三区在线观看| 久久激情网站| 亚洲高清免费| 亚洲午夜电影| 国产一区二区三区免费在线观看| 亚洲电影免费观看高清| 欧美日韩国产首页| 午夜精品一区二区三区在线播放| 久久久久免费视频| 亚洲国产精品久久人人爱蜜臀| 亚洲综合久久久久| 精品成人在线| 亚洲午夜精品久久久久久浪潮| 国产午夜精品美女视频明星a级| 亚洲国产精品va在看黑人| 欧美日韩精品一区二区| 亚洲一区在线免费| 欧美成人精精品一区二区频| 亚洲午夜电影网| 蘑菇福利视频一区播放| 中文网丁香综合网| 毛片基地黄久久久久久天堂| 亚洲少妇诱惑| 免费影视亚洲| 亚洲欧美国产精品va在线观看| 鲁大师成人一区二区三区| 一本色道88久久加勒比精品| 久久久人人人| 亚洲色图综合久久| 欧美国产综合视频| 欧美一区二区高清在线观看| 欧美激情一区二区三区高清视频| 亚洲免费网址| 欧美日韩高清不卡| 亚洲大片av| 国产精品嫩草99a| 99国产精品视频免费观看| 国产午夜亚洲精品不卡| 亚洲素人一区二区| 在线日韩中文| 久久99在线观看| 一区二区三区av| 欧美激情一区二区三区在线视频观看 | 你懂的国产精品永久在线| 午夜精品一区二区三区四区|