當(dāng)前位置:首頁(yè) > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀]摘要:在SoC開(kāi)發(fā)過(guò)程中,基于FPGA的原型驗(yàn)證是一種有效的驗(yàn)證方法,它不僅能加快SoC的開(kāi)發(fā),降低SoC應(yīng)用系統(tǒng)的開(kāi)發(fā)成本,而且提高了流片的成功率。文章主要描述了基于FPGA的SoC原型驗(yàn)證的設(shè)計(jì)與實(shí)現(xiàn),針對(duì)FPGA基驗(yàn)證

摘要:在SoC開(kāi)發(fā)過(guò)程中,基于FPGA的原型驗(yàn)證是一種有效的驗(yàn)證方法,它不僅能加快SoC的開(kāi)發(fā),降低SoC應(yīng)用系統(tǒng)的開(kāi)發(fā)成本,而且提高了流片的成功率。文章主要描述了基于FPGA的SoC原型驗(yàn)證的設(shè)計(jì)與實(shí)現(xiàn),針對(duì)FPGA基驗(yàn)證中存在的問(wèn)題進(jìn)行了分析并提出了解決方案。
關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列;系統(tǒng)級(jí)芯片;原型驗(yàn)證;驗(yàn)證平臺(tái)

0 引言
    隨著SoC設(shè)計(jì)規(guī)模的與日俱增,其功能日趨復(fù)雜,芯片的驗(yàn)證階段占據(jù)了整個(gè)芯片開(kāi)發(fā)的大部分時(shí)間。為了縮短驗(yàn)證時(shí)間,在傳統(tǒng)的仿真驗(yàn)證的基礎(chǔ)上涌現(xiàn)了許多新的驗(yàn)證手段,如SDV(Software Driven verification)、BFM(Bus Function Model)等,以及基于FPGA的原型驗(yàn)證技術(shù)。
    因FPGA工藝及技術(shù)的發(fā)展,其速度、容量和密度都大大增加,功耗和成本在不斷的降低,使得基于FPGA的原型驗(yàn)證得到廣泛的應(yīng)用?;贔PGA的原型驗(yàn)證可以比軟件仿真速度高出4~6個(gè)數(shù)量級(jí),而且還可以提高流片成功率,并為軟件開(kāi)發(fā)提供了硬件平臺(tái),加速了軟件的開(kāi)發(fā)速度。
    本文主要論述了FPGA基原型驗(yàn)證的實(shí)現(xiàn)方法,并且針對(duì)ARM1136為內(nèi)核的SoC,如何快速而有效地搭建一個(gè)原型驗(yàn)證平臺(tái)做了詳細(xì)的論述,最后還以UART為例來(lái)說(shuō)明一種簡(jiǎn)單、可重用性好、靈活性強(qiáng)的測(cè)試程序架構(gòu)。

1 基于ARM1136的SoC設(shè)計(jì)
    本文驗(yàn)證的SoC芯片是定位于手持視頻播放設(shè)備、衛(wèi)星導(dǎo)航產(chǎn)品的高性能應(yīng)用處理器,采用了ARM1136作為內(nèi)核,ARM11在提供超高性能的同時(shí),還能保證功耗、面積的有效性。
    同時(shí)在這個(gè)架構(gòu)中還采用了ARM公司的AMBA(Advanced Microcontroller Bus Architecture)總線,它是一組針對(duì)基于ARM核的片上系統(tǒng)之間通信而設(shè)計(jì)的標(biāo)準(zhǔn)協(xié)議。在設(shè)計(jì)中,對(duì)于一些處理數(shù)據(jù)和通訊速度要求較高的設(shè)備掛在AHB總線上,而那些對(duì)總線性能要求不高的設(shè)備掛在APB總線上。
    為了能夠提高一些設(shè)備間的數(shù)據(jù)傳輸速度,該設(shè)計(jì)加入了DMA,其支持存儲(chǔ)器到存儲(chǔ)器、存儲(chǔ)器到外設(shè)、外設(shè)到存儲(chǔ)的傳輸。
    基于ARM11設(shè)計(jì)的SoC系統(tǒng)構(gòu)架如圖1所示,這個(gè)系統(tǒng)還包括了USB控制器、LCD控制器、圖像處理單元GPU、視頻處理單元VPU、GPS、I2S、通用異步串口UART、同步串口SPI、TIMER、PWM、實(shí)時(shí)時(shí)鐘(RTC)、I2C總線和功耗管理單元(PMU)等。


   
2 FPGA原型驗(yàn)證平臺(tái)的快速搭建
    FPGA的發(fā)展為SoC的原型驗(yàn)證提供了巨大的發(fā)揮空間,面對(duì)復(fù)雜的SoC系統(tǒng),傳統(tǒng)的一些驗(yàn)證方法和單一的驗(yàn)證技術(shù)已經(jīng)不能滿足設(shè)計(jì)的要求。本文所設(shè)計(jì)的平臺(tái)不僅能加快開(kāi)發(fā)速度,提高流片成功率,而且還具有低錯(cuò)誤率、快速和簡(jiǎn)易的特點(diǎn),因此特別適合用于RTL代碼更改頻繁的設(shè)計(jì)中。
2.1 FPGA原型驗(yàn)證平臺(tái)的硬件環(huán)境設(shè)計(jì)
    FPGA原型驗(yàn)證平臺(tái)的硬件設(shè)計(jì)應(yīng)該考慮FPGA的邏緝資源、應(yīng)用資源、擴(kuò)展能力、PCB信號(hào)質(zhì)量、調(diào)試難度、組態(tài)和成本等方面的因素。本原型系統(tǒng)設(shè)計(jì)的FPGA開(kāi)發(fā)板采用的是Terasic公司的DE3開(kāi)發(fā)板,其FPGA芯片是StratixIII EP3SL340,擴(kuò)展板是根據(jù)SoC整體驗(yàn)證方案而設(shè)計(jì)的PCB板。FPGA原型驗(yàn)證平臺(tái)的硬件架構(gòu)如圖2所示,為了使FPGA的調(diào)試性能增強(qiáng),該平臺(tái)加入了ICE在線調(diào)試器,它可以讓驗(yàn)證人員和軟件開(kāi)發(fā)人員觀察到ARM內(nèi)核和設(shè)計(jì)中各個(gè)寄存器的狀態(tài)信息,并且可以進(jìn)行單步運(yùn)行、在線調(diào)試等。


2.2 FPGA原型驗(yàn)證平臺(tái)的軟件環(huán)境設(shè)計(jì)
    SoC芯片采用的是ASIC工藝流程,ASIC和FPGA在實(shí)現(xiàn)結(jié)構(gòu)上是不同的,AISC通常使用綜合工具將RTL級(jí)代碼映射到芯片制造廠提供的標(biāo)準(zhǔn)單元上。這些標(biāo)準(zhǔn)單元包括完成邏輯功能的與非門、非門、或非門等基本門單元和完成存儲(chǔ)功能的各類觸發(fā)器、鎖存器,以及其它的宏單元。而FPGA器件為了實(shí)現(xiàn)可編程功能,通常使用查找表結(jié)構(gòu)實(shí)現(xiàn)電路的邏輯功能。本文原型設(shè)計(jì)流程如圖3所示,在圖示中僅是將部分模塊列出,如PMU和GPIO。


2.2.1 設(shè)計(jì)代碼的轉(zhuǎn)換
    雖然FPGA和ASIC所用資源和實(shí)現(xiàn)方式不同,但在進(jìn)行原型設(shè)計(jì)中需要遵循的一個(gè)原則就是“尊重原設(shè)計(jì)”。在FPGA現(xiàn)有資源情況下實(shí)現(xiàn)SoC時(shí),盡可能地少改動(dòng)原SoC設(shè)計(jì),在此基礎(chǔ)上需要對(duì)原設(shè)計(jì)做如下轉(zhuǎn)換:
    (1)存儲(chǔ)模塊。存儲(chǔ)單元是必須進(jìn)行代碼轉(zhuǎn)換的,ASIC中的存儲(chǔ)單元通常用代工廠所提供的Memory Compiler來(lái)定制。如果直接將ASIC代碼中的存儲(chǔ)單元作為FPGA的輸入,通常綜合器是綜合不出來(lái)的,即使能綜合出來(lái),也要花費(fèi)很長(zhǎng)時(shí)間,并且資源消耗多、性能不好。而FPGA廠商一般提供經(jīng)過(guò)驗(yàn)證并優(yōu)化的存儲(chǔ)單元,因此存儲(chǔ)單元要進(jìn)行代碼轉(zhuǎn)換。在設(shè)計(jì)里用FPGA的RAM宏單元來(lái)替換ESRAM,SoC芯片里面的DDR PHY是模擬的模塊,此要替換成Altera公司的PHY的IP核。
    (2)時(shí)鐘和門控。數(shù)字電路中,時(shí)鐘是整個(gè)電路最重要、最特殊的信號(hào)。在ASIC中,用布局布線工具來(lái)放置時(shí)鐘樹(shù),利用代工廠提供的PLL進(jìn)行時(shí)鐘設(shè)計(jì)。而FPGA中通常已經(jīng)配置一定數(shù)量的PLL宏單元,并有針對(duì)時(shí)鐘優(yōu)化的全局時(shí)鐘網(wǎng)絡(luò),一般是經(jīng)過(guò)FPGA的特定全局時(shí)鐘管腳進(jìn)入FPGA內(nèi)部,后經(jīng)過(guò)全局時(shí)鐘BUF適配到全局時(shí)鐘網(wǎng)絡(luò),這樣的時(shí)鐘網(wǎng)絡(luò)可以保證相同的時(shí)鐘沿到達(dá)芯片內(nèi)部每一個(gè)觸發(fā)器的延遲時(shí)間差異可以忽略不計(jì),因此時(shí)鐘單元需要采用FPGA的PLL宏單元和專門的時(shí)鐘布線資源來(lái)替換。
    為了減少功耗,SoC設(shè)計(jì)中使用了門控時(shí)鐘(clockgating),如圖4所示,對(duì)于FPGA來(lái)說(shuō)這種門控時(shí)鐘容易產(chǎn)生毛刺,導(dǎo)致數(shù)據(jù)不正確,所以在FPGA設(shè)計(jì)中要使用時(shí)鐘使能寄存器代替門控時(shí)鐘。


2.2.2 設(shè)計(jì)綜合
    綜合是將較高級(jí)抽象層次的描述轉(zhuǎn)換成較低層次描述,在這里就是把HDL程序轉(zhuǎn)化成標(biāo)準(zhǔn)的門級(jí)結(jié)構(gòu)網(wǎng)表。本設(shè)計(jì)采用的EDA工具是Sy-nopsys公司的Synplify,將SoC的各個(gè)模塊分別進(jìn)行綜合,綜合時(shí)要加約束文件和Altera公司的相應(yīng)器件的庫(kù)文件,產(chǎn)生一個(gè)FPGA網(wǎng)表文件。
2.2.3 等價(jià)性檢查
    形式驗(yàn)證(Formal Verification)主要用來(lái)在覆蓋所有可能輸入情況下,檢查是否與給定的規(guī)范一致。等價(jià)性檢查(equivalence check-ing)是形式驗(yàn)證中的一部分,它主要是檢查兩個(gè)門級(jí)網(wǎng)表(gate-level netlisf)之間是否一致,保證網(wǎng)表處理后不會(huì)改變電路的功能,或者檢查RTL和門級(jí)網(wǎng)表之間是否一致,保證網(wǎng)表能正確地實(shí)現(xiàn)RTL代碼所描述的功能,或者檢查RTL間是否一致,保證兩種RTL描述邏輯一致。這種方法主要是用來(lái)尋找實(shí)現(xiàn)(Implementation Design)中的缺陷,而不是設(shè)計(jì)中的缺陷。由于芯片開(kāi)發(fā)中,設(shè)計(jì)代碼將不斷的更改,都需要
更新FPGA的鏡像文件,這樣在頻繁的鏡像制作過(guò)程中,可能會(huì)因?yàn)榄h(huán)境和設(shè)計(jì)的更改引出許多實(shí)現(xiàn)過(guò)程中的錯(cuò)誤,而本文為了減少這些錯(cuò)誤,采用的Synopsys公司的Formality工具,主要用于檢查網(wǎng)標(biāo)和RTL間是否一致,把RTL設(shè)計(jì)作為Reference Design,而把網(wǎng)標(biāo)作為Imple-mentation Design,在進(jìn)行等價(jià)性檢查時(shí)要加入Altera器件綜合過(guò)程中需要的相關(guān)庫(kù)文件。
2.2.4 設(shè)計(jì)整合和布局布線
    把多個(gè)設(shè)計(jì)文件轉(zhuǎn)換合并到一個(gè)設(shè)計(jì)庫(kù)文件中,并把整合后的設(shè)計(jì)輸入到Altera公司的QuartuslI工具,將綜合過(guò)的網(wǎng)表中的邏輯門映射到FPGA的內(nèi)部資源中,如ALUT等。
    布局是指從映射取出定義的邏輯和輸入輸出塊,并把它們分配到FPGA內(nèi)部的物理位置,布線是指利用自動(dòng)布線軟件使用布線資源選擇路徑試著完成所有的邏輯連接。
2.2.5 時(shí)序分析
    在設(shè)計(jì)實(shí)現(xiàn)過(guò)程中,在映射后需要對(duì)一個(gè)設(shè)計(jì)的實(shí)際功能塊的延時(shí)和估計(jì)的布線延時(shí)進(jìn)行時(shí)序分析。而在布局布線后,也要對(duì)實(shí)際布局布線的功能塊延時(shí)和實(shí)際布線延時(shí)進(jìn)行時(shí)序分析。時(shí)序分析不僅可以檢查出我們代碼設(shè)計(jì)中的時(shí)序問(wèn)題,還可以檢查出由于布局布線產(chǎn)生的時(shí)序問(wèn)題。在本設(shè)計(jì)中用Altera公司的TimeQuest來(lái)進(jìn)行時(shí)序分析,通過(guò)對(duì)原型設(shè)計(jì)增加時(shí)序約束,提高了工作主頻和減少了關(guān)鍵路徑的延時(shí)。在設(shè)計(jì)中經(jīng)常存在時(shí)序違約的情況,這時(shí)需要查看違約的關(guān)鍵路徑,然后查找原因,進(jìn)行修改后再進(jìn)行時(shí)序分析,重復(fù)整個(gè)過(guò)程直到滿足要求。
2.2.6 鏡像文件的生成和下載配置
    QuartusII經(jīng)過(guò)整合、布局布線等一系列操作后,最終會(huì)生成一個(gè)配置FPGA的位流文件(.sof洛式),然后利用QuartusII的Programmer工具,通過(guò)USB Blaster下載到FPGA,此時(shí)FPGA實(shí)現(xiàn)了原SoC設(shè)計(jì)的功能,原型驗(yàn)證環(huán)境搭建完成。

3 FPGA原型驗(yàn)證測(cè)試激勵(lì)的設(shè)計(jì)
    測(cè)試程序在FPGA基原型驗(yàn)證中起至關(guān)重要的作用,現(xiàn)在的SoC設(shè)計(jì)很多都采用IP復(fù)用的方式,本文所設(shè)計(jì)出的測(cè)試程序有可重用性好、功能覆蓋率高和調(diào)試簡(jiǎn)易等特點(diǎn)。
    測(cè)試程序的基本框架如圖5所示,具體模塊的測(cè)試程序只需要根據(jù)框架所提供的接口進(jìn)行編寫相應(yīng)的測(cè)試程序即可,代碼主要由以下四部分組成:
    (1)系統(tǒng)啟動(dòng)部分。主要包含系統(tǒng)的異常向量表和系統(tǒng)啟動(dòng)后設(shè)置ARM內(nèi)核的配置程序,如各種模式下的堆棧設(shè)置、開(kāi)啟或關(guān)閉FIR和IRQ、設(shè)定中斷向量表等,在Boot_gfd.s中提供了跳到測(cè)試程序的接口。
    (2)模塊測(cè)試部分。在此部分根據(jù)各個(gè)模塊的功能,編寫相應(yīng)的測(cè)試函數(shù),系統(tǒng)在執(zhí)行時(shí)會(huì)調(diào)用這些函數(shù),完成我們各個(gè)模塊的功能測(cè)試。
    (3)頭文件部分。為了方便代碼的編寫和理解,在tyoedef.h文件中對(duì)系統(tǒng)的數(shù)據(jù)類型做了重新定義并包含了部分公用函數(shù)的宏定義。一個(gè)SoC系統(tǒng)中擁有大量的寄存器,在本設(shè)計(jì)中用Register.h文件來(lái)存放這些寄存器地址的宏定義。
    (4)Scatter文件部分。scatter文件是用來(lái)描述刪連接器生成映像文件時(shí)需要的地址映射信息和加載域信息。


    下面以UART模塊為例,在此框架下根據(jù)其接口編寫相應(yīng)的測(cè)試程序。
    驗(yàn)證計(jì)劃:通過(guò)待驗(yàn)UART與PC進(jìn)行通信來(lái)驗(yàn)證其功能是否正確,主要驗(yàn)證的功能點(diǎn)有:1)寄存器讀寫;2)三種工作模式普通模式、自流控模式、LoopBack模式;3)奇偶校驗(yàn);4)波特率;5)FIFO觸發(fā)級(jí)。
    測(cè)試程序:根據(jù)上邊的功能點(diǎn)可以劃分兩個(gè)測(cè)試的基本的函數(shù),一個(gè)是寄存器讀寫的測(cè)試函數(shù)UART_RWTst(),還有一個(gè)就是UART工作配置函數(shù)UART_Config(),這個(gè)函數(shù)提供一個(gè)接口,通過(guò)這個(gè)接口可以配置UART的工作模式、奇偶校驗(yàn)方式、波特率大小、FIFO觸發(fā)級(jí)。在更高層的測(cè)試應(yīng)用程序中調(diào)用配置程序,變化配置參數(shù),使其與PC進(jìn)行收發(fā)數(shù)據(jù),然后查看或比對(duì)數(shù)據(jù),判別其功能是否正確。測(cè)試程序文件結(jié)構(gòu)如圖5所示。
    驗(yàn)證結(jié)果:當(dāng)待驗(yàn)UART向PC發(fā)送數(shù)據(jù)時(shí),在PC的超級(jí)終端會(huì)顯示這些數(shù)據(jù),UART功能驗(yàn)證結(jié)果可通過(guò)觀測(cè)或數(shù)據(jù)比對(duì)來(lái)判斷,如圖6所示。


   
4 結(jié)論
    同樣的測(cè)試激勵(lì)程序在此原型平臺(tái)的執(zhí)行速度要比SDV(Software driven verification)平臺(tái)快4~6個(gè)數(shù)量級(jí)。本驗(yàn)證平臺(tái)的搭建過(guò)程中對(duì)其進(jìn)行了形式驗(yàn)證和時(shí)序分析,大大減少了在原型設(shè)計(jì)中由于FPGA實(shí)現(xiàn)而導(dǎo)致的錯(cuò)誤。本平臺(tái)的軟件測(cè)試程序具有接口簡(jiǎn)單、易調(diào)試、可重用性好等特點(diǎn),筆者在此原型平臺(tái)下完成了部分模塊的驗(yàn)證,有效地提高了驗(yàn)證效率,縮短了項(xiàng)目的開(kāi)發(fā)周期,加大了流片成功率。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉