吳廣智 邢麗娜 李健鐸 孟憲華
(1、貴州黔南科技學院,貴州 貴陽 550600 2、東軟醫療系統股份有限公司,遼寧 沈陽 110034)
隨著半導體技術的迅速發展,計算機的性能和應用取得了長足的進步,可是傳統并行總線技術PCⅠ卻跟不上處理器和存儲器的進步而成為提高傳輸速率的瓶頸。PCⅠExpress是一種基于SerDes 的串行雙向通信技術,數據傳輸速率為2.5G/通道(lane),可多達32 通道(lane),同時支持芯片與芯片和背板與背板之間的通信[1]。SerDes 發展到如今已被廣泛運用在FPGA 和ASⅠC 兩種芯片接口設計上,不同的是ASⅠC設計主要關注設計的功能性模塊,其接口部分一般采用芯片制造廠所提供的標準單元或者是根據設計公司已有的ⅠP 進行改造,但是在FPGA 芯片設計中接口電路模塊起著至關重要的作用[3]。本方案針對東軟Westlake 超聲系統的板間數據傳輸,設計采用Xilinx select ⅠO 接口實現高速串行數據通信,通過邏輯控制動態調整數據在ⅠO 口的延時,系統啟動后發送端發送已知碼型,接收端首先通過邏輯控制動態調整數據線的相對延遲時間,獲得數據穩定時的延時值,然后根據已知碼型將接收到的數據進行移位與已知碼型對應,此即完成通信鏈路校驗,校驗完成后系統開啟正常工作狀態,完成板間數據的通信傳輸。
一個典型SERDES 收發機由發送通道和接收通道組成[2]:編碼器、串行器、發送器以及時鐘產生電路組成發送通道;解碼器、解串器、接收器以及時鐘恢復電路組成接收通道。顧名思義,編碼器和解碼器完成編碼和解碼功能,其中8B/10B、64B/66B 和不規則編碼(scrambling)是最常用的編碼方案。串行器和解串器負責從并行到串行和從串行到并行的轉換。串行器需要時鐘產生電路,時鐘發生電路通常由鎖相環(PLL)來實現。解串器需要時鐘和數據恢復電路(CDR),時鐘恢復電路通常也由鎖相環來實現,但有多種實現形式如相位插植、過剩抽樣等。發送器和接收器完成差分信號的發送和接收,其中LVDS 和CML 是最常用的兩種差分信號標準。另外還有一些輔助電路也是必不可少的,例如環路(loopback)測試、內置誤碼率測試等等。
Westlake 超聲系統數據在硬件電路板SP 板、BF 板及mother 板之間傳輸,SP 板簡單概括為聲數據處理板,BF 板為聲波發射板,mother 板為SP 板與BF 板之間連接的橋梁。實現板間通信的前提是建立正確的通信鏈路,SP 板向BF 板發送數據的通路稱為BPBUS,BF 板向SP 板發送數據的通路稱為RFBUS,BPBUS 與RFBUS 獨立工作,互不影響,實現SP板與BF 板之間的通信,使系統能夠正常運作。
通信鏈路的硬件實現是基于FPGA 的Select ⅠO 接口,支持各種ⅠO 接口標準,由于LVDS 接口標準具有高速傳輸且功耗低等優點,因此本方案采用LVDS 電平標準。FPGA 高級Select ⅠO 邏輯資源包括ⅠSERDES 和OSERDES,它可以支持非常高的Ⅰ/O 數據速率,允許內部邏輯以低于Ⅰ/O 的速率運行。Oserdes 輸出已知碼的串行數據到Ⅰserdes 進行串并轉換,同時通過FPGA 邏輯代碼控制select ⅠO 的數據延時,使串行通信數據穩定接收,最后通過bit shift 獲取正確數據,建立完整的通信鏈路后,系統進入超聲數據傳輸工作狀態。整體設計框架如圖1 所示。

圖1 整體設計框架圖
SerDes 時鐘設計是保證數據穩定且正確傳輸的基礎,經測試驗證時鐘必須采用同源時鐘才能使數據傳輸穩定,在Westlake 系統中,SerDes 時鐘結構如圖2 所示。

圖2 SerDes 時鐘結構圖
每塊電路板的時鐘源相同,輸出的數據和時鐘的相位關系固定,在接收端數據和時鐘之間有相位延遲,可以通過數據移位獲得正確的數據。
本設計根據系統時鐘選擇串并轉換的時鐘,系統數據時鐘為120M,為使傳輸數據穩定系統程序中降低數據速率為60M,此時對應串行數據的速率為300M,經測試驗證數據能夠穩定傳輸,但該速率并不是本方案最大速率,測試驗證當數據為120M時,即串行速率達到600M依然能夠穩定傳輸。
在Xilinx 7 系列FPGA 中Ⅰserdes 和Oserdes 支持非常高的ⅠO 數據速率,對于Ⅰserdes 需要根據bitslip 重新對齊串行數據以獲得正確的字節數據。圖3 為Oserdes 并轉串輸出到Ⅰserdes 串轉并輸入的字節序變化。

圖3 字節序變化示意圖
SerDes 最大支持串并轉換比為1:14,表1 所示SerDes可以實現的串并轉換的并行數據的位寬。

表1
其中10 與14 位位寬需要兩個Ⅰserdes 級聯或兩個Oserdes 級聯獲得。如圖4 所示。

圖4 Ⅰserdes 級聯圖
級聯時,當需要獲取10 位位寬時,使用下面一個Ⅰserdes2 的Q3 與Q4 作為data internal[8:9],當需要獲取14位位寬時,使用下面一個Ⅰserdes2 的Q3~Q8 作為data internal[8:13]。
系統中需要通過serdes 傳輸的數據的位寬為18bit,不能通過一個serdes 進行轉換,根據serdes 最大串并轉換比1:14,本方案中將系統數據拼接為20bit,然后分成兩組10bit傳輸,因此本方案中串并轉換比選擇1:10。
Serdes 傳輸方式分為SDR 和DDR 兩種。以serdes 串并轉換比1:4 來描述兩種傳輸方式如圖5 和圖6。

圖5 SerDes SDR 圖

圖6 SerDes DDR 圖
(1)SerDes SDR 1:4
(2)SerDes DDR 1:4
Ser_clk 的頻率即串行接口的傳輸速度,本方案中采用的是DDR 1:10 模式,并行數據與串行數據的時鐘關系比即為1:5。
板間通信數據總線拆分為BPBUS 與RFBUS,信號連接結構圖如圖7 所示。

圖7 信號連接結構圖
本設計中BPBUS 與RFBUS 都是4 路獨立的通路,互不干擾互不影響,每一路都有單獨的ⅠDELAY 模塊,單獨的delay 值,設計中只有接收端每一路都穩定才輸出rdy 信號,代表4 路通信建立成功。
因此設計中SerDes 通信首先需要建立通信鏈路,使接收數據穩定,具體實現思路是通過發送固定碼10’h123,由于接收串行數據與源同步時鐘具有相位差,通過邏輯代碼控制delay 值,使數據與時鐘相位一致,確定數據idelay 延時值后,數據能夠穩定傳輸,板間通信鏈路成功建立,輸出通信鏈路成功的標志信號rdy,準備接收系統數據。
根據系統需要,發射數據分4 路串行數據傳輸,采用DDR模式,串并轉換比為1:10,對于Ⅰserdes 而言,串行輸入可以直接來自ⅠOB 也可以來自ⅠDELAY2單元(串行信號經過ⅠDELAY2后進行了延時),這就需要通過ⅠODELAY value 來設置。本方案數據經過ⅠDELAY2 后輸出到Ⅰserdes。通過邏輯控制ⅠDELAY2的延時值,保證數據能夠穩定傳輸,設計結構如圖8 所示。

圖8 FPGA 邏輯控制流程圖
兩塊電路板SerDes 結構一樣,可以在程序中復用,節省開發時間,提高工作效率。SerDes module 中串并轉換采用Xilinx 庫中的ⅠPcore 設計,重點在于如何確定idelay module的delay 值,使輸出數據穩定,FPGA 邏輯控制流程如圖9 所示。

圖9 FPGA 邏輯控制流程圖
系統板間通信SerDes 鏈路建立,且保證了數據傳輸的正確性與穩定性,能夠應用于Westlake 項目中,完成超聲數據的通信傳輸。