遲海明,周春良,趙東艷,王于波,唐曉柯
(北京智芯微電子科技有限公司,北京 100192)
隨著微電子技術的進步,集成電路的發(fā)展日新月異,人們對低成本、低功耗、高性能的芯片設計不斷地提出更高的要求。片上系統(tǒng)(SoC)設計理念就是在這樣的追求中發(fā)展了約20年。隨著SoC設計復雜度不斷增高,功能驗證的難度也在不斷加大,更加耗時?,F(xiàn)場可編程邏輯陣列(FPGA),經過約30年的發(fā)展,不僅可以作為單一邏輯功能部件來使用[1-3],更已達到片上系統(tǒng)調試的性能要求,在容量上可以通過一片或多片F(xiàn)PGA裝下整個SoC的數字部分[4]。FPGA原型驗證是將SoC數字部分以及一部分數模混合部分,一致的或通過一定約束的改變,映射到FPGA中進行軟硬件協(xié)同開發(fā)調試。其目的,一是為了對設計有直觀的了解,可以在芯片流片前展示整個系統(tǒng)的設計概念,做協(xié)議互聯(lián)互通測試;二是希望軟件可以和硬件同步開發(fā),提高整個系統(tǒng)的開發(fā)效率;三是可以作為參考模型輔助芯片調試。文中以最新一代電力專用寬帶電力線載波通信芯片為例,介紹FPGA原型驗證的設計流程以及應用。
隨著智能電網建設的推進,通信速率低、可靠性差的窄帶電力線載波通信技術作為本地接入方式,已不能滿足用電信息交互的需求。在這樣的背景下,寬帶電力線載波通信技術規(guī)范得以提出?;趪译娋W新標準[5]并兼容南方電網標準[6]的高速寬帶電力線載波通信芯片[7-8],從提出經過不斷增強,目前已經大規(guī)模量產[9-12]。
芯片結構如圖1所示。芯片采用AMBA總線架構,第一級為32位AHB總線。主設備包括CPU核和系統(tǒng)DMA控制器。從設備有SDRAM控制器及其配置接口、系統(tǒng)DMA控制器、SPI Flash控制器、BootROM、SRAM控制器、AHB2APB橋以及電力載波通信加速器(PLC)。第二級總線為APB總線,連接的設備有定時器、PWM模塊、GPIO接口、UART接口、SPI接口、I2C接口以及系統(tǒng)控制單元(SCU)。芯片的模擬部分包含低抖動的系統(tǒng)PLL以及高性能、低功耗的模擬前端(AFE)。其中,AFE又包含高精度模數/數模變換器(AD/DA)、低通濾波器(LPF)以及可控增益放大器(PGA)。
圖1 芯片結構
FPGA原型驗證的主要工作是對載波通信物理層加速器進行協(xié)議驗證及性能驗證。物理層收發(fā)結構如圖2所示。包括:加擾/解擾、信道Turbo編碼/解碼、信道交織/解交織、分集拷貝/分集合并、星座映射/解映射、IFFT/FFT、同步定時、數字前端以及信道數據采集。
圖2 物理層收發(fā)結構
對于一個很大的ASIC設計,如果資源有限,就不得不將設計進行分割映射到多片F(xiàn)PGA,通過接口互聯(lián)來實現(xiàn)原本內部信號的連通[13]。這對板級設計以及調試帶來更大的難度,應盡量避免。文中FPGA驗證平臺環(huán)境分為硬件和軟件兩部分,如圖3所示。硬件部分的主體是帶有Virtex7 2000T-FLG1925的核心板。2000T-FLG1925型號可以支持到2 000萬門的ASIC設計[14],足夠容納所述設計的數字部分。核心板具有專用高速I/O接口,連接JTAG/UART子板、模擬子板和FLASH子板。軟件部分包括FPGA設計軟件VIVADO、FPGA核心板配置軟件以及SoC驅動開發(fā)/調試環(huán)境 Metaware IDE/Debugger(MDB)。
圖3 FPGA原型驗證平臺結構
PC機USB口通過DigilentJTAG仿真器連接到JTAG/UART子板,負責加載驅動程序以及載波信息數據傳輸。FLASH子板作為程序數據存儲區(qū)。模擬子板負責數模/模數轉換、濾波和放大,最終信號可耦合到電力線或同軸電纜進行收發(fā)。
FPGA與芯片前端設計的不同之處在于硬件單元種類有限、結構固定、連接關系冗余[15]。因此要將不能映射到FPGA中的部分進行移植,改變時鐘及所涉及路徑的約束。文中所述設計移植的原則是:只進行獨立IP的替換及與之相關的邏輯修改,最大限度保證芯片與FPGA設計的一致性。芯片中的系統(tǒng)PLL部分替換為時鐘管理(MMCM)資源,去掉大部分時鐘門控機制并將其余改為數據門控。模擬IP替換為片外性能相近的第三方芯片,內部與模擬IP相關接口根據第三方芯片進行修改并引到FPGA管腳。對第三方模擬芯片的控制也做了相應的增加。
在上板調試FPGA前,應首先對移植的設計進行功能驗證。如果前端設計階段進行的功能驗證不夠充分,依靠在板級調試階段通過內建邏輯分析(Chipscope)手段去排查邏輯功能錯誤,既耗時又難以獲取足夠的觀察時間及信號數目。通過復用基于覆蓋率驅動的芯片驗證環(huán)境[16]進行FPGA設計驗證,保證功能檢驗結果的一致性。對于功能而言,不針對FPGA額外構建測試用例,而是復用已有的芯片測試用例,從功能的角度考察移植是否正確。對于外部接口電路的改動,可以構建針對FPGA的特殊用例。除了針對第三方模擬接口做了單獨的驗證用例外,其余均復用芯片驗證用例,功能覆蓋率達到100%。
設計采用Synopsys的Synplify進行綜合,以輸出更好的綜合結果。將PRJ格式的設計及策略腳本文件與FDC格式的約束文件輸入綜合工具,綜合輸出EDF格式的網表文件。然后,將EDF網表文件及XDC格式的時鐘及管腳約束文件通過TCL腳本文件附帶一定的工具策略輸入到Vivado進行布局布線,輸出用于FPGA下載的BIT文件。最終時序分析報告沒有出現(xiàn)時序違例,所占資源結果如表1所示。
FPGA原型驗證板級調試主要通過驅動軟件對原型設計進行操作,測試CPU、總線、接口以及電力線載波物理層加速器的功能。圖4是FPGA硬件平臺實物圖。將功能子板插接到核心板的專用高速I/O接口,從而連接到FPGA的管腳。利用核心板配置軟件配置FPGA,用DigilentJTAG仿真器連接PC機USB口和Jtag/Uart子板,啟動Metaware IDE,在線修改寄存器值,觸發(fā)硬件操作,觀察各部分硬件功能是否達到預期結果。在產生新的系統(tǒng)需求時,通過修改RTL代碼重新回歸FPGA自動化流程,實現(xiàn)快速評估。協(xié)議軟件通過采用Metaware IDE在線調試,實現(xiàn)軟硬件協(xié)同開發(fā)。
表1 FPGA資源占用結果
圖4 FPGA硬件平臺
通過搭建兩套驗證平臺,實現(xiàn)物理層在不同調制模式下的收發(fā)功能。用帶可調衰減的同軸線連接收端和發(fā)端模擬板同軸接口。用串口線連接收端和發(fā)端的Uart子板的RS-232串口。將編譯好的接收端驅動程序用MDB通過DigilentJTAG仿真器下載到接收端Flash子板中,然后將仿真器接到發(fā)送端Jtag子板,通過命令行觸發(fā)測試啟動。原始信息通過發(fā)送端Jtag子板傳入FPGA進行發(fā)送端處理,調制信號耦合到模擬線路。調節(jié)可調衰減器可模擬線路衰減行為,接收端在解調后將信息通過串口傳回發(fā)送端,發(fā)送端校驗后更新測試結果的報表信息。等所有調制模式遍歷測試結束,查看最終報表,可知所遍歷的模式全部成功。
通過將發(fā)送或接收端FPGA原型驗證平臺替換為協(xié)議電表模塊,并將模塊通過串口連到PC機,通過模塊軟件配置電表與平臺之間以不同調制方式進行信標幀通信,查看串口上報的CRC校驗結果來判斷協(xié)議的一致性。
文中針對寬帶電力線載波通信芯片的原型驗證需求,介紹了一種FPGA原型驗證平臺,描述了基于此平臺的FPGA開發(fā)流程及實現(xiàn)結果。通過載波通信物理層收發(fā)調制模式遍歷的測試以及協(xié)議一致性測試,說明平臺的調試方法達到預期目的。在芯片回片后,可將接收或發(fā)送平臺之一替換為芯片基板,為芯片調試提供協(xié)助。多套平臺還可連入電力線組網,為上層軟件的早期調試提供載體。