由于ASIC的設(shè)計(jì)功能復(fù)雜,設(shè)計(jì)時(shí)需要有各種IP的使用。在設(shè)計(jì)IP或使用IP時(shí),重要的考慮因素是基于IO需求以及設(shè)計(jì)的功能和時(shí)間要求。在這種情況下,了解各種可用的IP對(duì)設(shè)計(jì)團(tuán)隊(duì)是很有幫助的。本文就針對(duì)IP設(shè)計(jì)中注意事項(xiàng)、有用策略及FPGA原型設(shè)計(jì)等進(jìn)行簡(jiǎn)要說(shuō)明。
IP設(shè)計(jì)與開發(fā)
假如考慮SoC設(shè)計(jì)由處理器、視頻編解碼器、DDR控制器等功能模塊組成。對(duì)于快周期的設(shè)計(jì)一般行業(yè)慣例是有IP可以使用??紤]到DDR內(nèi)存控制器IP已經(jīng)在市場(chǎng)上上市,所以在設(shè)計(jì)過(guò)程中,我們不是從頭開始設(shè)計(jì)內(nèi)存控制器,而是根據(jù)行業(yè)慣例來(lái)設(shè)計(jì)可用的功能和經(jīng)過(guò)時(shí)間驗(yàn)證的IP。
IP的提供形式如下,原型團(tuán)隊(duì)需要在不同階段的設(shè)計(jì)周期中使用IP。
RTL IP源代碼:已獲取IP源代碼的開源版本或license版本。使用VHDL或Verilog的源代碼是可用的。
軟IP:這種類型的IP核有時(shí)是加密版本,它們需要在設(shè)計(jì)和重用期間進(jìn)行一些處理。
網(wǎng)絡(luò)列表形式的IP:它們以SoC組件的預(yù)合成網(wǎng)絡(luò)列表或Synopsys GTECH的形式可用。
物理IP:它們也被稱為硬IP,它們是由晶圓代工廠預(yù)先布局的。
加密的源代碼:RTL使用加密的密鑰進(jìn)行保護(hù),必須解密才能獲得RTL源代碼。
IP選擇注意事項(xiàng)
以下是我們?cè)谶x擇IP時(shí)要考慮的要點(diǎn)。
IP支持的功能需求及特性。
適用于IO等高速接口的IP。
IP可用的形式。即IP調(diào)整是否有可能提高性能。
IP擁有什么樣的配置環(huán)境。
IP中有哪些調(diào)試和測(cè)試特性。
IP供應(yīng)商提供了什么樣的文檔?
IP有哪些電氣特性?
可用IP的環(huán)境是什么?
IP的不同時(shí)鐘和功率域。
IP的時(shí)序特性和IO延遲是什么?
IP設(shè)計(jì)中的有用策略
以下是一些在IP設(shè)計(jì)過(guò)程中可以使用的策略。雖然IP設(shè)計(jì)和驗(yàn)證是一個(gè)非常耗時(shí)的階段,但如果設(shè)計(jì)需要新的功能實(shí)現(xiàn),則必須進(jìn)行IP設(shè)計(jì)和開發(fā)。例如,市場(chǎng)上出現(xiàn)了新的標(biāo)準(zhǔn),在這種情況下,設(shè)計(jì)公司可能會(huì)進(jìn)行IP設(shè)計(jì)和開發(fā)。
1.IP設(shè)計(jì)與復(fù)用
大多數(shù)SoC設(shè)計(jì)團(tuán)隊(duì)總是使用第三方功能和時(shí)間驗(yàn)證的IP。在設(shè)計(jì)復(fù)雜的專用集成電路時(shí),可以實(shí)現(xiàn)IP的復(fù)用。在設(shè)計(jì)和原型階段可以使用硬IP或軟IP,復(fù)用有助于實(shí)現(xiàn)。
專注于設(shè)計(jì)額外的支持特性,以便加快開發(fā)周期。
縮短上市時(shí)間。
設(shè)計(jì)團(tuán)隊(duì)將能夠花更多的時(shí)間進(jìn)行低功率和高速的設(shè)計(jì)。
設(shè)計(jì)團(tuán)隊(duì)將能夠發(fā)揮使用多個(gè)時(shí)鐘域和多個(gè)功率域的設(shè)計(jì)。
物理設(shè)計(jì)方面的挑戰(zhàn),如修正時(shí)間沖突,需要在物理設(shè)計(jì)過(guò)程中投入更多時(shí)間。因此,如果使用IP,時(shí)間會(huì)大大減少。
2.軟硬件協(xié)同設(shè)計(jì)
這也被稱為設(shè)計(jì)分區(qū),設(shè)計(jì)必須分為硬件和軟件兩部分。重要的考慮點(diǎn)是在劃分設(shè)計(jì)時(shí);在設(shè)計(jì)中需要如何協(xié)同并行執(zhí)行?在目前的場(chǎng)景中,由于SoC是復(fù)雜的,可以使用設(shè)計(jì)中的并行性來(lái)實(shí)現(xiàn)功能,這反過(guò)來(lái)可以提高設(shè)計(jì)性能。在設(shè)計(jì)劃分階段,需要對(duì)復(fù)雜的計(jì)算任務(wù)或算法進(jìn)行劃分。大多數(shù)復(fù)雜的計(jì)算塊需要使用硬件實(shí)現(xiàn)。設(shè)計(jì)劃分是定義需要使用軟件實(shí)現(xiàn)哪些內(nèi)容的重要和決定性階段。以及什么需要使用硬件來(lái)實(shí)現(xiàn)。
例如,視頻解碼器的設(shè)計(jì)需要支持多幀。該視頻解碼器可以有效地利用硬件實(shí)現(xiàn),甚至可以結(jié)合解碼器的并行性。對(duì)于需要FFT、FIR、IIR等濾波器或高速乘法器的高計(jì)算DSP功能塊,可以利用硬件實(shí)現(xiàn)。
讓我們考慮協(xié)議實(shí)現(xiàn)的場(chǎng)景,大多數(shù)協(xié)議如以太網(wǎng)、USB和AHB可以通過(guò)硬件軟件協(xié)同設(shè)計(jì)有效地實(shí)現(xiàn)。這些算法應(yīng)該經(jīng)過(guò)功能性時(shí)序驗(yàn)證。這在克服和減少設(shè)計(jì)中的延遲方面具有優(yōu)勢(shì)。對(duì)于大多數(shù)協(xié)議實(shí)現(xiàn),必須考慮。
硬件軟件設(shè)計(jì)的主要挑戰(zhàn)是吞吐量和功率需求的分析。例如,考慮SoC設(shè)計(jì)中的場(chǎng)景,固定長(zhǎng)度的數(shù)據(jù)包需要在固定的時(shí)間間隔內(nèi)傳輸。如果設(shè)計(jì)是通過(guò)使用硬件實(shí)現(xiàn)的,那么就需要注意硬件和軟件之間應(yīng)該有最少的交互。為了盡量減少硬件和軟件之間的交互,可以使用FIFO緩沖區(qū)和計(jì)時(shí)器來(lái)使用該策略。
3.接口細(xì)節(jié)與時(shí)序要求
對(duì)于每個(gè)IP,都必須有功能性和經(jīng)過(guò)時(shí)間驗(yàn)證的總線接口。在大多數(shù)應(yīng)用中,都使用了高級(jí)高速總線協(xié)議。這些協(xié)議需要驗(yàn)證設(shè)計(jì)的功能和時(shí)間正確性。為了實(shí)現(xiàn)數(shù)據(jù)的高速傳輸,IO接口需要有針對(duì)性。在SoC設(shè)計(jì)中有許多不同類型的IO接口。這些IO可以是通用IO、差分IO和高速IO。
Reset clock要求
時(shí)鐘分配網(wǎng)絡(luò)用于向SoC中所有寄存器提供統(tǒng)一的時(shí)鐘偏差。時(shí)鐘策略在整體設(shè)計(jì)性能中起著至關(guān)重要的作用。采用時(shí)鐘樹綜合的方法,利用合適的時(shí)鐘樹來(lái)實(shí)現(xiàn)均勻的時(shí)鐘傾斜。使用單時(shí)鐘結(jié)構(gòu)還是多時(shí)鐘域結(jié)構(gòu)需要在體系結(jié)構(gòu)層面進(jìn)行決定。同步或異步邏輯的使用也需要在體系結(jié)構(gòu)級(jí)別定義。Reset可以是異步的,也可以是同步的,需要在SoC的架構(gòu)階段定義。
4.EDA工具與license要求
為SoC的FPGA原型設(shè)計(jì)和ASIC移植選擇必要的EDA工具和許可證。大多數(shù)行業(yè)標(biāo)準(zhǔn)工具是:
Simulator:Questasim, VCS, ModelSim
Synthesis:Synpilfy pro and Synopsys DC
STA:prime time (Synopsys PT)
5.開發(fā)原型平臺(tái)
對(duì)于SoC和IP驗(yàn)證,使用必要的原型和開發(fā)平臺(tái)。原型平臺(tái)可以包括使用多個(gè)FPGA板來(lái)實(shí)現(xiàn)和驗(yàn)證SoC,所需的IP,所需的DSP功能,所需的內(nèi)存和所需的通用處理器。所需原型板的可用性與必要的接口,以實(shí)現(xiàn)SoC和調(diào)試或測(cè)試設(shè)置的使用。
大多數(shù)SoC都是通過(guò)使用由可用EDA工具和邏輯分析儀組成的測(cè)試設(shè)置進(jìn)行測(cè)試的。在SoC設(shè)計(jì)周期的開始,架構(gòu)師分析了設(shè)計(jì)和功能需求,并根據(jù)速度和門數(shù)估計(jì)的需求設(shè)計(jì)了原型平臺(tái)。這里最重要的因素是上市時(shí)間、預(yù)算分配和設(shè)計(jì)時(shí)間需求。如果DSP功能在FPGA中可用,那么在FPGA上實(shí)現(xiàn)DSP功能是明智的。
6.開發(fā)測(cè)試平臺(tái)
對(duì)于復(fù)雜的門計(jì)數(shù)SoC,需要用所需的測(cè)試向量來(lái)開發(fā)必要的測(cè)試用例。特性可以使用頂級(jí)功能規(guī)范來(lái)提取,并且所需的測(cè)試用例可以在測(cè)試計(jì)劃文檔中記錄下來(lái)。開發(fā)的測(cè)試向量可以對(duì)驗(yàn)證的質(zhì)量產(chǎn)生顯著的影響,以實(shí)現(xiàn)覆蓋目標(biāo)。測(cè)試用例可以被記錄為基本的、次要的和隨機(jī)的測(cè)試用例。帶有所需覆蓋率目標(biāo)的受限隨機(jī)驗(yàn)證可以通過(guò)使用所需的必要測(cè)試用例來(lái)實(shí)現(xiàn)。
7.開發(fā)驗(yàn)證平臺(tái)
使用驗(yàn)證語(yǔ)言,如Verilog和高級(jí)驗(yàn)證語(yǔ)言,如System Verilog或System C;用于早期檢測(cè)bug并實(shí)現(xiàn)覆蓋目標(biāo)。在大門數(shù)SoC設(shè)計(jì)中,通過(guò)捕獲設(shè)計(jì)早期的bug來(lái)提高整體設(shè)計(jì)質(zhì)量的驗(yàn)證計(jì)劃一直是至關(guān)重要的??傮w目標(biāo)是在更少的時(shí)間內(nèi)實(shí)現(xiàn)所需和設(shè)計(jì)的功能。需要構(gòu)建驗(yàn)證環(huán)境來(lái)實(shí)現(xiàn)覆蓋目標(biāo)。驗(yàn)證體系結(jié)構(gòu)可以包含必要的總線功能模型和驅(qū)動(dòng)程序、監(jiān)視器和計(jì)分板,用于健壯地檢查設(shè)計(jì)規(guī)范。環(huán)境的總體驗(yàn)證計(jì)劃和創(chuàng)建的目標(biāo)是實(shí)現(xiàn)自動(dòng)化,以在更少的時(shí)間持續(xù)時(shí)間內(nèi)最小化完成功能檢查的時(shí)間要求。
使用多個(gè)FPGA進(jìn)行原型設(shè)計(jì)
以SoC設(shè)計(jì)為例,它具有通用計(jì)算的處理器、DDR3內(nèi)存控制器和視頻編碼器和解碼器IP。如果設(shè)計(jì)需要200,000個(gè)邏輯門,那么這個(gè)設(shè)計(jì)就無(wú)法適應(yīng)Artix-7的單FPGA。在這種情況下,我們需要使用設(shè)計(jì)分區(qū)來(lái)針對(duì)使用多個(gè)FPGA的設(shè)計(jì)。對(duì)于大多數(shù)SoC,我們需要使用多個(gè)FPGA架構(gòu)來(lái)針對(duì)原型。FPGA可以使用環(huán)型或星型拓?fù)溥M(jìn)行連接。
以下是一些重要的建議,使用多個(gè)FPGA進(jìn)行原型設(shè)計(jì)。
更好地理解設(shè)計(jì):嘗試?yán)斫庠O(shè)計(jì)的模擬和數(shù)字功能,并將設(shè)計(jì)劃分為模擬和數(shù)字設(shè)計(jì)領(lǐng)域。使用分區(qū)工具可以得到更好的結(jié)果。自動(dòng)劃分工具可以用于跨連續(xù)邊界更好地劃分設(shè)計(jì)。
模擬功能和附加接口:FPGA是實(shí)現(xiàn)數(shù)字設(shè)計(jì)的理想選擇,但實(shí)際設(shè)計(jì)中既有模擬模塊,也有數(shù)字模塊。所以盡量選擇額外的子板卡來(lái)連接ADC和DAC。
資源的有效使用:在執(zhí)行分區(qū)時(shí)嘗試采用策略,以允許EDA工具擁有最多70%的FPGA資源。這將允許原型團(tuán)隊(duì)在啟動(dòng)階段添加BIST和調(diào)試邏輯。
對(duì)IO和引腳復(fù)用的要求:IO的速度是決定原型整體性能的重要因素。對(duì)于多個(gè)FPGA設(shè)計(jì),還需要部署其他多路復(fù)用策略。
時(shí)鐘策略:根據(jù)星型、環(huán)形拓?fù)浣Y(jié)構(gòu)的要求,有必要考慮多個(gè)FPGA設(shè)計(jì)的時(shí)鐘策略。在調(diào)試和測(cè)試階段需要考慮時(shí)鐘偏差和其他電路板延遲。
IO接口:在SOC架構(gòu)級(jí)別,應(yīng)該做出關(guān)于原型特性需求的決定。在使用單個(gè)或多個(gè)FPGA設(shè)計(jì)原型時(shí),考慮IO速度、IO電壓、帶寬、時(shí)鐘和復(fù)位網(wǎng)絡(luò)、外部接口總是更好的選擇!
FPGA連接性:原型團(tuán)隊(duì)需要考慮使用多個(gè)FPGA的原型的環(huán)形、星型或混合型連接性。
以下是其中的幾個(gè)要點(diǎn):
(a)? 環(huán)型連接
在這種類型的布置中,多個(gè)FPGA被連接起來(lái)形成環(huán)。
在這種連接類型中,它增加了整體路徑延遲。當(dāng)信號(hào)通過(guò)FPGA時(shí),等效原型邏輯可以類似于優(yōu)先級(jí)邏輯。與其他類型的單板相比,這種類型的連接速度較慢。
如果我們?cè)噲D將環(huán)形連接可視化,那么在高層次上,我們可以考慮使用這種類型的FPGA內(nèi)部連接的引腳連接。IO的浪費(fèi)不能局限在這種連通性上。FPGA處于下端;IO會(huì)被浪費(fèi)掉,而且對(duì)于電路板設(shè)計(jì)師和電路板布局團(tuán)隊(duì)來(lái)說(shuō),將這些IO連接到高阻抗?fàn)顟B(tài)是額外的開銷。
(b)星型連接
由于與另一個(gè)FPGA直接連接,這種類型的FPGA內(nèi)部連接比環(huán)形排列更快。為了獲得更好的原型性能,使用FPGA之間的高速互連,并將未使用的引腳配置為高阻抗?fàn)顟B(tài)。
(c)混合連接
在板卡的設(shè)計(jì)和布局中,我們可以使用環(huán)型連接和星型連接的混合。這種類型的連接可以具有中等的性能。
市場(chǎng)上供應(yīng)商提供的電路板有固定的連接,可能不適合在原型制作過(guò)程中,因?yàn)樗鼈儾环?a target="_blank">規(guī)格和要求。在這種情況下,根據(jù)設(shè)計(jì)的復(fù)雜性,最好選擇接口連接性,以獲得更好的原型性能。
審核編輯:劉清
評(píng)論
查看更多