基于FPGA的SoC原型驗(yàn)證的設(shè)計(jì)與實(shí)現(xiàn)
2.1 FPGA原型驗(yàn)證平臺的硬件環(huán)境設(shè)計(jì)
FPGA原型驗(yàn)證平臺的硬件設(shè)計(jì)應(yīng)該考慮FPGA的邏緝資源、應(yīng)用資源、擴(kuò)展能力、PCB信號質(zhì)量、調(diào)試難度、組態(tài)和成本等方面的因素。本原型系統(tǒng)設(shè)計(jì)的FPGA開發(fā)板采用的是Terasic公司的DE3開發(fā)板,其FPGA芯片是StratixIII EP3SL340,擴(kuò)展板是根據(jù)SoC整體驗(yàn)證方案而設(shè)計(jì)的PCB板。FPGA原型驗(yàn)證平臺的硬件架構(gòu)如圖2所示,為了使FPGA的調(diào)試性能增強(qiáng),該平臺加入了ICE在線調(diào)試器,它可以讓驗(yàn)證人員和軟件開發(fā)人員觀察到ARM內(nèi)核和設(shè)計(jì)中各個(gè)寄存器的狀態(tài)信息,并且可以進(jìn)行單步運(yùn)行、在線調(diào)試等。本文引用地址:http://www.ex-cimer.com/article/191152.htm
2.2 FPGA原型驗(yàn)證平臺的軟件環(huán)境設(shè)計(jì)
SoC芯片采用的是ASIC工藝流程,ASIC和FPGA在實(shí)現(xiàn)結(jié)構(gòu)上是不同的,AISC通常使用綜合工具將RTL級代碼映射到芯片制造廠提供的標(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ǔ)上需要對原設(shè)計(jì)做如下轉(zhuǎn)換:
(1)存儲(chǔ)模塊。存儲(chǔ)單元是必須進(jìn)行代碼轉(zhuǎn)換的,ASIC中的存儲(chǔ)單元通常用代工廠所提供的Memory Compiler來定制。如果直接將ASIC代碼中的存儲(chǔ)單元作為FPGA的輸入,通常綜合器是綜合不出來的,即使能綜合出來,也要花費(fèi)很長時(shí)間,并且資源消耗多、性能不好。而FPGA廠商一般提供經(jīng)過驗(yàn)證并優(yōu)化的存儲(chǔ)單元,因此存儲(chǔ)單元要進(jìn)行代碼轉(zhuǎn)換。在設(shè)計(jì)里用FPGA的RAM宏單元來替換ESRAM,SoC芯片里面的DDR PHY是模擬的模塊,此要替換成Altera公司的PHY的IP核。
(2)時(shí)鐘和門控。數(shù)字電路中,時(shí)鐘是整個(gè)電路最重要、最特殊的信號。在ASIC中,用布局布線工具來放置時(shí)鐘樹,利用代工廠提供的PLL進(jìn)行時(shí)鐘設(shè)計(jì)。而FPGA中通常已經(jīng)配置一定數(shù)量的PLL宏單元,并有針對時(shí)鐘優(yōu)化的全局時(shí)鐘網(wǎng)絡(luò),一般是經(jīng)過FPGA的特定全局時(shí)鐘管腳進(jìn)入FPGA內(nèi)部,后經(jīng)過全局時(shí)鐘BUF適配到全局時(shí)鐘網(wǎng)絡(luò),這樣的時(shí)鐘網(wǎng)絡(luò)可以保證相同的時(shí)鐘沿到達(dá)芯片內(nèi)部每一個(gè)觸發(fā)器的延遲時(shí)間差異可以忽略不計(jì),因此時(shí)鐘單元需要采用FPGA的PLL宏單元和專門的時(shí)鐘布線資源來替換。
評論