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