<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 內嵌ARM9E內核系統級芯片的原型驗證方法

內嵌ARM9E內核系統級芯片的原型驗證方法

作者: 時(shí)間:2012-03-15 來(lái)源:網(wǎng)絡(luò ) 收藏

【摘要】隨著(zhù)大容量高速度的FPGA的出現,在流片前建立一個(gè)高性?xún)r(jià)比的已經(jīng)成為縮短(SoC)時(shí)間,提高首次流片成功率的重要。本文著(zhù)重討論了用FPGA建立進(jìn)行的流程、優(yōu)缺點(diǎn)以及常用,并結合對一款 SoC 所進(jìn)行的驗證,說(shuō)明這一在SoC驗證中的應用。

本文引用地址:http://dyxdggzs.com/article/149425.htm

【關(guān)鍵詞】:SoC,驗證,ARM9,FPGA,快速原型,軟/硬件協(xié)同驗證

1 引言

目前(SoC)規模飛速增長(cháng),嵌入式軟件也日趨復雜,但是仿真軟件的發(fā)展卻相對滯后,設計團隊已經(jīng)意識到軟件仿真的局限性,這種仿真不僅很難提供系統仿真所需要的仿真性能,而且非常耗時(shí)。隨著(zhù)大容量高速度的FPGA的出現,建立一個(gè)高性?xún)r(jià)比的原型驗證系統要比其他的方法更加便宜和快速。

2 SoC原型驗證的基本流程和優(yōu)缺點(diǎn)分析

對于SoC設計的流程,每個(gè)公司都不盡相同,大的公司都形成了自己特有的成熟的流程與方法。而對于加入原型驗證之后的SoC設計基本流程如圖1所示。在本文提到的一款用于移動(dòng)對講通信的SoC開(kāi)發(fā)中,采用的就是如圖1所示的流程。在定義完軟、硬件接口,明確軟、硬件之間的通信協(xié)議后,就可以開(kāi)始進(jìn)行SoC的軟、硬件設計了。如果采用全定制的FPGA原型,此時(shí)原型可以同軟、硬件一起并行開(kāi)發(fā),因為全定制的原型開(kāi)發(fā)也需要相當長(cháng)的時(shí)間,如果在軟、硬件設計完成之后再設計原型,那么不但不會(huì )加速設計過(guò)程,反而會(huì )延長(cháng)設計周期。

FPGA在密度、速度方面和ASIC的相似性使得基于FPGA的原型運行速度接近于現實(shí)速度,不僅可以大幅度提高系統仿真速度,而且還可以使我們盡早地來(lái)測試SoC的應用軟件,從而達到節省整個(gè)SoC開(kāi)發(fā)時(shí)間的目的。此外,由于FPGA可配置,所以原型還可以重復使用,是一個(gè)性?xún)r(jià)比很高的驗證方法。但是,隨著(zhù)SoC的快速發(fā)展,FPGA原型驗證SoC的方法也存在著(zhù)很多需要解決的問(wèn)題。

主要的問(wèn)題可以分為兩大類(lèi),第一類(lèi)問(wèn)題是ASIC和FPGA的結構不同,我們必須把ASIC風(fēng)格的代碼移植到FPGA上。ASIC設計者可以使用支持不同語(yǔ)言結構的綜合工具,但是FPGA的綜合工具不一定支持不同的語(yǔ)言結構,比如說(shuō)VHDL中的generic語(yǔ)句用來(lái)使設計保持可配置,而FPGA綜合工具有可能會(huì )把generic語(yǔ)句替換為常數。另外,ASIC中有些模塊是全定制的而并非可綜合的代碼,比如說(shuō)存儲器模塊,而FPGA只能接受門(mén)級網(wǎng)表,這樣的定制模塊就只能用模型仿真,從而降低模擬速度。還有,ASIC設計中為了降低功耗經(jīng)常使用門(mén)控時(shí)鐘(gated clock),但是在FPGA中卻不允許,需要用Synplicity CerTIfy工具將門(mén)控時(shí)鐘轉為相應的FPGA設計。

第二類(lèi)問(wèn)題在于FPGA的資源有限,主要體現在容量、時(shí)鐘資源和I/O資源的有限上。業(yè)界有條規律,FPGA的等效門(mén)除以八才是FPGA上能實(shí)現的ASIC的門(mén)數,比如說(shuō)一個(gè)200萬(wàn)門(mén)的Virtex II XC2V2000只能裝下大約25萬(wàn)門(mén)的ASIC設計。這條規律是設計師應該心中有數的,筆者在設計FPGA原型的初期就由于在這個(gè)問(wèn)題上面的忽視而導致了后期容量不夠更改設計的問(wèn)題。圖2給出了業(yè)界估計的ASIC和FPGA工藝所能實(shí)現的等效門(mén)數,我們可以看出,未來(lái)設計者將不得不面對ASIC和FPGA之間的容量鴻溝。由于FPGA的資源不夠,而目前SoC的規模又很大,要實(shí)現原型我們必須把系統劃分到多片FPGA中去,這就帶來(lái)了布線(xiàn)困難以及FPGA I/O緊張的問(wèn)題,因為SoC的系統總線(xiàn)一旦暴露出來(lái),就會(huì )使用FPGA數以千計的I/O,而目前最先進(jìn)的FPGA也僅僅能提供一千多個(gè)I/O,步線(xiàn)困難又會(huì )引出原型可靠性的問(wèn)題。目前解決的方法是采用管腳復用和用Synplify Certify對系統進(jìn)行最優(yōu)分割。FPGA廠(chǎng)商也通過(guò)集成專(zhuān)用的乘法器,片上RAM來(lái)改善FPGA資源緊張的問(wèn)題。

3 SoC原型驗證的常用方法

設計者有很多種方法可以建立起SoC原型,但是每種方法都有其優(yōu)缺點(diǎn)及適用范圍,所以設計者會(huì )從相關(guān)芯片和公司資源的實(shí)際情況出發(fā),決定出性?xún)r(jià)比最高的方案。流行的方法有以下三種:

3.1 全定制的SoC原型。

設計者依據SoC的設計規范,在印刷電路板(PCB)上實(shí)現SoC的原型系統。全定制的SoC原型系統在很長(cháng)一段時(shí)間內,是唯一的建立原型的方法,它容易使用,直觀(guān)而且可以運行于一個(gè)比較高的頻率,適用于小規模SoC。

3.2 通過(guò)SoC原型代工公司建立原型。

從2000年開(kāi)始,硅谷出現了這種SoC原型代工的公司,這些公司以其專(zhuān)業(yè)性和快速的SoC原型設計時(shí)間使得很多芯片大公司成為他們的客戶(hù),但是這種方法也意味著(zhù)昂貴、不可重用和不可控。

3.3 使用專(zhuān)業(yè)的SoC原型開(kāi)發(fā)套件。

這是目前開(kāi)發(fā)大規模復雜SoC原型的流行方法。由第三方公司提供功能強大、可重用的FPGA硬件平臺、設計流程和相應的PC端應用程序,設計者可以用開(kāi)發(fā)套件盡可能相似地實(shí)現SoC的原型。在這一市場(chǎng)有四種主要的產(chǎn)品,分別是ARM集成板(integrator)、APTIX MP3/MP4、Logic Express SoC-V20和FlexBench。

4 一款 SoC原型驗證實(shí)例

筆者參與了清華大學(xué)與意法半導體合作開(kāi)發(fā)民用對講機(Digital Walkie-Talkie,簡(jiǎn)稱(chēng)DWT)芯片的項目,主要負責DWT SoC的原型驗證。這款芯片用于409MHz免費頻段的無(wú)線(xiàn)對講通信,具體頻段為409.750MHz到410MHz一段,分20個(gè)信道,信道間隔12.5kHz。這款芯片的設計思想是將處理器、各種外設、語(yǔ)音ADC/DAC以及射頻電路全部集成到一塊芯片中去,是一款典型的基于A(yíng)RM的數?;旌蚐oC。

我們選用了ARM946E-S處理器,它兼容DSP指令,使用0.13 m工藝的ARM946E-S最高可以運行于210MHz。由于其具有較強的運算能力,所以在軟硬件劃分的時(shí)候我們將這個(gè)系統的算法都用軟件來(lái)實(shí)現,而協(xié)議由硬件來(lái)實(shí)現。模擬部分主要是音頻和射頻兩個(gè)ADDA和24M與397.875M兩個(gè)混頻器。系統中基于A(yíng)MBA的外設主要有DMA控制器、矢量中斷控制器(VIC)、多端口存儲控制器(MPMC)、實(shí)時(shí)時(shí)鐘(RTC)、同步外設接口(SPI)、通用I/O(GPIO)和功耗管理單元(PMU)等。

在系統軟硬件劃分完畢后,就可以考慮采用何種方法建立此SoC的原型了。從芯片實(shí)際的情況出發(fā),由于算法均由軟件實(shí)現,所以相應的硬件開(kāi)銷(xiāo)較小,數字部分除了ARM9E處理器外,均為基于A(yíng)MBA總線(xiàn)的外設,沒(méi)有非常復雜的數字模塊。而且SoC中的大部分外設都采用的ARM提供的IP,我們可以事先獲得這些外設的ASIC門(mén)數資料,然后再留有冗余地估計出自己開(kāi)發(fā)的模塊的ASIC門(mén)數,最后得到的結果是在0.13 m工藝下大概數字部分總共20萬(wàn)門(mén)的規模(除去處理器 ),這完全可以用一塊FPGA裝下整個(gè)設計。意法半導體可以給我們提供ARM946E-S的測試片,所以從成本等多方面衡量,筆者放棄了用ARM integrator的想法,而是用全定制的方法建立SoC原型。

DWT SoC FPGA原型的框圖,因為是數?;旌偷腟oC,所以很難做到原型與SoC完全一致,筆者在設計中盡可能做到兩者的最大相似。 在原型板上模擬部分的音頻ADC和DAC由TI的一片Codec芯片代替,而射頻部分則另外設計一塊射頻板,在原型板上只留與射頻部分的接口?;贏(yíng)MBA的外設全都放入一塊200萬(wàn)門(mén)的Virtex II XC2V2000的FPGA中,AHB總線(xiàn)暴露在板上與ARM946E-S相連。無(wú)線(xiàn)對講系統對實(shí)時(shí)性要求很高,由于只有一片FPGA,所以系統可以運行于一個(gè)比較高的頻率上,我們可以驗證系統的實(shí)時(shí)性能。板上的模擬模塊均有開(kāi)關(guān)控制,可以隨時(shí)從系統中斷開(kāi),而且FPGA可以同PC通過(guò)串口通信,所以整個(gè)原型系統不僅可以通過(guò)實(shí)際器件獲得輸入激勵,還可以通過(guò)計算機輸入激勵獲得結果進(jìn)行比較,所以具有較好的可控性和可觀(guān)測性。在選擇FPGA的時(shí)候應注意FPGA提供的時(shí)鐘引腳數目和存儲單元容量一定要滿(mǎn)足系統要求,在設計原型的時(shí)候應該將FPGA多數的I /O引到測試針腳上,以方便設計者使用邏輯分析儀進(jìn)行信號的實(shí)時(shí)采集和分析,也可以讓信號發(fā)生器產(chǎn)生一些特定的信號以供系統調試使用。

在這個(gè)FPGA原型板上筆者進(jìn)行了模塊功能驗證和系統功能驗證。對于DWT SoC中的各個(gè)模塊,在進(jìn)行原型驗證前已經(jīng)在工作站上通過(guò)了模塊功能驗證,模塊功能驗證程序是由ARM提供的APTEST系列的C程序,平臺是RTL和行為級的混和,仿真結果通過(guò)自己編寫(xiě)Tube debugging displayer進(jìn)行監控,這一過(guò)程非常耗時(shí)。筆者在FPGA原型板上使用了相同的APTEST的C程序,仿真結果通過(guò)ARM AXD Debugger CONsole進(jìn)行監控。仿真速度上FPGA比工作站上的仿真快了3個(gè)數量級,在此種驗證中我們發(fā)現了很少量的bug,說(shuō)明在工作站上面跑的模塊功能驗證較為成功。

在FPGA原型板上進(jìn)行系統功能驗證才是進(jìn)行原型驗證真正的意義所在,由于硬件的可觀(guān)測性較差,系統功能出錯卻很難找到問(wèn)題所在,所以筆者編寫(xiě)了PC端的程序,其目的是產(chǎn)生每個(gè)系統功能程序所需要的激勵樣本,將其通過(guò)UART送入FPGA,并將取到的結果與期望樣本進(jìn)行比較。不過(guò)這種方法只能驗證基帶部分,基帶部分接口的速率較低,可以通過(guò)UART與計算機實(shí)時(shí)通信,筆者通過(guò)此種方法成功地驗證了數字基帶部分的功能和實(shí)時(shí)性。對于系統全功能驗證,是通過(guò)連接射頻板進(jìn)行的,在驗證完基帶部分后,用原型板與射頻板的結合,實(shí)現整個(gè)系統原型。在筆者對DWT SoC進(jìn)行的原型驗證過(guò)程中,發(fā)現了一些嚴重的在工作站仿真時(shí)卻沒(méi)有發(fā)現的RTL bug。

五 小結

用FPGA建立SoC原型進(jìn)行驗證是一種高性?xún)r(jià)比的SoC驗證方法,基于原型的速度接近于現實(shí)速度,可以使我們找出其他驗證方法找不出的錯誤。軟件仿真之后建立SoC的原型進(jìn)行驗證已經(jīng)成為絕大部分芯片公司采用的方法,沒(méi)有經(jīng)過(guò)原型驗證的SoC,會(huì )被認為是沒(méi)有經(jīng)過(guò)充分驗證的SoC。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>