ADSP TS201鏈路口通信的FPGA實(shí)現
2 模塊建立與優(yōu)化
ADSP TS201的鏈路口采用的是獨立的發(fā)送和接收通道,因此對應的FPGA也需要采用不同的接收電路和發(fā)送電路。
無(wú)論是接收還是發(fā)送均由兩部分組成:接收/發(fā)送緩沖和接收/發(fā)送模塊。接收模塊主要是用于接口和數據的拆包處理,發(fā)送模塊是用于數據接收和打包處理。接收/發(fā)送緩沖則是用來(lái)分別配合接收/發(fā)送模塊進(jìn)行數據緩沖,并實(shí)現數據傳輸功能。
2.1 接收電路
接收模塊:接收到由鏈路口4位數據總線(xiàn)送出的數據差分信號Lxdatap/n和控制差分信號Lxclk p/n以后不能直接拆包處理,需要將原來(lái)的差分信號轉換成完整信號、Lxdata和Lxclk,才可進(jìn)入雙倍數據速率器(DDR)寄存,此寄存器由時(shí)鐘信號clkin(與Lxclk同頻率)控制。由于是4位數據總線(xiàn)同時(shí)串行傳送數據,其具體的數據排序如圖4所示。本文引用地址:http://dyxdggzs.com/article/192061.htm
可見(jiàn),每一路傳送的數據均不是連續的,且都按模4余數分配。為了方便數據并行送出,需要將數據進(jìn)行拆包整理。每個(gè)clkin周期收到8位數據,將此按位號由大到小的順序整理,并放入mid(7:O)中。其間增加一級觸發(fā)器作為緩沖。
接收緩沖:此部分主要由狀態(tài)機和FIFO構成,其中狀態(tài)機主要控制FIFO寫(xiě)命令的產(chǎn)生,由鏈路口時(shí)鐘Lxclk和時(shí)鐘信號clkin共同產(chǎn)生,即當Lxclk產(chǎn)生第一個(gè)上升沿時(shí)計數器開(kāi)始計數從O~15,每次計數就會(huì )將相應的FIFO寫(xiě)許可we d置為有效。將128位數據每8位為一組,分別送入16個(gè)8位F1FO中,由外部的FIFO_oe讀信號和sysclk時(shí)鐘信號控制128位數據并行讀出。即將FIFO_oe信號同時(shí)接到16個(gè)FIFO上,當FIFO_oe有效時(shí),從16個(gè)FIFO中同時(shí)讀出數據。并根據FIFO存儲狀態(tài)發(fā)送Lxacko信號和fuiIflag信號,若FIF0不滿(mǎn)則將Lxacko信號置為1(高有效)允許發(fā)送端繼續通過(guò)鏈路口發(fā)送數據;否則Lxacko置為O。
其中,FIFO 8由Core generator直接生成,是異步8位先進(jìn)先出存儲器。下面涉及的FIFO 16,FIFO 32均這樣生成。接收(Rx)流程圖如圖5所示。
綜合后此電路的主時(shí)鐘Clkin頻率最快可達到368 MHz。由于一個(gè)FIFO 8就占用了一個(gè)18 Kb的嵌入式FIFO資源,而16個(gè)FIFO就占據了16個(gè)塊的資源,這不僅造成了資源的浪費,還增加了布局布線(xiàn)所需要的時(shí)間。因此,為了優(yōu)化結構,增加一級寄存器,擴展數據的位數,使得數據在未進(jìn)入FIFO前就已得到處理,由原來(lái)的8位數據mid連成16位數據Data,再送入16位的FIFO 16中。優(yōu)化后,FIFO 16的使用率由原來(lái)的22%減少到11%,大大減少了線(xiàn)上延遲。綜合此電路的主時(shí)鐘clkin頻率最高可實(shí)現500 MHz。具體結構如圖6所示。
2.2 發(fā)送電路
評論