?

基于FPGA的無線充電接收芯片驗證平臺的設計

2019-07-16 11:55劉彬彬
電子技術與軟件工程 2019年8期
關鍵詞:原型串口時鐘

劉彬彬

摘要:本文以一款基于dw8051的無線充電接收芯片為例,闡述了搭建FPGA原型驗證平臺的幾個步驟,以及設計驗證過程中的出現一些問題的分析及解決。

[關鍵詞]SoCFPGA原型驗證驗證方法學

隨著IC設計技術的發展,目前芯片的設計已進入到Soc的時代。Soc就是將微處理器,數字IP,模擬IP,各類存儲器及膠合邏輯集成在單一芯片上。隨著設計規模及復雜度的提升,成功設計一款芯片的時間和成本也成倍的增加,因此,如何在保證功能的情況下,縮短時間減低成本成了我們關注的焦點。隨著FPGA日趨成熟的工藝技術,不斷降低的功耗和成本,以及不斷增強的規模和速度,使得其在原型驗證有著不可替代的地位。用FPGA作為原型驗證硬件模塊的載體,有兩方面的優勢:一方面是FPGA是邏輯器件,仿真的速度比軟件仿真速度快,另一方面,硬件的物理特性跟實際芯片比較接近,有利于我們比較真實的評估驗證。利用FPGA搭建的驗證平臺,通過模塊級和系統級的驗證,能快速的縮短開發時間,降低開發成本,提高流片的成功率。

本文通過一款以dw8051處理器為核心的無線充電接收芯片,闡述了如何構建和驗證FPGA原型驗證的軟硬件平臺,包括硬件資源的整合,IP替換,測試仿真,綜合實現及軟硬件聯調等。

1基于dw8051無線充電接收芯片的設計

本文所述的是一款應用于無線充電接收系統,滿足WPCQi標準的無線接收芯片,該芯片采用MCS-51系列精簡指令集處理器dw8051作為微控制器。DW8051是由Synopsys提供的可綜合的微控制器IP核。它兼容標準的8051,但為了便于集成,采用了新的外部接口。DW8051除了使用loop進行精準延遲的設計外,兼容大部分的標準51軟件。

基于dw8051的無線接收芯片架構如圖1所示,包括了數字部分和模擬部分,數字部分除了dw8051和SFR總線外,還包括了接口單元,定時器模塊,I2C總線,串口uart,復位及看門狗單元等多個模塊,模擬單元包括fsk解調,ask調制,12位的ADC,LDO,PLL,基準源及驅動mos等,除了這些數字模擬模塊還有RAM及flash等。

2FPGA原型驗證軟硬件平臺的設計

近年來隨著集成電路工藝技術的發展,芯片規模越來越大,應用在RTL代碼驗證的時間,及軟件開發驗證時間越來越多,這都需要借助FPGA原型模擬芯片的行為,來幫助硬件開發和軟件開發者來提高效率,相對于軟件仿真,FPGA硬件結構更接近于真實地芯片,更能有效真實地配合軟件開發,有效真實地反映存在的問題,提高芯片的正確性。但是由于FPGA及ASIC兩者結構的不同,在做FPGA對應ASIC的驗證時,還需要進行相應的修改,才能完成對應的功能驗證。

本文主要就從硬件及軟件兩個方面進行描述。硬件方面主要包括了,FPGA的選型,開發板的購買,ASIC代碼轉換裝入FPGA,調試啟用FPGA原型。軟件方面包括了,軟件程序準備,軟件載入FPGA協同運行。

2.1FPGA選型

FPGA選型需要根據ASIC設計的實際需求進行,如表1所示,ASIC設計通常包括以下一些內容:

(1)容量:包括了純邏輯容量,存儲容量,dsp單元容量等。

(2)內置IP:包括時鐘IP,存儲控制器IP,cpu等。

(3)接口:普通的IO接口及專用的高速接口如PCIE,LVDS接口等。

(4)速度:資源占用率在50%左右時的速度,一般被用來評估原型。

針對以上內容進行分析,其中純邏輯容量,即ASIC中組合電路與觸發器的容量,直接替換成FPGA的邏輯資源。需要內置存儲單元,比如單雙端口的ram,rom,ffo等來對asic中的存儲IP進行替換。需要有dsp器件來替換asic中的乘加運算。還需要一些內置的IP,比如分頻模塊PLL,時鐘模塊MMCM等,對于接口的要求,一般FPGA足夠多的I0口都能滿足要求,除非一些特定的專用口。影響速度的因素較多,包括設計規劃,代碼風格,資源情況等等,這些可以再選擇一款容量足夠的FPGA后,經過代碼替換,編譯綜合后得到一個大概的數據,根據這個數據再來選擇速度更合適的FPGA。綜上所述,根據以上的限定信息來進行FPGA的選型。

2.2FPGA原型板選擇

本課題的原型驗證硬件平臺結構如圖2所示,該驗證平臺的主芯片采用altera公司高性價比FPGA:cycloneII系列EP2C8Q208C8N,此芯片資源豐富,價格適中,非常適合中小型芯片驗證,板載EPCS16N串行配置芯片,同時支持jtag和as模式;系統的工作時鐘由50M的有源晶振提供,IO口3.3V電壓由電源管理芯片1085提供,FPGA的1.2V的內核電壓由1117穩壓芯片提供,板子預留有足夠的IO口,可以通過擴展IO,將驗證板與子板相連,進行系統級的驗證。本課題采用的是主板加子板的驗證模式,主板是FPGA原型板,子板是AD采集及mos驅動管子等分立元件搭建的板子,盡量使搭建的FPGA原型驗證平臺跟真實芯片一致。

2.3ASIC代碼轉換

FPGA原型驗證的關鍵是盡可能的使FPGA模擬真實芯片的功能,盡可能的接近真實的芯片,但在實際的使用過程中,由于FPGA與ASIC自身工藝及結構的不同,以及一些規模,速度,功耗上的限制,使得在使用FPGA作為芯片原型驗證時,需要對ASIC的源代碼進行一些修改,替換才能完成對應的功能。整個驗證流程如圖3所示的,本文只對右邊FPGA原型驗證流程進行分析。

2.3.1存儲單元的替換

在本設計中使用的兩個ram一個用來運行程序,一個用來存儲數據,都需要轉換成FPGA內部同樣大小的RAMIP核,本設計中使用了一個rom存儲單元用來存儲BootLoader的程序,同樣在驗證的過程中需要換成同樣大小的ROMIP核。

2.3.2時鐘單元的處理

時鐘門控clockgating一般在ASIC中廣泛使用,一般會在clk模塊中例化成由latch與門組成的門控單元,對某個模塊進行時鐘控制。這些門控單元,如果直接在FPGA中例化為相同邏輯的latch與門,邏輯功能是沒有問題的。但是這時與門出來的受控時鐘,則不能再FPGA的專用時鐘網絡中走線,而是走普通的信號網絡,這樣FPGA能達到的頻率很差。為了糾正這樣情況,可以把對寄存器的門控,放在寄存器端,也就是選用FPGA中行如FDCE這樣帶門控的寄存器。

2.3.3模擬單元的替換

FPGA原型驗證只能驗證數字部分,模擬部分的功能只能通過外部器件,分立元件來實現,本系統中的ASK,FSK,AD,LDO等模擬模塊都是通過一個子板連接到驗證主板上的,而整個系統的電源,復位,時鐘等,也是由主板提供的。其中內核電壓,IO電壓,存儲單元的電壓由驗證板電壓轉換電路提供,而時鐘則有板上的晶振通過PLL模塊轉換提供。

2.3.4其他數字IP的替換

如果使用到一些計算的乘法器,除法器,乘加運算等,還需要一些其他的IP來替換。

2.4代碼的ModelSim仿真

由于對代碼進行了替換,為了保證驗證的等效性,以及便于驗證出差檢查,需先對轉換后的代碼進行仿真驗證,再進行原型板的調試驗證。本設計使用Mentor公司的ModelSim仿真工具進行仿真,modelsim提供了友好的界面,可以很方面的觀察仿真波形信號,并且modelsim可以通過運行腳本文件,方便仿真。Modelsim還提供了仿真覆蓋率的功能,能夠標識此測試激勵仿真驗證了哪些模塊。這些功能有助于提高代碼功能驗證的覆蓋率。

為了驗證代碼替換的正確性,對一些相應的模塊進行仿真測試。本設計中有對RAM,ROM核進行替換,為了驗證這兩個模塊及對這兩個模塊操作運行模塊是否正確,設計了一個激勵,該激勵通過運行8051處理器的程序,來仿真驗證8051對RAM,ROM的數據存儲是否正確。仿真結果可以通過ModelSim查看仿真波形。圖4所示RAM模塊的仿真波形。圖5所示是mcu加載的程序實際的數據。從圖4可看出,運行程序時,從RAM中讀出的mcu程序的數據跟圖5顯示的程序數據是一致的,通過ModelSim仿真不僅可以驗證代碼替換是否等效,功能是否正確,還可以檢查出一些基本得語法錯誤。

2.5原型板的調試

在完成modelsim的仿真后,就可以將編譯綜合后的文件加載到FPGA中,進行原型板的調試。原型板的調試主要一下幾個步驟:確認下原型板電壓電流是否正確是否穩定;確認下輸入時鐘的頻率,相位,偏移,分頻是否正確;確認下FPGA的配置及復位系統是否正確;確認編譯綜合文件是否能加載到FPGA中。3FPGA的原型驗證的實現

在原型板調試完成后,驗證的基本平臺已搭建完成,可以對芯片進行系統完整的驗證。

本文描述的驗證工作主要包括兩部分,一部分是針對芯片內部各個模塊的功能驗證,即模塊級的驗證,另一部分是結合軟件,運行整個mcu系統,進行完整功能的驗證,即系統級的驗證。

3.1模塊級驗證

模塊級的驗證一方面調試時間短,查找問題容易,針對性強,另一方面,分工明確,便于多人合作,效率高。模塊級驗證主要根據功能要求編寫測試激勵,通過modelsim仿真,及板子調試,示波器查看等手段來驗證。本設計的測試激勵主要有兩種方式,一種是直接通過verilog描述語言編寫,一種是通過c語言編寫軟件程序,加載到mcu中,運行meu進行測試。在進行驗證時,根據具體的模塊選擇適合的方式來進行驗證,所有的驗證結果都可以通過modelsim觀測到。圖6所示為測試uart模塊時modelsim捕獲的波形。將串口0接到串口1上,從串口0定時發送數據0xaa,0xa9,0xa8,0xa7,從仿真圖6可以看出在串口1上接收到了同樣的數據:0xaa,0xa9,0xa8,0xa7。

3.2系統級驗證

完成模塊級的驗證后,就可以進行系統級的驗證。整個系統的驗證需要軟硬件協調驗證,包括軟件的編寫,程序的下載,整個系統的運行,系統功能的實現,系統級的驗證包括了大部分的模塊,以及模塊之間的通訊。系統級的驗證能夠驗證出模塊級沒有驗證出的問題,比如模塊之間通訊出錯,模塊之間運行的沖突等等。

本文僅以接收芯片的下載系統原型驗證為例,通過keil軟件編寫一個串口代碼,功能為:固定向pc端發送0xaa的數據,編寫完代碼,編譯生成.hex的文件,將文件存儲到RAMIP核中,經過FPGA進行編譯綜合實現,通過jtag下載到板子上。此時整個驗證環境就搭建好了。此時如果打開串口調試助手,可以看到一直接受到數據0xaa,現在通過keil軟件編寫一個不同功能的串口代碼,看功能是否切換過來,新的串口功能為:將串口從pc端接收到的數據再通過串口發送回pc端,編寫完代碼,編譯生成.hex的文件。如圖7所示,打開上位機,將程序通過上位機軟件下載到meu里面,可以看到下載成功,此時通過PC端的串口調試助手發送數據:676869123456,可以看到串口調試助手也接收到了同樣的數據676869123456。

4結論

文中以驗證基于dw8051無線充電接收芯片為例,詳細的介紹了如何FPGA軟硬件驗證平臺的設計,包括了FPGA的選型,原型板的選擇,ASIC代碼的轉換,modelsim的仿真,原型板的調試及原型的驗證。在驗證的過程中,先從硬件模塊的原型驗證到模塊級的驗證,最后到系統級的驗證,保證原型驗證具有較高的覆蓋率,提高整個平臺的可靠性。應用FPGA原型驗證的方法既可以驗證功能提高流片的成功率,又能縮短開發周期。

參考文獻

[1]張躍玲,張磊,汪健等.FPGA的驗證平臺及有效的SoC驗證方法[J].單片機與嵌入式系統應用,201616(03):8-11.

[2]馮凌霄,張冰,基于FPGA的SoC原型驗證方法研究[J].電子設計工程,2014,22(16):44-47.

[3]李維漢,趙韓,張坤,江昊,電動汽車無線充電系統的分析與設計[J].昆明理工大學學報(自然科學版),2015,40(06):66-70.

[4]胡江浩,張中煒?;赒I協議的無線充電通信系統[J].中國新通信,2016(03):106-106.

[5]鄧良禹。手機無線充電技術的研究[J].移動信息,2017(09):7-8.

[6]蘇藝端,虞致國,顧曉峰。一種基于可重用激勵發生機制的SoC驗證平臺[J].計算機工程與科學,2016(07):1309-1315.

[7]程冀勝.SoC芯片FPGA原型的軟硬件協同驗證[J].單片機與嵌入式系統應用,2017(11):7-13.

[8]李璐,周春良,馮曦,周芝梅,朱承治.基于DPI-C接口的可擴展SOC驗證平臺[J].電子設計工程,2018(04):136-140.

[9]虞致國,魏敬和,基于FPGA的ARMSoC原型驗證平臺設計[J].電子與封裝,2007,7(05):25-28.

[10]豐玉田,付字卓,趙峰,大規模SoC設計中的高校FPGA驗證技術的研究與實現[J].電子技術應用,2006(02):110-112.

[11]夏飛,劉光明,基于FPGA組的ASIC驗證原型系統和邏輯分割算法的研究與實現[J].計算機工程與科學,2006,28(09):83-87.

[12]Thomas L, Anderson.Design intents raise verification level [M].Electronic Engineering Times, 2001.

[13]孫海平,丁健,系統芯片(SoC)驗證方法與技術[M].北京:電子工業出版社,2005.

[14]虞致國,魏敬和,基于JTAG的SoC軟硬件協同驗證平臺設計[J].微電子學與計算機,2010(10):166-168..

[15]張術利,劉忻,基于FPGA的SoC原型驗證的設計與實現[J].電子技術,2011(05):71-73.

[16]楊安生,黃世震,基于ARMSoC的FPGA原型驗證[J].電子器件,2011,34(03):247-251.

猜你喜歡
原型串口時鐘
別樣的“時鐘”
淺談AB PLC串口跟RFID傳感器的通訊應用
古代的時鐘
《哈姆雷特》的《圣經》敘事原型考證
論《西藏隱秘歲月》的原型復現
時鐘會開“花”
USB接口的多串口數據并行接收方法探索
原型理論分析“門”
基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
基于并行控制的FPGA多串口拓展實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合