版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章VHDL高級(jí)設(shè)計(jì)技術(shù)第一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-本章概要
本章首先介紹基于Xilinx芯片的HDL高級(jí)設(shè)計(jì)技術(shù)。在高級(jí)設(shè)計(jì)技術(shù)中主要對(duì)提高HDL性能的一些設(shè)計(jì)方法進(jìn)行了比較詳細(xì)的介紹,其中包括邏輯復(fù)制和復(fù)用技術(shù)、并行和流水技術(shù)、系統(tǒng)同步和異步單元、邏輯結(jié)構(gòu)的設(shè)計(jì)方法和模塊的劃分原則。本章也對(duì)IP核技術(shù)進(jìn)行了比較詳細(xì)的說明和介紹,其中包括IP核分類、IP核優(yōu)化、IP核生成和IP應(yīng)用技術(shù)。這部分雖然在本書中的篇幅不是很多,但是內(nèi)容非常重要,讀者在學(xué)習(xí)該部分內(nèi)容時(shí)要仔細(xì)的領(lǐng)會(huì)。第二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-VHDL代碼風(fēng)格
VHDL代碼風(fēng)格是指兩個(gè)方面的內(nèi)容:
一方面是VHDL語言描述規(guī)范,即在使用VHDL語言描述邏輯行為時(shí)必須遵守VHDL語言的詞法和句法規(guī)范,該描述風(fēng)格不依賴于EDA軟件工具和可編程邏輯器件PLD類型,僅僅是從VHDL語言出發(fā)的代碼風(fēng)格;另一方面則是VHDL語言對(duì)于一特定邏輯單元的描述,即用VHDL語言的哪一種描述風(fēng)格進(jìn)行邏輯行為描述,才能使電路描述得更準(zhǔn)確,布局布線后產(chǎn)生的電路設(shè)計(jì)最優(yōu),該描述風(fēng)格不僅需要關(guān)注EDA軟件在語法細(xì)節(jié)上的差異,還要緊密依賴于固有的硬件結(jié)構(gòu)。第三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-VHDL代碼風(fēng)格
從本質(zhì)上講,使用哪種描述風(fēng)格描述電路的邏輯行為,主要取決于兩個(gè)關(guān)鍵問題:
1、速度和面積問題;
2、功耗問題;第四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-VHDL代碼風(fēng)格
首先,先說明速度和面積問題。這里的“面積”主要是指設(shè)計(jì)所占用的FPGA邏輯資源數(shù)目,即所消耗的觸發(fā)器和查找表數(shù)目?!八俣取笔侵冈谛酒戏€(wěn)定運(yùn)行時(shí)所能夠達(dá)到的最高頻率。面積和速度這兩個(gè)指標(biāo)始終貫穿著PLD的設(shè)計(jì),是評(píng)價(jià)設(shè)計(jì)性能的最主要標(biāo)準(zhǔn)。
第五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-VHDL代碼風(fēng)格
面積和速度呈反比關(guān)系。如果要提高速度,就需要消耗更多的資源,即需要更大的面積;如果減少了面積,就會(huì)使系統(tǒng)的處理速度降低。所以在設(shè)計(jì)中不可能同時(shí)實(shí)現(xiàn)既顯著提高PLD工作頻率,又顯著減少所占用PLD的邏輯資源的數(shù)目。第六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-VHDL代碼風(fēng)格
在實(shí)際設(shè)計(jì)時(shí),需要在速度和面積之間進(jìn)行權(quán)衡,使得設(shè)計(jì)達(dá)到面積和速度的最佳結(jié)合點(diǎn)。本章介紹通過采用邏輯復(fù)制和復(fù)用技術(shù)、并行和流水線技術(shù)、同步和異步電路處理技術(shù)、邏輯結(jié)構(gòu)處理技術(shù)等方法,在速度和面積之間進(jìn)行權(quán)衡,達(dá)到最佳的性能和資源要求。第七頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-VHDL代碼風(fēng)格
其次,說明功耗問題。隨著PLD工作頻率的顯著提高,功耗成為一個(gè)引起EDA設(shè)計(jì)人員密切關(guān)注的問題。由于PLD工作頻率的提高,邏輯單元的切換頻率也相應(yīng)提高,相應(yīng)的會(huì)引起PLD功耗增大。這樣就存在著頻率和功耗之間的矛盾,因此必須在邏輯單元的切換速度和功耗之間進(jìn)行權(quán)衡,通過合理的設(shè)計(jì),減少邏輯單元不必要的切換,這樣可以在一定程度上降低功耗。
第八頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-扇出
扇出是指某一器件的輸出驅(qū)動(dòng)與之相連的后續(xù)器件的能力。眾所周知,一個(gè)器件的扇出數(shù)是有限制的。扇出數(shù)目越多,所要求的驅(qū)動(dòng)能力越高。在PLD芯片內(nèi),如果一個(gè)邏輯單元的扇出數(shù)過多的話,會(huì)降低其工作速度,并且會(huì)對(duì)布線造成困難。因此,在PLD邏輯資源允許的情況下,要盡量降低扇出數(shù)。第九頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)制
邏輯復(fù)制是通過增加面積而改善設(shè)計(jì)時(shí)序的優(yōu)化方法,經(jīng)常用于調(diào)整信號(hào)的扇出。如果信號(hào)具有高的扇出,則要添加緩存器來增強(qiáng)驅(qū)動(dòng)能力,但這會(huì)增大信號(hào)的時(shí)延。通過邏輯復(fù)制,使用多個(gè)相同的信號(hào)來分擔(dān)驅(qū)動(dòng)任務(wù)。這樣,每路信號(hào)的扇出就會(huì)變低,就不需要額外的緩沖器來增強(qiáng)驅(qū)動(dòng),即可減少信號(hào)的路徑延遲。
第十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)制
通過邏輯單元的復(fù)制,減少扇出數(shù),可以解決下面兩個(gè)方面的問題:減少網(wǎng)絡(luò)延遲;多個(gè)器件分布在不同的區(qū)域,這樣可以大大降低布線阻塞情況的發(fā)生。在使用增加器件減少扇出數(shù)目的時(shí)候,必須要注意的是,如果是異步單元的話,必須對(duì)該單元進(jìn)行同步處理。第十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)制DQfn1DQfn1DQfn1第十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)用技術(shù)
邏輯復(fù)用是指在完成相同的功能下,盡量減少所使用的邏輯單元的數(shù)目。這樣在不影響設(shè)計(jì)性能的情況下,可以降低資源的使用。下面通過一個(gè)共享加法器的例子來說明這個(gè)問題。第十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)用技術(shù)第十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)用技術(shù)第十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)用技術(shù)
如圖5.3所示的先加法后選擇的結(jié)構(gòu),在實(shí)現(xiàn)這樣一個(gè)功能時(shí)需要使用兩個(gè)加法器和一個(gè)選擇器.
對(duì)該結(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計(jì),如圖5.3所示,A1和C1加數(shù)通過一個(gè)選擇器送到加法器的一個(gè)輸入端,B1和D1被加數(shù)通過另一個(gè)選擇器送到加法器的另一個(gè)輸入端,然后進(jìn)行加法運(yùn)算,這樣設(shè)計(jì)可以節(jié)省一個(gè)加法器資源,在FPGA內(nèi)選擇器的資源遠(yuǎn)遠(yuǎn)多于加法器資源。第十六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯復(fù)用技術(shù)共享加法器資源的VHDL描述libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_unsigned.all;useIEEE.std_logic_arith.all;entityres_sharingisport(A1,B1,C1,D1:inSTD_LOGIC_VECTOR(7downto0);COND_1:inSTD_LOGIC;Z1:outSTD_LOGIC_VECTOR(7downto0));endres_sharing;architectureBEHAVofres_sharingisbeginP1:process(A1,B1,C1,D1,COND_1)beginif(COND_1=’1’)then
Z1<=A1+B1;
else
Z1<=C1+D1;endif;endprocess;--endP1endBEHAV;第十七頁,共103頁。
VHDL高級(jí)設(shè)計(jì)技術(shù)-并行處理技術(shù)
串行設(shè)計(jì)是最常見的一種設(shè)計(jì)。當(dāng)一個(gè)功能模塊對(duì)輸入的處理是分步驟進(jìn)行的,而且后一步驟只依賴于前一步驟的結(jié)果時(shí),功能模塊的設(shè)計(jì)就需要采用串行設(shè)計(jì)的思想。并行處理就是采用幾個(gè)處理流程同時(shí)處理到達(dá)的負(fù)載,提高處理的效率。并行處理要求這些處理任務(wù)之間是不相關(guān)的,彼此之間是不互相依賴的,如果存在相互依賴就很難用并行處理的方法。第十八頁,共103頁。
VHDL高級(jí)設(shè)計(jì)技術(shù)-并行處理技術(shù)模塊1模塊2模塊3模塊4模塊1模塊1模塊1模塊1第十九頁,共103頁。
VHDL高級(jí)設(shè)計(jì)技術(shù)-并行處理技術(shù)
下面以一個(gè)復(fù)雜的乘法運(yùn)算為例,說明并行處理技術(shù)的使用。首先給出該運(yùn)算的數(shù)學(xué)表達(dá)式,下圖給出了實(shí)現(xiàn)該功能的并行結(jié)構(gòu)(該結(jié)構(gòu)由XST綜合工具給出。通過使用多個(gè)乘法器,使得四個(gè)乘法運(yùn)算可以同時(shí)進(jìn)行,但是需要注意的,這種速度的提高是以面積為代價(jià)的。第二十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-并行處理技術(shù)XXXX+++a0b0a1b1a2b2a3b3第二十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-并行乘法加法描述[例]乘法加法運(yùn)算的實(shí)現(xiàn)則用VHDL語言描述如下:Libraryieee;Useieee.std_logic_1164.all;Useieee.std_logic_unsigned.all;Useieee.std_logic_arith.all;Entitymult_addisPort(clk:instd_logic;a0,a1,a2,a3:instd_logic_vector(7downto0);b0,b1,b2,b3:instd_logic_vector(7downto0);y:outstd_logic_vector(15downto0));endmultadd;architecturebehavofmult_addisbeginprocess(clk)beginifrising_edge(clk)theny<=((a0*b0)+(a1*b1)+(a2*b2)+(a3*b3));endif;endprocess;endbehav;第二十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
采用這樣的流水線設(shè)計(jì)從宏觀上來看平均每一個(gè)事件的處理時(shí)間為一個(gè)單位時(shí)間。流水線的設(shè)計(jì)要求事件所分成的這n個(gè)步驟的處理時(shí)間是相同的,以保證流水線不會(huì)因?yàn)樘幚頃r(shí)間的不同而發(fā)生阻塞,見圖5.2.2.3。第二十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
采用流水線設(shè)計(jì)的好處實(shí)在不提高系統(tǒng)運(yùn)行頻率的情況下,能夠獲得更好的處理效率。受制造工藝的影響,提高系統(tǒng)頻率將會(huì)增加后端制造的難度。同時(shí)由于需要使用更先進(jìn)的制造工藝,以及產(chǎn)品頻率的下降,將會(huì)帶來產(chǎn)品成本的提高。第二十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
如果假設(shè)在串行設(shè)計(jì)中系統(tǒng)處理效能正比于系統(tǒng)運(yùn)行的頻率,那么對(duì)于流水線設(shè)計(jì),在不提高系統(tǒng)運(yùn)行頻率的情況下,n級(jí)流水線的處理效能可以用下面公式來描述:處理效能=系統(tǒng)運(yùn)行頻率×流水線級(jí)數(shù)
第二十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
由此可見,在不提高系統(tǒng)運(yùn)行頻率的情況下,提高流水線的級(jí)數(shù)將成倍地提高系統(tǒng)處理的效能。但是流水線的設(shè)計(jì)也是有一定的限制的:(1)只有對(duì)那些能分成n個(gè)步驟完成,并且對(duì)每個(gè)步驟都需要固定相同處理時(shí)間的操作來說才能采用流水線設(shè)計(jì);
第二十六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
(2)受硬件資源的限制,流水線的級(jí)數(shù)是有限制的;(3)對(duì)于存在處理分支預(yù)測(cè)流水線的設(shè)計(jì)(廣泛應(yīng)用于微處理器的設(shè)計(jì)中),流水線的處理效能還要取決于分支預(yù)測(cè)算法的設(shè)計(jì)。第二十七頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
流水線能動(dòng)態(tài)地提升器件性能,它的基本思想是對(duì)經(jīng)過多級(jí)邏輯的長(zhǎng)數(shù)據(jù)通路進(jìn)行重新構(gòu)造,把原來必須在一個(gè)時(shí)鐘周期內(nèi)完成的操作分成在多個(gè)周期內(nèi)完成。
第二十八頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
這種方法允許更高的工作頻率,因而提高了數(shù)據(jù)吞吐量。因?yàn)镻LD的寄存器資源非常豐富,所以對(duì)PLD設(shè)計(jì)而言,流水線是一種先進(jìn)的而又不耗費(fèi)過多器件資源的結(jié)構(gòu)。但是采用流水線后,數(shù)據(jù)通道將會(huì)變成多時(shí)鐘周期,所以要特別考慮設(shè)計(jì)的其余部分,解決增加通路帶來的延遲。第二十九頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線設(shè)計(jì)技術(shù)
流水線的基本結(jié)構(gòu)是將適當(dāng)劃分的N個(gè)操作步驟串連起來。流水線操作的最大特點(diǎn)是數(shù)據(jù)流在各個(gè)步驟的處理,從時(shí)間上看是連續(xù)的;其操作的關(guān)鍵在于時(shí)序設(shè)計(jì)的合理安排、前后級(jí)接口間數(shù)據(jù)的匹配。如果前級(jí)操作的時(shí)間等于后級(jí)操作的時(shí)間,直接輸入即可;如果前級(jí)操作時(shí)間小于后級(jí)操作時(shí)間,則需要對(duì)前級(jí)數(shù)據(jù)進(jìn)行緩存,才能輸入到后級(jí);如果前級(jí)操作時(shí)間大于后者,則需要串并轉(zhuǎn)換等方法進(jìn)行數(shù)據(jù)分流,然后再輸入到下一級(jí)。第三十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線乘法器
首先給出流水線乘法器的結(jié)構(gòu)圖。從圖中可以看出,該流水線乘法器,在每個(gè)時(shí)鐘節(jié)拍下,均可以得到一個(gè)乘法結(jié)果的輸出,乘法器的效率大大增加。AB×Mult第三十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線乘法器libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;entitymultipliers_2isgeneric(A_port_size:integer:=18;B_port_size:integer:=18);port(clk:instd_logic;A:inunsigned(A_port_size-1downto0);B:inunsigned(B_port_size-1downto0);MULT:outunsigned((A_port_size+B_port_size-1)downto0));attributemult_style:string;attributemult_styleofmultipliers_2:entityis"pipe_lut";endmultipliers_2;architecturebehofmultipliers_2issignala_in,b_in:unsigned(A_port_size-1downto0);signalmult_res:unsigned((A_port_size+B_port_size-1)downto0);signalpipe_1,pipe_2,pipe_3:unsigned((A_port_size+B_port_size-1)downto0);beginmult_res<=a_in*b_in;第三十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-流水線乘法器process(clk)beginif(clk'eventandclk='1')thena_in<=A;b_in<=B;pipe_1<=mult_res;pipe_2<=pipe_1;pipe_3<=pipe_2;MULT<=pipe_3;endif;endprocess;endbeh;第三十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
PLD內(nèi)部由大量的電路單元組成,但是這些單元通常都是由有限的幾種不同的邏輯單元或是邏輯門構(gòu)成的。每一種邏輯單元包含輸入信號(hào)以及輸出信號(hào),輸出信號(hào)又作為其他邏輯單元的輸入信號(hào)。
從邏輯層面的抽象來看,一個(gè)PLD器件看成數(shù)量眾多的邏輯門構(gòu)成的網(wǎng)絡(luò),這些邏輯門的輸入和輸出通過金屬導(dǎo)線相連構(gòu)成了完成特定邏輯功能或是算法的網(wǎng)絡(luò)。在PLD芯片內(nèi)部,成百上千萬的邏輯門之間的信號(hào)傳遞決定了邏輯門的時(shí)延以及系統(tǒng)最后的運(yùn)行速度。
第三十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
集成電路系統(tǒng)中有些信號(hào)的傳遞可以同時(shí)進(jìn)行,但是有的信號(hào)的傳遞必須遵循嚴(yán)格的先后關(guān)系,這樣才能保證系統(tǒng)運(yùn)行結(jié)果的正確性(也就是說系統(tǒng)運(yùn)行的結(jié)果是可以被重復(fù)的,系統(tǒng)在確定條件下運(yùn)行的結(jié)果是確定的,而不是隨機(jī)的)。這就需要同步(Synchronization)來保證電路的各個(gè)部分的邏輯處理按照特定的順序進(jìn)行第三十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
同步電路和異步電路的區(qū)別在于電路觸發(fā)是否與驅(qū)動(dòng)時(shí)鐘同步,從行為上講,就是所有電路是否在同一時(shí)鐘沿的觸發(fā)下同步地處理數(shù)據(jù)。常用于區(qū)分二者的典型電路就是同步復(fù)位和異步復(fù)位電路。同步復(fù)位的代碼中只有時(shí)鐘沿一個(gè)觸發(fā)條件,但是異步復(fù)位代碼中語句有復(fù)位和時(shí)鐘沿兩個(gè)觸發(fā)條件。第三十六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
通常情況下,同步電路采用的都是全同步,圖5.1.1(a)就是一個(gè)全同步的例子,第一部分是由邏輯門組成的組合邏輯部分;第二部分稱為時(shí)鐘驅(qū)動(dòng)存儲(chǔ)單元;簡(jiǎn)單的說就是寄存器,用于存儲(chǔ)組合邏輯的輸出結(jié)果;第三部分是時(shí)鐘分配網(wǎng)絡(luò),這一部分特殊的電路不參與實(shí)際的運(yùn)算,而是產(chǎn)生并分配參考時(shí)鐘,這一部分電路關(guān)心的是如何產(chǎn)生控制整個(gè)同步電路的時(shí)鐘并將時(shí)鐘正確地分配到每一個(gè)寄存器。
第三十七頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
同樣以圖5.1.1(a)為例,同步系統(tǒng)中包括由組合邏輯部分完成的邏輯運(yùn)算以及由存儲(chǔ)單元對(duì)于邏輯運(yùn)算結(jié)果的存儲(chǔ):實(shí)際的存儲(chǔ)過程由時(shí)鐘信號(hào)控制,并發(fā)生在信號(hào)從邏輯門的輸出端輸出穩(wěn)定后。該模型中在每個(gè)時(shí)鐘周期的開始時(shí),輸入信號(hào)以及存儲(chǔ)單元存儲(chǔ)的數(shù)據(jù)輸入組合邏輯,經(jīng)過一定邏輯門以及傳輸?shù)臅r(shí)延后,組合邏輯產(chǎn)生結(jié)果輸出并保持穩(wěn)定,在這個(gè)時(shí)鐘周期的末尾將輸出組合邏輯的結(jié)果并存入存儲(chǔ)單元,并在下一個(gè)時(shí)鐘周期重新參加組合邏輯的操作。第三十八頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元時(shí)鐘驅(qū)動(dòng)存儲(chǔ)單元時(shí)鐘分配網(wǎng)絡(luò)計(jì)算單元輸入數(shù)據(jù)端組合邏輯輸出數(shù)據(jù)端時(shí)鐘信號(hào)同步單元(a)同步系統(tǒng)的狀態(tài)機(jī)模型Ri數(shù)據(jù)時(shí)鐘周期開始時(shí)信號(hào)有效組合邏輯時(shí)鐘信號(hào)(b)本地?cái)?shù)據(jù)通路Rf數(shù)據(jù)時(shí)鐘信號(hào)時(shí)鐘周期結(jié)束時(shí)信號(hào)有效第三十九頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
因此,數(shù)字系統(tǒng)可以看成是由一系列同時(shí)執(zhí)行的由組合邏輯構(gòu)成的計(jì)算單元組成的。如圖5.1.1(b)所示的本地?cái)?shù)據(jù)通路就是對(duì)這種概念的抽象。從圖中可以看出,組合邏輯的時(shí)延被限制在一個(gè)時(shí)鐘周期內(nèi)。在此本地?cái)?shù)據(jù)通路餓始端,寄存器Ri是存儲(chǔ)單元,用于在時(shí)鐘周期開始的時(shí)候給組合邏輯提供部分或是全部的輸入信號(hào),同時(shí)在本地?cái)?shù)據(jù)通路的末端,組合邏輯的結(jié)果在時(shí)鐘周期的末尾被正確地鎖存于寄存器Rf中。在本地?cái)?shù)據(jù)通路中,每一個(gè)寄存器既是組合邏輯的輸入端—數(shù)據(jù)的提供源,也是組合邏輯的輸出端—輸出數(shù)據(jù)的接收者,這取決于系統(tǒng)處于運(yùn)行的哪個(gè)階段。第四十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
同步系統(tǒng)具有很好的可控性,這是因?yàn)橄到y(tǒng)時(shí)鐘提供了一種時(shí)間窗的機(jī)制保證可有足夠的時(shí)間讓信號(hào)在邏輯門以及邏輯門之間的連線上傳播,并最后成功鎖存于寄存器。在設(shè)計(jì)系統(tǒng)和選擇正確的時(shí)鐘周期時(shí),要滿足以下這兩個(gè)矛盾的需求
1、希望系統(tǒng)的時(shí)鐘周期盡可能短,這樣在固定的時(shí)間內(nèi)運(yùn)算邏輯電路可以進(jìn)行更多次的運(yùn)算;2、需要保證時(shí)鐘定義的時(shí)間窗足夠長(zhǎng)以保證組合邏輯的輸出信號(hào)都能在當(dāng)前時(shí)鐘周期結(jié)束前以及下一個(gè)時(shí)鐘周期開始前到達(dá)目標(biāo)寄存器。第四十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
同步系統(tǒng)具有以下的優(yōu)點(diǎn)使得它成為數(shù)字集成電路系統(tǒng)的首選:(1)同步系統(tǒng)易于理解,并且同步系統(tǒng)中的各個(gè)參數(shù)以及變量都十分的明確,例如對(duì)于不同運(yùn)算單元的執(zhí)行的先后順序是確定的;(2)同步系統(tǒng)可以減少非確定因素諸如組合邏輯的時(shí)延(受系統(tǒng)運(yùn)行的環(huán)境、負(fù)載以及輸入信號(hào)的向量組合等的影響)對(duì)系統(tǒng)的影響,這就保證了系統(tǒng)按照確定的行為運(yùn)行,并且保證系統(tǒng)正確執(zhí)行了設(shè)計(jì)的算法;第四十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元(3)同步系統(tǒng)中不需要關(guān)心組合邏輯的輸出毛刺,因?yàn)榧拇嫫髦挥性跁r(shí)鐘的有效沿上才對(duì)組合邏輯的輸出進(jìn)行采樣,而同步系統(tǒng)可以確保這時(shí)組合邏輯的輸出已經(jīng)沒有毛刺。(4)同步系統(tǒng)的狀態(tài)完全由存儲(chǔ)單元中所存儲(chǔ)的數(shù)據(jù)所決定,這大大簡(jiǎn)化了系統(tǒng)的設(shè)計(jì)、調(diào)試以及測(cè)試。第四十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元當(dāng)然,同步系統(tǒng)也存在著下面一些缺點(diǎn)使得今天的同步大規(guī)模集成電路設(shè)計(jì)變得更加富有挑戰(zhàn)性:(1)同步系統(tǒng)要求系統(tǒng)中的所有電路通路以其中最慢的一條寄存器到寄存器通路的標(biāo)準(zhǔn)來工作(這也就是說,同步系統(tǒng)中系統(tǒng)工作的速度取決于這些通路上具有最大時(shí)延的組合邏輯,包含這樣組合邏輯的通路稱為最壞情況下的關(guān)鍵路徑。第四十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
在通常的大規(guī)模集成電路系統(tǒng)中,大多數(shù)的路徑都具有更小的時(shí)延,也就是可以采用更小的時(shí)鐘周期。但是那些具有最大時(shí)延的路徑限制了系統(tǒng)時(shí)鐘周期的長(zhǎng)短,同時(shí)也引入了對(duì)于整個(gè)系統(tǒng)速度的限制。有時(shí)候這種通路上時(shí)延的非對(duì)稱性是如此的富有戲劇性,以致于整個(gè)系統(tǒng)的速度僅僅取決于少數(shù)幾條速度非常慢的路徑)。第四十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
(2)同步系統(tǒng)中,時(shí)鐘信號(hào)需要被分配到數(shù)以萬計(jì)的分布于系統(tǒng)各個(gè)地方的存儲(chǔ)寄存器中,因此系統(tǒng)中很大一部分的面積以及耗散的電能都被用于時(shí)鐘分配網(wǎng)絡(luò)—并不參與實(shí)際的計(jì)算功能的電路。(3)同步系統(tǒng)的可靠性依賴于對(duì)于系統(tǒng)時(shí)延要求(包括組合邏輯以及由電路互聯(lián)線產(chǎn)生)的正確估計(jì),如果系統(tǒng)不能滿足時(shí)延要求,將造成系統(tǒng)的不穩(wěn)定甚至是不可用。第四十六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
綜上所述,因此同步電路的設(shè)計(jì)應(yīng)遵循以下準(zhǔn)則:
1)盡量在設(shè)計(jì)中使用單時(shí)鐘,且走全局時(shí)鐘網(wǎng)絡(luò)。在單時(shí)鐘設(shè)計(jì)中,很容易就將整個(gè)設(shè)計(jì)同步于驅(qū)動(dòng)時(shí)鐘,使設(shè)計(jì)得到簡(jiǎn)化。全局時(shí)鐘網(wǎng)絡(luò)的時(shí)鐘是性能最優(yōu),最便于預(yù)測(cè)的時(shí)鐘,具有最強(qiáng)的驅(qū)動(dòng)能力,不僅能保證驅(qū)動(dòng)每個(gè)寄存器,且時(shí)鐘漂移可以忽略。在多時(shí)鐘應(yīng)用中,要做到局部時(shí)鐘同步。
第四十七頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元
在實(shí)際工程中,應(yīng)將時(shí)鐘信號(hào)和復(fù)位信號(hào)通過FPGA芯片的專用全局時(shí)鐘引腳送入,以獲得更高質(zhì)量的時(shí)鐘信號(hào)。
2)盡量避免使用混合時(shí)鐘沿來采樣數(shù)據(jù)或驅(qū)動(dòng)電路。使用混合時(shí)鐘沿將會(huì)使靜態(tài)時(shí)序分析復(fù)雜,并導(dǎo)致電路工作頻率降低。第四十八頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-系統(tǒng)同步單元3)避免使用門控時(shí)鐘。
如果一個(gè)時(shí)鐘節(jié)點(diǎn)由組合邏輯驅(qū)動(dòng),那么就形成了門控時(shí)鐘,門控時(shí)鐘常用來減少功耗,但其相關(guān)的邏輯不是同步電路,即可能帶有毛刺,而任何的一點(diǎn)點(diǎn)小毛刺都可以造成D觸發(fā)器誤翻轉(zhuǎn);此外,門控邏輯會(huì)污染時(shí)鐘質(zhì)量,產(chǎn)生毛刺,并惡化偏移和抖動(dòng)等指標(biāo)。所以門控時(shí)鐘對(duì)設(shè)計(jì)可靠性有很大影響,應(yīng)盡可能避免。
4)盡量不要在模塊內(nèi)部使用計(jì)數(shù)器分頻產(chǎn)生所需時(shí)鐘。第四十九頁,共103頁。
VHDL高級(jí)設(shè)計(jì)技術(shù)-異步單元
但是在實(shí)際的設(shè)計(jì)過程中,不可避免的要接觸到異步單元,比如在設(shè)計(jì)模塊與外圍芯片的通信中,跨時(shí)鐘域的情況經(jīng)常不可避免。異步時(shí)序單元指的是在設(shè)計(jì)中有兩個(gè)或兩個(gè)以上的時(shí)鐘,且時(shí)鐘之間是不同頻率或同頻不同相的關(guān)系。而異步時(shí)序設(shè)計(jì)的關(guān)鍵就是把數(shù)據(jù)或控制信號(hào)正確地進(jìn)行跨時(shí)鐘域傳輸。每一個(gè)觸發(fā)器都有其規(guī)定的建立(setup)和保持(hold)時(shí)間參數(shù)。在這個(gè)時(shí)間參數(shù)內(nèi),輸入信號(hào)在時(shí)鐘的上升沿是不允許發(fā)生變化的。如果信號(hào)的建立時(shí)間中對(duì)其進(jìn)行采樣,得到的結(jié)果將是不可預(yù)知的,即亞穩(wěn)態(tài)。第五十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-異步單元
>
>b_clka_clkdata_datb_data_datb_dat數(shù)據(jù)變化亞穩(wěn)態(tài)第五十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-異步單元
常用的同步策略,如雙鎖存器法、結(jié)繩法等,而作為異步時(shí)序設(shè)計(jì)中的重點(diǎn)—異步FIFO設(shè)計(jì)。為了避免亞穩(wěn)態(tài)問題,通常采用的方法是雙鎖存器法,即在一個(gè)信號(hào)進(jìn)入另一個(gè)時(shí)鐘域之前,將該信號(hào)用兩個(gè)鎖存器連續(xù)鎖存兩次,最后得到的采樣結(jié)果就可以消除亞穩(wěn)態(tài)問題。
>
>b_clka_clkdata_datb_dat11b_dat2
>b_dat1數(shù)據(jù)變化靜態(tài)同步a_datb_dat2第五十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯結(jié)構(gòu)的設(shè)計(jì)方法
邏輯結(jié)構(gòu)主要分為鏈狀結(jié)構(gòu)(ChainArchitecture)和樹狀結(jié)構(gòu)(TreeArchitecture)。一般來講,鏈狀結(jié)構(gòu)具有較大的時(shí)延,后者具有較小的時(shí)延。所謂的鏈狀結(jié)構(gòu)主要指程序是串行執(zhí)行的,樹狀結(jié)構(gòu)是串并結(jié)合的模式,具體如例3-7所示。表3-3給出具有鏈狀結(jié)構(gòu)和樹狀結(jié)構(gòu)的4輸入加法器的實(shí)現(xiàn)實(shí)例。第五十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯結(jié)構(gòu)的設(shè)計(jì)方法+++ABCDZ+AB+CD+Z圖5.12鏈狀結(jié)構(gòu)圖圖5.13樹狀結(jié)構(gòu)圖第五十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-邏輯結(jié)構(gòu)的設(shè)計(jì)方法
從上例可以明顯看出樹狀結(jié)構(gòu)的優(yōu)勢(shì),它能夠在同等資源的情況下,縮減運(yùn)算時(shí)延,從而提高電路吞吐量以節(jié)省面積。在書寫代碼時(shí),要盡量采用樹狀結(jié)構(gòu),以減少時(shí)間延遲。第五十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用
if語句指定了一個(gè)有優(yōu)先級(jí)的編碼邏輯,而case語句生成的邏輯是并行的,不具有優(yōu)先級(jí)。
if語句可以包含一系列不同的表達(dá)式,而case語句比較的是一個(gè)公共的控制表達(dá)式。
if-else結(jié)構(gòu)速度較慢,但占用的面積小,如果對(duì)速度沒有特殊要求而對(duì)面積有較高要求,則可用if-else語句完成編解碼。
case結(jié)構(gòu)速度較快,但占用面積較大,所以用case語句實(shí)現(xiàn)對(duì)速度要求較高的編解碼電路。第五十六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用
嵌套的if語句如果使用不當(dāng),就會(huì)導(dǎo)致設(shè)計(jì)的更大延時(shí),為了避免較大的路徑延時(shí),最好不要使用特別長(zhǎng)的嵌套if結(jié)構(gòu)。如想利用if語句來實(shí)現(xiàn)那些對(duì)延時(shí)要求苛刻的路徑時(shí),應(yīng)將最高優(yōu)先級(jí)給最遲到達(dá)的關(guān)鍵信號(hào)。有時(shí)為了兼顧面積和速度,可以將if和case語句合用。
第五十七頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用【例】給出使用if語句,但缺乏else分支而造成鎖存器的情況。
Process(a,data)BeginIf(a=1)thendata_out<=data_in;endif;Endprocess;第五十八頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用【例】給出了使用if語句,不缺少else分支而不會(huì)造成鎖存器的情況。Process(a,data)BeginIf(a=1)thendata_out<=data_in;elsedata_out<=’0’;endif;Endprocess;第五十九頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用第六十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用【例】給出了在process塊中使用case語句,由于缺乏others分支的VHDL描述。Process(a,data_in1,data_in2)begincaseaiswhen“00”=>data_out<=data_in1;when“01”=>data_out<=data_in2;whenothers=>;endcase;endprocess;第六十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用【例3-13】給出了在process塊中使用case語句,加入others分支的VHDL描述。Process(a,data_in1,data_in2)begincaseaiswhen“00”=>data_out<=data_in1;when“01”=>data_out<=data_in2;whenothers=>data_out<=’0’;endcase;endprocess;第六十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-if和case語句的使用第六十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核技術(shù)
現(xiàn)在的FPGA設(shè)計(jì),規(guī)模巨大而且功能復(fù)雜,設(shè)計(jì)人員不可能從頭開始進(jìn)行設(shè)計(jì)。現(xiàn)在采用的方式是,在設(shè)計(jì)中盡可能使用現(xiàn)有的功能模塊,除非沒有現(xiàn)成的模塊可以使用時(shí),設(shè)計(jì)人員才需要自己花時(shí)間和精力設(shè)計(jì)新的模塊。這些現(xiàn)有的功能模塊,EDA設(shè)計(jì)人員把他們通常稱為IP(intellectualProperty)核。IP核來源主要有三個(gè)方面:(1)前一個(gè)設(shè)計(jì)創(chuàng)建的模塊;(2)FPGA生產(chǎn)廠商的提供;(3)第三方IP廠商的提供。第六十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的分類
IP(IntelligentProperty)核是具有知識(shí)產(chǎn)權(quán)核的集成電路芯核總稱,是經(jīng)過反復(fù)驗(yàn)證過的、具有特定功能的宏模塊,與芯片制造工藝無關(guān),可以移植到不同的半導(dǎo)體工藝中。到了SOC階段,IP核設(shè)計(jì)已成為ASIC電路設(shè)計(jì)公司和FPGA提供商的重要任務(wù),也是其實(shí)力體現(xiàn)。對(duì)于FPGA開發(fā)軟件,其提供的IP核越豐富,用戶的設(shè)計(jì)就越方便,其市場(chǎng)占用率就越高。目前,IP核已經(jīng)變成系統(tǒng)設(shè)計(jì)的基本單元,并作為獨(dú)立設(shè)計(jì)成果被交換、轉(zhuǎn)讓和銷售。第六十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的分類
從IP核的提供方式上,通常將其分為軟核、硬核和固核這3類。從完成IP核所花費(fèi)的成本來講,硬核代價(jià)最大;從使用靈活性來講,軟核的可復(fù)用使用性最高。第六十六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的分類(軟核)
軟核在EDA設(shè)計(jì)領(lǐng)域指的是綜合之前的寄存器傳輸級(jí)(RTL)模型;具體在FPGA設(shè)計(jì)中指的是對(duì)電路的硬件語言描述,包括邏輯描述、網(wǎng)表和幫助文檔等。軟核只經(jīng)過功能仿真,需要經(jīng)過綜合以及布局布線才能使用。其優(yōu)點(diǎn)是靈活性高、可移植性強(qiáng),允許用戶自配置;缺點(diǎn)是對(duì)模塊的預(yù)測(cè)性較低,在后續(xù)設(shè)計(jì)中存在發(fā)生錯(cuò)誤的可能性,有一定的設(shè)計(jì)風(fēng)險(xiǎn)。軟核是IP核應(yīng)用最廣泛的形式。第六十七頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的分類(固核)
固核在EDA設(shè)計(jì)領(lǐng)域指的是帶有平面規(guī)劃信息的網(wǎng)表;具體在FPGA設(shè)計(jì)中可以看做帶有布局規(guī)劃的軟核,通常以RTL代碼和對(duì)應(yīng)具體工藝網(wǎng)表的混合形式提供。將RTL描述結(jié)合具體標(biāo)準(zhǔn)單元庫進(jìn)行綜合優(yōu)化設(shè)計(jì),形成門級(jí)網(wǎng)表,再通過布局布線工具即可使用。和軟核相比,固核的設(shè)計(jì)靈活性稍差,但在可靠性上有較大提高。目前,固核也是IP核的主流形式之一。第六十八頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的分類(硬核)
硬核在EDA設(shè)計(jì)領(lǐng)域指經(jīng)過驗(yàn)證的設(shè)計(jì)版圖;具體在FPGA設(shè)計(jì)中指布局和工藝固定、經(jīng)過前端和后端驗(yàn)證的設(shè)計(jì),設(shè)計(jì)人員不能對(duì)其修改。不能修改的原因有兩個(gè):首先是系統(tǒng)設(shè)計(jì)對(duì)各個(gè)模塊的時(shí)序要求很嚴(yán)格,不允許打亂已有的物理版圖;其次是保護(hù)知識(shí)產(chǎn)權(quán)的要求,不允許設(shè)計(jì)人員對(duì)其有任何改動(dòng)。
IP硬核的不許修改特點(diǎn)使其復(fù)用有一定的困難,因此只能用于某些特定應(yīng)用,使用范圍較窄。第六十九頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的優(yōu)化
最長(zhǎng)見到的情況就是IP核的廠商從RTL級(jí)開始對(duì)IP進(jìn)行人工的優(yōu)化。EDA的設(shè)計(jì)用戶可以通過下面的幾種途徑購買和使用IP模塊:(1)IP模塊的RTL代碼;(2)未布局布線的網(wǎng)表級(jí)IP核;(3)布局布線后的網(wǎng)表級(jí)IP核。第七十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-未加密的RTL級(jí)IP
在很少的情況下,EDA設(shè)計(jì)人員可以購買未加密的源代碼RTL級(jí)的IP模塊,然后將這些IP模塊集成到設(shè)計(jì)的RTL級(jí)代碼中。這些IP核已經(jīng)經(jīng)過了仿真、綜合和驗(yàn)證。但一般情況下,EDA設(shè)計(jì)人員很難得到復(fù)雜的IP核RTL級(jí)的描述,如果EDA人員想這樣做的話,必須和IP核的提供廠商簽訂一個(gè)叫NDA(nondisclosureagreements)的協(xié)議。在這一級(jí)上的IP核,EDA人員很容易的根據(jù)自己的需要修改代碼,滿足自己的設(shè)計(jì)要求。但是與后面優(yōu)化后的網(wǎng)表IP相比,資源需求和性能方面的效率會(huì)比較低。第七十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)--加密的RTL級(jí)IPAltera和Xilinx這樣的公司開發(fā)了自己的加密算法和工具,這樣只有自己的FPGA廠商的工具加密后的RTL代碼只能由自己的綜合工具進(jìn)行處理。第七十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-未布局布線的網(wǎng)表IP
對(duì)于EDA設(shè)計(jì)人員最普遍的方式就是使用未經(jīng)加密布局布線的LUT/CLB網(wǎng)表IP。這種網(wǎng)表進(jìn)行了加密處理,以EDIF格式或者PLD廠商自己的專用格式。廠商已經(jīng)對(duì)IP進(jìn)行了人工的優(yōu)化,使得在資源利用和性能方面達(dá)到最優(yōu)。但是EDA設(shè)計(jì)人員不能根據(jù)自己設(shè)計(jì)要求對(duì)核進(jìn)行適當(dāng)?shù)牟脺p,并且IP模塊同某一特定的PLD廠商和具體的器件聯(lián)系。
第七十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-布局布線后的網(wǎng)表級(jí)IP
在一些情況下,EDA人員可能需要購買和使用布局布線后和加密的LUT/CLB網(wǎng)表級(jí)IP。布局布線后的網(wǎng)表級(jí)IP可以達(dá)到最佳的性能。在一些情況下,LUT、CLB和其它構(gòu)成IP核的部分,它們內(nèi)部的位置時(shí)相對(duì)固定的,但是它作為一個(gè)整體可以放在PLD的任意部分,并且它們有I/O引腳的位置限制。在這種情況下,用戶只能對(duì)其進(jìn)行調(diào)用,不得對(duì)其進(jìn)行任何的修改。第七十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的生成
很多FPGA廠商提供了一個(gè)專門的IP核生成工具,有時(shí)候EDA廠商、IP廠商和一些獨(dú)立的設(shè)計(jì)小組也提供了IP核生成工具。這些核生成軟件是參數(shù)化的,由用戶指定總線和功能單元的寬度和深度等參數(shù)。當(dāng)使用IP核生成器時(shí),從IP模塊/核列表中選擇自己需要的一個(gè)IP核,然后設(shè)置相應(yīng)得參數(shù)。然后,對(duì)一些IP核,生成器要求用戶從功能列表張選擇是否包含某些功能。比如,F(xiàn)IFO模塊,需要用戶選擇是否進(jìn)行滿空的計(jì)數(shù)。通過這種設(shè)置方式,IP核生成器可以生成在資源需求和性能方面效率最高的IP核/模塊。根據(jù)生成器軟件的代碼源和NDA的要求不同,核生成器輸出可能是加密或未加密的RTL級(jí)源代碼,也可能是未經(jīng)布局布線的網(wǎng)表或布局布線的網(wǎng)表文件。第七十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核生成器第七十六頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的應(yīng)用(DCM)
數(shù)字時(shí)鐘管理模塊(DigitalClockManager,DCM)是基于Xilinx的其他系列器件所采用的數(shù)字延遲鎖相環(huán)(DLL,DelayLockedLoop)模塊。在時(shí)鐘的管理與控制方面,DCM與DLL相比,功能更強(qiáng)大,使用更靈活。
DCM的功能包括消除時(shí)鐘的延時(shí)、頻率的合成、時(shí)鐘相位的調(diào)整等系統(tǒng)方面的需求。DCM的主要優(yōu)點(diǎn)在于:①實(shí)現(xiàn)零時(shí)鐘偏移(Skew),消除時(shí)鐘分配延遲,并實(shí)現(xiàn)時(shí)鐘閉環(huán)控制;②時(shí)鐘可以映射到PCB上用于同步外部芯片,這樣就減少了對(duì)外部芯片的要求,將芯片內(nèi)外的時(shí)鐘控制一體化,以利于系統(tǒng)設(shè)計(jì)。對(duì)于DCM模塊來說,其關(guān)鍵參數(shù)為輸入時(shí)鐘頻率范圍、輸出時(shí)鐘頻率范圍、輸入/輸出時(shí)鐘允許抖動(dòng)范圍等。第七十七頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的應(yīng)用-DCM符號(hào)第七十八頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的應(yīng)用-信號(hào)說明
在Xilinx芯片中,典型的DLL標(biāo)準(zhǔn)原型如圖4-111所示,其管腳分別說明如下:
CLKIN(源時(shí)鐘輸入):DLL輸入時(shí)鐘信號(hào),通常來自IBUFG或BUFG。
CLKFB(反饋時(shí)鐘輸入):DLL時(shí)鐘反饋信號(hào),該反饋信號(hào)必須源自CLK0CLK2X,并通過IBUFG或BUFG相連。
RST(復(fù)位):控制DLL的初始化,通常接地。
CLK0(同頻信號(hào)輸出):與CLKIN無相位偏移;CLK90與CLKIN有90度相位偏移;CLK180與CLKIN有180度相位偏移;第七十九頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的應(yīng)用-信號(hào)說明CLK270與CLKIN有270度相位偏移。
CLKDV(分頻輸出):DLL輸出時(shí)鐘信號(hào),是CLKIN的分頻時(shí)鐘信號(hào)。DLL支持的分頻系數(shù)為1.5,2,2.5,3,4,5,8和16。
CLK2X(兩倍信號(hào)輸出):CLKIN的2倍頻時(shí)鐘信號(hào)。
LOCKED(輸出鎖存):為了完成鎖存,DLL可能要檢測(cè)上千個(gè)時(shí)鐘周期。當(dāng)DLL完成鎖存之后,LOCKED有效。
第八十頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-IP核的應(yīng)用-DCM
DCM共由四部分組成,如圖M所示。
DLL模塊;數(shù)字頻率合成器(DFS,DigitalFrequencySynthesizer);數(shù)字移相器(DPS,DigitalPhaseShifter);數(shù)字頻譜擴(kuò)展器(DSS,DigitalSpreadSpectrum)。第八十一頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)--DLL模塊DLL主要由一個(gè)延時(shí)線和控制邏輯組成。延時(shí)線對(duì)時(shí)鐘輸入端CLKIN產(chǎn)生一個(gè)延時(shí),時(shí)鐘分布網(wǎng)線將該時(shí)鐘分配到器件內(nèi)的各個(gè)寄存器和時(shí)鐘反饋端CLKFB;控制邏輯在反饋時(shí)鐘到達(dá)時(shí)采樣輸入時(shí)鐘以調(diào)整二者之間的偏差,實(shí)現(xiàn)輸入和輸出的零延時(shí),具體工作原理是:控制邏輯在比較輸入時(shí)鐘和反饋時(shí)鐘的偏差后,調(diào)整延時(shí)線參數(shù),在輸入時(shí)鐘后不停地插入延時(shí),直到輸入時(shí)鐘和反饋時(shí)鐘的上升沿同步,鎖定環(huán)路進(jìn)入“鎖定”狀態(tài),只要輸入時(shí)鐘不發(fā)生變化,輸入時(shí)鐘和反饋時(shí)鐘就保持同步。DLL可以被用來實(shí)現(xiàn)一些電路以完善和簡(jiǎn)化系統(tǒng)級(jí)設(shè)計(jì),如提供零傳播延遲,低時(shí)鐘相位差和高級(jí)時(shí)鐘區(qū)域控制等。第八十二頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-DFS-數(shù)字頻率合成器
DFS可以為系統(tǒng)產(chǎn)生豐富的頻率合成時(shí)鐘信號(hào),輸出信號(hào)為CLKFB和CLKFX180,可提供輸入時(shí)鐘頻率分?jǐn)?shù)倍或整數(shù)倍的時(shí)鐘輸出頻率方案,輸出頻率范圍為1.5~320MHz(不同芯片的輸出頻率范圍是不同的)。這些頻率基于用戶自定義的兩個(gè)整數(shù)比值,一個(gè)是乘因子(CLKFX_MULTIPLY),另外一個(gè)是除因子(CLKFX_DIVIDE),輸入頻率和輸出頻率之間的關(guān)系為:比如取CLKFX_MULTIPLY=3,CLKFX_DIVIDE=1,PCB上源時(shí)鐘為100MHz,通過DCM3倍頻后,就能驅(qū)動(dòng)時(shí)鐘頻率在300MHz的FPGA,從而減少了板上的時(shí)鐘路徑,簡(jiǎn)化板子的設(shè)計(jì),提供更好的信號(hào)完整性。第八十三頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-數(shù)字移相器
DCM具有移動(dòng)時(shí)鐘信號(hào)相位的能力,因此能夠調(diào)整I/O信號(hào)的建立和保持時(shí)間,能支持對(duì)其輸出時(shí)鐘進(jìn)行0度、90度、180度、270度的相移粗調(diào)和相移細(xì)調(diào)。其中,相移細(xì)調(diào)對(duì)相位的控制可以達(dá)到1%輸入時(shí)鐘周期的精度(或者50ps),并且具有補(bǔ)償電壓和溫度漂移的動(dòng)態(tài)相位調(diào)節(jié)能力。對(duì)DCM輸出時(shí)鐘的相位調(diào)整需要通過屬性控制PHASE_SHIFT來設(shè)置。PS設(shè)置范圍為-255到+255,比如輸入時(shí)鐘為200MHz,需要將輸出時(shí)鐘調(diào)整+0.9ns的話,PS=(0.9ns/5ns)×256=46。如果PHASE_SHIFT值是一個(gè)負(fù)數(shù),則表示時(shí)鐘輸出應(yīng)該相對(duì)于CLKIN向后進(jìn)行相位移動(dòng);如果PHASE_SHIFT是一個(gè)正值,則表示時(shí)鐘輸出應(yīng)該相對(duì)于CLKIN向前進(jìn)行相位移動(dòng)。第八十四頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-數(shù)字頻譜合成器
Xilinx公司第一個(gè)提出利用創(chuàng)新的擴(kuò)頻時(shí)鐘技術(shù)來減少電磁干擾(EMI)噪聲輻射的可編程解決方案。最先在FPGA中實(shí)現(xiàn)電磁兼容的EMIControl技術(shù),是利用數(shù)字?jǐn)U頻技術(shù)(DSS)通過擴(kuò)展輸出時(shí)鐘頻率的頻譜來降低電磁干擾,減少用戶在電磁屏蔽上的投資。數(shù)字?jǐn)U頻(DSS)技術(shù)通過展寬輸出時(shí)鐘的頻譜,來減少EMI和達(dá)到FCC要求。這一特點(diǎn)使設(shè)計(jì)者可極大地降低系統(tǒng)成本,使電路板重新設(shè)計(jì)的可能性降到最小,并不再需要昂貴的屏蔽,從而縮短了設(shè)計(jì)周期。
第八十五頁,共103頁。VHDL高級(jí)設(shè)計(jì)技術(shù)-塊RAM存儲(chǔ)器
Xilinx公司提供了大量的存儲(chǔ)器資源,包括了內(nèi)嵌的塊存儲(chǔ)器、分布式存儲(chǔ)器以及16位的移位寄存器。利用這些資源可以生成深度、位寬可配置的RAM、ROM、FIFO以及移位寄存器等存儲(chǔ)邏輯。其中,塊存儲(chǔ)器是硬件存儲(chǔ)器,不占用任何邏輯資源,其余兩類都是Xilinx專有的存儲(chǔ)結(jié)構(gòu),由FPGA芯片的查找表和觸發(fā)器資源構(gòu)建的,每個(gè)查找表可構(gòu)成16*1位的分布式存儲(chǔ)器或移位寄存器。一般來講,塊存儲(chǔ)器是寶貴的資源,通常用于大數(shù)據(jù)量的應(yīng)用場(chǎng)合,而其余兩類用于小數(shù)據(jù)量環(huán)境。
第八十六頁,共103頁。IP核的應(yīng)用-塊RAM存儲(chǔ)器組成和功能介紹
在XilinxFPGA中,塊RAM是按照列來排列的,這樣保證了每個(gè)CLB單元周圍都有比較接近的塊RAM用于存儲(chǔ)和交換數(shù)據(jù)。與塊RAM接近的是硬核乘加單元,這樣不僅有利于提高乘法的運(yùn)算速度,還能形成微處理器的雛形,在數(shù)字信號(hào)處理領(lǐng)域非常實(shí)用。例如,在Spartan3E系列芯片中,塊RAM分布于整個(gè)芯片的邊緣,其外部一般有兩列CLB,如圖4-120所示,可直接對(duì)輸入數(shù)據(jù)進(jìn)行大規(guī)模緩存以及數(shù)據(jù)同步操作,便于實(shí)現(xiàn)各種邏輯操作。第八十七頁,共103頁。
IP核的應(yīng)用-塊RAM存儲(chǔ)器組成和功能介紹第八十八頁,共103頁。
IP核的應(yīng)用-塊RAM存儲(chǔ)器組成和功能介紹
塊RAM幾乎是FPGA器件中除了邏輯資源之外用得最多的功能塊,Xilinx的主流FPGA芯片內(nèi)部都集成了數(shù)量不等的塊RAM硬核資源,速度可以達(dá)到數(shù)百兆赫茲,不會(huì)占用額外的CLB資源,而且可以在ISE環(huán)境的IP核生成器中靈活地對(duì)RAM進(jìn)行配置,構(gòu)成單端口RAM、簡(jiǎn)單雙口RAM、真正雙口RAM、ROM(在RAM中存入初值)和FIFO等應(yīng)用模式,如圖4-121所示。同時(shí),還可以將多個(gè)塊RAM通過同步端口連接起來構(gòu)成容量更大的塊RAM。
第八十九頁,共103頁。
IP核的應(yīng)用-單端口RAM模式
單端口RAM的模型如圖4-122所示,只有一個(gè)時(shí)鐘源CLK,WE為寫使能信號(hào),EN為單口RAM使能信號(hào),SSR為清零信號(hào),ADDR為地址信號(hào),DI和DO分別為寫和讀出數(shù)據(jù)信號(hào)。
第九十頁,共103頁。
IP核的應(yīng)用-單端口RAM模式第九十一頁,共103頁。
IP核的應(yīng)用-單端口RAM模式
單端口RAM模式支持非同時(shí)的讀寫操作。同時(shí)每個(gè)塊RAM可以被分為兩部分,分別實(shí)現(xiàn)兩個(gè)獨(dú)立的單端口RAM。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 讓生活在勞動(dòng)中綻放光彩作文素材7篇
- 2024-2025學(xué)年新教材高中英語 Welcome Unit Reading for Writing教學(xué)實(shí)錄 新人教版必修第一冊(cè)
- 物流公司轉(zhuǎn)讓(多篇)
- Q-BQD001-2019青島銀行網(wǎng)上銀行服務(wù)
- 九年級(jí)道德與法治下冊(cè) 第二單元 世界舞臺(tái)上的中國(guó) 第四課 與世界共發(fā)展 第2框 攜手促發(fā)展教學(xué)實(shí)錄+教學(xué)反思 新人教版
- 四年級(jí)品德與社會(huì)下冊(cè) 第四單元 我們生長(zhǎng)在中國(guó) 第12課《黃土地黑土地》教學(xué)實(shí)錄 粵教版
- 促銷活動(dòng)策劃方案模板集合六篇
- 烏塔讀后感(匯編15篇)
- 學(xué)校家長(zhǎng)會(huì)家長(zhǎng)心得10篇
- 北師大版數(shù)學(xué)八年級(jí)上冊(cè)期中試題含答案
- 《雪地尋蹤》選擇題及答案
- 2023年NPI產(chǎn)品工程師年度總結(jié)及下年工作展望
- 中醫(yī)科工作總結(jié)及計(jì)劃
- 窗簾采購?fù)稑?biāo)方案(技術(shù)標(biāo))
- 2023-2024年人教版三年級(jí)上冊(cè)數(shù)學(xué)期末應(yīng)用題專題訓(xùn)練
- 職業(yè)學(xué)校消防安全課件
- 基于多元回歸的計(jì)量經(jīng)濟(jì)學(xué)論文
- 高教社新國(guó)規(guī)中職英語教材《英語3 基礎(chǔ)模塊》Unit 5 Natural Wonders in the World-教學(xué)設(shè)計(jì)方案-6課時(shí)
- 三對(duì)三籃球賽記錄表
- 勞務(wù)公司與勞務(wù)公司之間的合作協(xié)議
- 河南省鄭州市金水區(qū)2023-2024學(xué)年四年級(jí)數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含答案
評(píng)論
0/150
提交評(píng)論