2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩111頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、何賓2008.09,E - mail: hebin@mail.buct.edu.cn,,EDA原理及應用,本章首先介紹基于Xilinx芯片的HDL高級設計技術。在高級設計技術中主要對提高HDL性能的一些設計方法進行了比較詳細的介紹,其中包括邏輯復制和復用技術、并行和流水技術、系統(tǒng)同步和異步單元、邏輯結構的設計方法和模塊的劃分原則。 本章也對IP核技術進行了比較詳細的說明和介紹,其中包括IP核分類、IP核優(yōu)化、IP

2、核生成和IP應用技術。 這部分雖然在本書中的篇幅不是很多,但是內容非常重要,讀者在學習該部分內容時要仔細的領會。,第五章,VHDL高級設計技術-主要內容,第 5章,,● VHDL代碼風格是指兩個方面的內容: 一方面是VHDL語言描述規(guī)范,即在使用VHDL語言描述邏輯行為時必須遵守VHDL語言的詞法和句法規(guī)范,該描述風格不依賴于EDA軟件工具和可編程邏輯器件PLD類型,僅僅是從VHDL語言出發(fā)的代碼風

3、格; 另一方面則是VHDL語言對于一特定邏輯單元的描述,即用VHDL語言的哪一種描述風格進行邏輯行為描述,才能使電路描述得更準確,布局布線后產(chǎn)生的電路設計最優(yōu),該描述風格不僅需要關注EDA軟件在語法細節(jié)上的差異,還要緊密依賴于固有的硬件結構。,,VHDL高級設計技術-VHDL代碼風格,●,第五章,VHDL高級設計技術-VHDL代碼風格,從本質上講,使用哪種描述風格描述電路的邏輯行為,主要取決于兩個關鍵問題:

4、 1、速度和面積問題; 2、功耗問題;,,●,第五章,VHDL高級設計技術-VHDL代碼風格,首先,先說明速度和面積問題。 這里的“面積”主要是指設計所占用的FPGA邏輯資源數(shù)目,即所消耗的觸發(fā)器和查找表數(shù)目。 “速度”是指在芯片上穩(wěn)定運行時所能夠達到的最高頻率。 面積和速度這兩個指標始終貫穿著PLD的設計,是評價設計性能的最主要標準。,●,,第五章,VHDL高級設計技術-VHDL代碼風格,面積和速

5、度呈反比關系。 如果要提高速度,就需要消耗更多的資源,即需要更大的面積; 如果減少了面積,就會使系統(tǒng)的處理速度降低。 所以在設計中不可能同時實現(xiàn)既顯著提高PLD工作頻率,又顯著減少所占用PLD的邏輯資源的數(shù)目。,●,,第五章,VHDL高級設計技術-VHDL代碼風格,在實際設計時,需要在速度和面積之間進行權衡,使得設計達到面積和速度的最佳結合點。 本章介紹通過采用邏輯復制和復用技術

6、、并行和流水線技術、同步和異步電路處理技術、邏輯結構處理技術等方法,在速度和面積之間進行權衡,達到最佳的性能和資源要求。,●,,第五章,VHDL高級設計技術-VHDL代碼風格,其次,說明功耗問題。 隨著PLD工作頻率的顯著提高,功耗成為一個引起EDA設計人員密切關注的問題。 由于PLD工作頻率的提高,邏輯單元的切換頻率也相應提高,相應的會引起PLD功耗增大。 這樣就存在著頻率和功耗之間的矛

7、盾,因此必須在邏輯單元的切換速度和功耗之間進行權衡,通過合理的設計,減少邏輯單元不必要的切換,這樣可以在一定程度上降低功耗。,●,,第五章,VHDL高級設計技術-扇出,扇出是指某一器件的輸出驅動與之相連的后續(xù)器件的能力。眾所周知,一個器件的扇出數(shù)是有限制的。扇出數(shù)目越多,所要求的驅動能力越高。在PLD芯片內,如果一個邏輯單元的扇出數(shù)過多的話,會降低其工作速度,并且會對布線造成困難。因此,在PLD邏輯資源允許的情況下,要盡量降低扇出數(shù)。,

8、●,,第五章,VHDL高級設計技術-邏輯復制,邏輯復制是通過增加面積而改善設計時序的優(yōu)化方法,經(jīng)常用于調整信號的扇出。如果信號具有高的扇出,則要添加緩存器來增強驅動能力,但這會增大信號的時延。 通過邏輯復制,使用多個相同的信號來分擔驅動任務。這樣,每路信號的扇出就會變低,就不需要額外的緩沖器來增強驅動,即可減少信號的路徑延遲。,●,,第五章,,,VHDL高級設計技術-邏輯復制,通過邏輯單元的復制,減少扇出數(shù),可以解

9、決下面兩個方面的問題:減少網(wǎng)絡延遲;多個器件分布在不同的區(qū)域,這樣可以大大降低布線阻塞情況的發(fā)生。 在使用增加器件減少扇出數(shù)目的時候,必須要注意的是,如果是異步單元的話,必須對該單元進行同步處理。,●,,第五章,,,VHDL高級設計技術-邏輯復制,●,,第五章,VHDL高級設計技術-邏輯復用技術,邏輯復用是指在完成相同的功能下,盡量減少所使用的邏輯單元的數(shù)目。這樣在不影響設計性能的情況下,可以降低資源的使用。下面通

10、過一個乘法器的例子來說明這個問題。,●,,第五章,,VHDL高級設計技術-邏輯復用技術,●,,第五章,VHDL高級設計技術-邏輯復用技術,先選擇后乘法的結構,在實現(xiàn)這樣一個功能時需要使用兩個乘法器和一個選擇器,對該結構進行觀察可以發(fā)現(xiàn),在該設計中被乘數(shù)都是B,只有乘數(shù)是不一樣的,那么可以在不影響該設計實現(xiàn)的功能的前提下,可以考慮將系統(tǒng)改為先選擇后相乘的結構采用該結構,在實現(xiàn)相同功能的前提下,所使用的乘法器數(shù)目由2個減少為1個。

11、 從該設計可以看出,在進行設計時,如果對設計進行優(yōu)化,很多的功能都可以通過邏輯復用技術,提高設計效率和減少邏輯資源消耗量。,●,,第五章,,,VHDL高級設計技術-并行處理技術,串行設計是最常見的一種設計。當一個功能模塊對輸入的處理是分步驟進行的,而且后一步驟只依賴于前一步驟的結果時,功能模塊的設計就需要采用串行設計的思想。 并行處理就是采用幾個處理流程同時處理到達的負載,提高處理的效率。并行處理

12、要求這些處理任務之間是不相關的,彼此之間是不互相依賴的,如果存在相互依賴就很難用并行處理的方法。,●,,第五章,,,VHDL高級設計技術-并行處理技術,,,●,,第五章,VHDL高級設計技術-并行處理技術,下面以一個復雜的乘法運算為例,說明并行處理技術的使用。 首先給出該運算的數(shù)學表達式 , 下圖給出了實現(xiàn)該功能的并行結構(該結構由XST綜合工具給出。通過使用多個乘法器,使得四個乘法運算可以

13、同時進行,但是需要注意的,這種速度的提高是以面積為代價的。,,●,,第五章,,,,VHDL高級設計技術-并行處理技術,●,,第五章,VHDL高級設計技術- 并行乘法加法的HDL描述,[例5-2]乘法加法運算的實現(xiàn)則用VHDL語言描述如下:Library ieee;Use ieee.std_logic_1164.all;Use ieee.std_logic_unsigned.all;Use ieee.std_logic_arit

14、h.all;Entity mult_add is Port( clk : in std_logic; a0,a1,a2,a3 : in std_logic_vector(7 downto 0); b0,b1,b2,b3 : in std_logic_vector(7 downto 0); y : out std

15、_logic_vector(15 downto 0));end multadd;,●,,第五章,VHDL高級設計技術- 并行乘法加法的HDL描述,architecture behav of mult_add isbegin process(clk) begin if rising_edge(clk) then y<=((a0*b0)+(a1*b1)+(a2*b2)+(a3*b3)); e

16、nd if; end process;end behav;,●,,第五章,VHDL高級設計技術-流水線設計技術的使用,采用這樣的流水線設計從宏觀上來看平均每一個事件的處理時間為一個單位時間。流水線的設計要求事件所分成的這n個步驟的處理時間是相同的,以保證流水線不會因為處理時間的不同而發(fā)生阻塞,見圖5.2.2.3。,●,,第五章,,VHDL高級設計技術-流水線設計技術的使用,采用流水線設計的好處實在不提高系統(tǒng)運行頻率的情況

17、下,能夠獲得更好的處理效率。受制造工藝的影響,提高系統(tǒng)頻率將會增加后端制造的難度。同時由于需要使用更先進的制造工藝,以及產(chǎn)品頻率的下降,將會帶來產(chǎn)品成本的提高。,●,,第五章,,VHDL高級設計技術-流水線設計技術的使用,如果假設在串行設計中系統(tǒng)處理效能正比于系統(tǒng)運行的頻率,那么對于流水線設計,在不提高系統(tǒng)運行頻率的情況下,n級流水線的處理效能可以用下面公式來描述: 處理效能=系統(tǒng)運行頻率×流水線級數(shù),●,

18、,第五章,,VHDL高級設計技術-流水線設計技術的使用,由此可見,在不提高系統(tǒng)運行頻率的情況下,提高流水線的級數(shù)將成倍地提高系統(tǒng)處理的效能。但是流水線的設計也是有一定的限制的: (1)只有對那些能分成n個步驟完成,并且對每個步驟都需要固定相同處理時間的操作來說才能采用流水線設計;,●,,第五章,,VHDL高級設計技術-流水線設計技術的使用(約束),(2)受硬件資源的限制,流水線的級數(shù)是有限制的; (3)對于

19、存在處理分支預測流水線的設計(廣泛應用于微處理器的設計中),流水線的處理效能還要取決于分支預測算法的設計。,●,,第五章,VHDL高級設計技術-流水線設計技術的使用,流水線能動態(tài)地提升器件性能,它的基本思想是對經(jīng)過多級邏輯的長數(shù)據(jù)通路進行重新構造,把原來必須在一個時鐘周期內完成的操作分成在多個周期內完成。,●,,第五章,,VHDL高級設計技術-流水線設計技術的使用,這種方法允許更高的工作頻率,因而提高了數(shù)據(jù)吞吐量。

20、 因為PLD的寄存器資源非常豐富,所以對PLD設計而言,流水線是一種先進的而又不耗費過多器件資源的結構。 但是采用流水線后,數(shù)據(jù)通道將會變成多時鐘周期,所以要特別考慮設計的其余部分,解決增加通路帶來的延遲。,●,,第五章,,,,VHDL高級設計技術-流水線設計技術的使用(特點),流水線的基本結構是將適當劃分的N個操作步驟串連起來。流水線操作的最大特點是數(shù)據(jù)流在各個步驟的處理,從時間上看是連續(xù)的;

21、 其操作的關鍵在于時序設計的合理安排、前后級接口間數(shù)據(jù)的匹配。如果前級操作的時間等于后級操作的時間,直接輸入即可; 如果前級操作時間小于后級操作時間,則需要對前級數(shù)據(jù)進行緩存,才能輸入到后級;如果前級操作時間大于后者,則需要串并轉換等方法進行數(shù)據(jù)分流,然后再輸入到下一級。,●,,第五章,,,,VHDL高級設計技術-流水線乘法器的VHDL描述,首先給出流水線乘法器的結構圖。從圖中可以看出,該流水線乘法器,在

22、每個時鐘節(jié)拍下,均可以得到一個乘法結果的輸出,乘法器的效率大大增加。,●,,第五章,,VHDL高級設計技術-流水線乘法器的VHDL描述,library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity multipliers_2 isgeneric(A_port_size : integer := 18; B_port_s

23、ize : integer := 18); port(clk : in std_logic; A : in unsigned (A_port_size-1 downto 0); B : in unsigned (B_port_size-1 downto 0); MULT : out unsigned ( (A_port_size+B_port_size-1) downto 0));

24、 attribute mult_style: string; attribute mult_style of multipliers_2: entity is "pipe_lut"; end multipliers_2;,●,,第五章,VHDL高級設計技術-流水線乘法器的VHDL描述,architecture beh of multipliers_2 is signal a_in

25、, b_in : unsigned (A_port_size-1 downto 0); signal mult_res : unsigned ( (A_port_size+B_port_size-1) downto 0); signal pipe_1,pipe_2,pipe_3 : unsigned ((A_port_size+B_port_size-1) downto 0); begin mul

26、t_res <= a_in * b_in;,●,,第五章,VHDL高級設計技術-流水線乘法器的VHDL描述,process (clk)begin if (clk'event and clk='1') then a_in <= A; b_in <= B; pipe_1 <= mult_res;

27、pipe_2 <= pipe_1; pipe_3 <= pipe_2; MULT <= pipe_3; end if;end process;end beh;,●,,第五章,VHDL高級設計技術-系統(tǒng)同步單元,PLD內部由大量的電路單元組成,但是這些單元通常都是由有限的幾種不同的邏輯單元或是邏輯門構成的。每一種邏輯單元包含輸入信號以及輸出信號,輸出信號又作為其他邏

28、輯單元的輸入信號。 從邏輯層面的抽象來看,一個PLD器件看成數(shù)量眾多的邏輯門構成的網(wǎng)絡,這些邏輯門的輸入和輸出通過金屬導線相連構成了完成特定邏輯功能或是算法的網(wǎng)絡。在PLD芯片內部,成百上千萬的邏輯門之間的信號傳遞決定了邏輯門的時延以及系統(tǒng)最后的運行速度。,●,,第五章,,,VHDL高級設計技術-系統(tǒng)同步單元,集成電路系統(tǒng)中有些信號的傳遞可以同時進行,但是有的信號的傳遞必須遵循嚴格的先后關系,這

29、樣才能保證系統(tǒng)運行結果的正確性(也就是說系統(tǒng)運行的結果是可以被重復的,系統(tǒng)在確定條件下運行的結果是確定的,而不是隨機的)。這就需要同步(Synchronization)來保證電路的各個部分的邏輯處理按照特定的順序進行。,●,,第五章,,VHDL高級設計技術-系統(tǒng)同步單元,同步電路和異步電路的區(qū)別在于電路觸發(fā)是否與驅動時鐘同步,從行為上講,就是所有電路是否在同一時鐘沿的觸發(fā)下同步地處理數(shù)據(jù)。 常用于區(qū)分二者的典型電路

30、就是同步復位和異步復位電路。同步復位的代碼中只有時鐘沿一個觸發(fā)條件,但是異步復位代碼中語句有復位和時鐘沿兩個觸發(fā)條件。,●,,第五章,,,VHDL高級設計技術-系統(tǒng)同步單元,通常情況下,同步電路采用的都是全同步,圖5.1.1(a)就是一個全同步的例子, 第一部分是由邏輯門組成的組合邏輯部分; 第二部分稱為時鐘驅動存儲單元;簡單的說就是寄存器,用于存儲組合邏輯的輸出結果;

31、 第三部分是時鐘分配網(wǎng)絡,這一部分特殊的電路不參與實際的運算,而是產(chǎn)生并分配參考時鐘,這一部分電路關心的是如何產(chǎn)生控制整個同步電路的時鐘并將時鐘正確地分配到每一個寄存器。,●,,第五章,,,,,VHDL高級設計技術-系統(tǒng)同步單元,同樣以圖5.1.1(a)為例,同步系統(tǒng)中包括由組合邏輯部分完成的邏輯運算以及由存儲單元對于邏輯運算結果的存儲: 實際的存儲過程由時鐘信號控制,并發(fā)生在信號從邏輯門的輸出端輸出穩(wěn)定后。該模

32、型中在每個時鐘周期的開始時,輸入信號以及存儲單元存儲的數(shù)據(jù)輸入組合邏輯,經(jīng)過一定邏輯門以及傳輸?shù)臅r延后,組合邏輯產(chǎn)生結果輸出并保持穩(wěn)定,在這個時鐘周期的末尾將輸出組合邏輯的結果并存入存儲單元,并在下一個時鐘周期重新參加組合邏輯的操作。,●,,第五章,,,VHDL高級設計技術-系統(tǒng)同步單元,●,,第五章,VHDL高級設計技術-系統(tǒng)同步單元,因此,數(shù)字系統(tǒng)可以看成是由一系列同時執(zhí)行的由組合邏輯構成的計算單元組成的。如圖5.1.1(b)所示的

33、本地數(shù)據(jù)通路就是對這種概念的抽象。從圖中可以看出,組合邏輯的時延被限制在一個時鐘周期內。在此本地數(shù)據(jù)通路起始端,寄存器Ri是存儲單元,用于在時鐘周期開始的時候給組合邏輯提供部分或是全部的輸入信號,同時在本地數(shù)據(jù)通路的末端,組合邏輯的結果在時鐘周期的末尾被正確地鎖存于寄存器Rf中。在本地數(shù)據(jù)通路中,每一個寄存器既是組合邏輯的輸入端—數(shù)據(jù)的提供源,也是組合邏輯的輸出端—輸出數(shù)據(jù)的接收者,這取決于系統(tǒng)處于運行的哪個階段。,●,,第五章,,VH

34、DL高級設計技術-系統(tǒng)同步單元,同步系統(tǒng)具有很好的可控性,這是因為系統(tǒng)時鐘提供了一種時間窗的機制保證可有足夠的時間讓信號在邏輯門以及邏輯門之間的連線上傳播,并最后成功鎖存于寄存器。 在設計系統(tǒng)和選擇正確的時鐘周期時,要滿足以下這兩個矛盾的需求: 1、希望系統(tǒng)的時鐘周期盡可能短,這樣在固定的時間內運算邏輯電路可以進行更多次的運算; 2、需要保證時鐘定義的時間窗足夠長以保證組合邏輯

35、的輸出信號都能在當前時鐘周期結束前以及下一個時鐘周期開始前到達目標寄存器。,●,,第五章,,,,,VHDL高級設計技術-系統(tǒng)同步單元,同步系統(tǒng)具有以下的優(yōu)點使得它成為數(shù)字集成電路系統(tǒng)的首選: (1)同步系統(tǒng)易于理解,并且同步系統(tǒng)中的各個參數(shù)以及變量都十分的明確,例如對于不同運算單元的執(zhí)行的先后順序是確定的; (2)同步系統(tǒng)可以減少非確定因素諸如組合邏輯的時延(受系統(tǒng)運行的環(huán)境、負載以及輸入信號的向量組合等

36、的影響)對系統(tǒng)的影響,這就保證了系統(tǒng)按照確定的行為運行,并且保證系統(tǒng)正確執(zhí)行了設計的算法;,●,,第五章,,,,VHDL高級設計技術-系統(tǒng)同步單元,(3)同步系統(tǒng)中不需要關心組合邏輯的輸出毛刺,因為寄存器只有在時鐘的有效沿上才對組合邏輯的輸出進行采樣,而同步系統(tǒng)可以確保這時組合邏輯的輸出已經(jīng)沒有毛刺。 (4)同步系統(tǒng)的狀態(tài)完全由存儲單元中所存儲的數(shù)據(jù)所決定,這大大簡化了系統(tǒng)的設計、調試以及測試。,●,,第五章,,,VHD

37、L高級設計技術-系統(tǒng)同步單元,當然,同步系統(tǒng)也存在著下面一些缺點使得今天的同步大規(guī)模集成電路設計變得更加富有挑戰(zhàn)性: (1)同步系統(tǒng)要求系統(tǒng)中的所有電路通路以其中最慢的一條寄存器到寄存器通路的標準來工作(這也就是說,同步系統(tǒng)中系統(tǒng)工作的速度取決于這些通路上具有最大時延的組合邏輯,包含這樣組合邏輯的通路稱為最壞情況下的關鍵路徑。,●,,第五章,,,VHDL高級設計技術-系統(tǒng)同步單元,在通常的大規(guī)模集成電路系統(tǒng)中,大多數(shù)的

38、路徑都具有更小的時延,也就是可以采用更小的時鐘周期。但是那些具有最大時延的路徑限制了系統(tǒng)時鐘周期的長短,同時也引入了對于整個系統(tǒng)速度的限制。有時候這種通路上時延的非對稱性是如此的富有戲劇性,以致于整個系統(tǒng)的速度僅僅取決于少數(shù)幾條速度非常慢的路徑)。,●,,第五章,,VHDL高級設計技術-系統(tǒng)同步單元,(2)同步系統(tǒng)中,時鐘信號需要被分配到數(shù)以萬計的分布于系統(tǒng)各個地方的存儲寄存器中,因此系統(tǒng)中很大一部分的面積以及耗散的電能都被用于時鐘分配

39、網(wǎng)絡—并不參與實際的計算功能的電路。 (3)同步系統(tǒng)的可靠性依賴于對于系統(tǒng)時延要求(包括組合邏輯以及由電路互聯(lián)線產(chǎn)生)的正確估計,如果系統(tǒng)不能滿足時延要求,將造成系統(tǒng)的不穩(wěn)定甚至是不可用。,●,,第五章,,,VHDL高級設計技術-系統(tǒng)同步單元,綜上所述,因此同步電路的設計應遵循以下準則: 1)盡量在設計中使用單時鐘,且走全局時鐘網(wǎng)絡。 在單時鐘設計中,很容易就將整個設計同步于驅動時鐘,使設計得到簡化

40、。全局時鐘網(wǎng)絡的時鐘是性能最優(yōu),最便于預測的時鐘,具有最強的驅動能力,不僅能保證驅動每個寄存器,且時鐘漂移可以忽略。在多時鐘應用中,要做到局部時鐘同步。,●,,第五章,,VHDL高級設計技術-系統(tǒng)同步單元,在實際工程中,應將時鐘信號和復位信號通過FPGA芯片的專用全局時鐘引腳送入,以獲得更高質量的時鐘信號。 2)盡量避免使用混合時鐘沿來采樣數(shù)據(jù)或驅動電路。 使用混合時鐘沿將會使靜態(tài)時序分析復雜,并導致電路工作頻

41、率降低。,●,,第五章,VHDL高級設計技術-系統(tǒng)同步單元,3)避免使用門控時鐘。 如果一個時鐘節(jié)點由組合邏輯驅動,那么就形成了門控時鐘,門控時鐘常用來減少功耗,但其相關的邏輯不是同步電路,即可能帶有毛刺,而任何的一點點小毛刺都可以造成D觸發(fā)器誤翻轉;此外,門控邏輯會污染時鐘質量,產(chǎn)生毛刺,并惡化偏移和抖動等指標。所以門控時鐘對設計可靠性有很大影響,應盡可能避免。 4)盡量不要在模塊內部使用計數(shù)器分頻產(chǎn)生所需時鐘。,

42、●,,第五章,VHDL高級設計技術-異步單元,但是在實際的設計過程中,不可避免的要接觸到異步單元,比如在設計模塊與外圍芯片的通信中,跨時鐘域的情況經(jīng)常不可避免。 異步時序單元指的是在設計中有兩個或兩個以上的時鐘,且時鐘之間是不同頻率或同頻不同相的關系。而異步時序設計的關鍵就是把數(shù)據(jù)或控制信號正確地進行跨時鐘域傳輸。 每一個觸發(fā)器都有其規(guī)定的建立(setup)和保持(hold)時間參數(shù)。在這個時間

43、參數(shù)內,輸入信號在時鐘的上升沿是不允許發(fā)生變化的。如果信號的建立時間中對其進行采樣,得到的結果將是不可預知的,即亞穩(wěn)態(tài)。,●,,第五章,,,,VHDL高級設計技術-異步單元,●,,第五章,VHDL高級設計技術-異步單元,常用的同步策略,如雙鎖存器法、結繩法等,而作為異步時序設計中的重點—異步FIFO設計。 為了避免亞穩(wěn)態(tài)問題,通常采用的方法是雙鎖存器法,即在一個信號進入另一個時鐘域之前,將該信號用兩個鎖存器連續(xù)鎖存兩

44、次,最后得到的采樣結果就可以消除亞穩(wěn)態(tài)問題。>>b_clka_clkdata_datb_dat11b_dat2>b_dat1數(shù)據(jù)變化靜態(tài)同步a_datb_dat2,●,,第五章,,,VHDL高級設計技術-邏輯結構的設計方法,邏輯結構主要分為鏈狀結構(Chain Architecture)和樹狀結構(Tree Architecture)。一般來講,鏈狀結構具有較大的時延,后者具有較小的時延。所謂的鏈狀結構主要指程

45、序是串行執(zhí)行的,樹狀結構是串并結合的模式,具體如例3-7所示。表3-3給出具有鏈狀結構和樹狀結構的4輸入加法器的實現(xiàn)實例。,●,,第五章,,VHDL高級設計技術-邏輯結構的設計方法,●,,第五章,VHDL高級設計技術-邏輯結構的設計方法,從上例可以明顯看出樹狀結構的優(yōu)勢,它能夠在同等資源的情況下,縮減運算時延,從而提高電路吞吐量以節(jié)省面積。在書寫代碼時,要盡量采用樹狀結構,以減少時間延遲。,●,,第五章,,VHDL高級設計技術-i

46、f和case語句的使用,if語句指定了一個有優(yōu)先級的編碼邏輯,而case語句生成的邏輯是并行的,不具有優(yōu)先級。 if語句可以包含一系列不同的表達式,而case語句比較的是一個公共的控制表達式。 if-else結構速度較慢,但占用的面積小,如果對速度沒有特殊要求而對面積有較高要求,則可用if -else語句完成編解碼。 case結構速度較快,但占用面積較大,所以用case語句實現(xiàn)對速度要求較高

47、的編解碼電路。,●,,第五章,VHDL高級設計技術-if和case語句的使用,嵌套的if語句如果使用不當,就會導致設計的更大延時,為了避免較大的路徑延時,最好不要使用特別長的嵌套if結構。如想利用if語句來實現(xiàn)那些對延時要求苛刻的路徑時,應將最高優(yōu)先級給最遲到達的關鍵信號。 有時為了兼顧面積和速度,可以將if和case語句合用。,●,,第五章,VHDL高級設計技術-關鍵路徑信號處理,在VHDL設計中,經(jīng)常會遇到由于信號

48、路徑過長或信號來的比較晚,從而造成建立時間不夠的情況。這種引起電路建立時間不夠的信號路徑就稱為關鍵路徑。在復雜電路設計必須有效地處理關鍵信號,盡量減少其時延,提高電路的工作頻率。,●,,第五章,VHDL高級設計技術-簡單組合電路關鍵路徑的提取方法,簡單組合電路的關鍵路徑提取方法就是拆分邏輯,將復雜邏輯變成多個簡單組合電路的進一步組合,縮減關鍵信號的邏輯級數(shù),如例3-10所示。例3-10 簡單關鍵電路的提取實例。對于語句:

49、 y <= a and b and c or d and e and b; 從中可以看出,信號b為關鍵信號。現(xiàn)將其簡單路徑計算,再經(jīng)過關鍵路徑邏輯。 temp<= a and b and c and d; y = b and temp; 通過關鍵路徑提取,將信號b的路徑由2級變成1級。拆分邏輯可通過復制邏輯,縮短那些組合路徑長的關鍵信號的路徑延遲,從

50、而提高工作頻率。,●,,第五章,VHDL高級設計技術-復雜觸發(fā)塊中關鍵路徑的提取方法,對于觸發(fā)模塊中時間要求非常緊的信號,需要通過分布提取方法,讓關鍵路徑先行,保證改寫后的描述與原觸發(fā)塊邏輯等效。例3-11給出了提取并改善always模塊中關鍵信號的實例。,●,,第五章,VHDL高級設計技術-復雜觸發(fā)塊中關鍵路徑的提取方法,Process(w,x,y,z,in1,in2) Begin if(w=’0’) then

51、 if(x and (not(y and z))) then out<=in1; else out<=in2; end if; elsif(y and z) then out<=in1; else out<=’0’; end if; end process;,

52、●,,第五章,VHDL高級設計技術-復雜觸發(fā)塊中關鍵路徑的提取方法,其中,若z=0,則原代碼等效于if (!w) out <= in1; else out< =’0’;。若z=1,則源代碼等效于if (!w && x && !y ) out<= in1; else if(!w && x && y) out<= in2; else out<=

53、out;。對于信號y也有類似的分析結果,因此y、z都是關鍵信號。因此通過優(yōu)先首先計算關鍵路徑,改寫為:,●,,第五章,VHDL高級設計技術-復雜觸發(fā)塊中關鍵路徑的提取方法,emp = y and z; Process(w,x,y,z,in1,in2) Begin if(temp=’0’) then if(x and (not w)) then Out<=in1; else Out<=in2;

54、 end if; elsif(temp=’1’) then out<=in1; else out<=’0’; end process;,●,,第五章,VHDL高級設計技術-由if語句造成的意外的鎖存器,【例3-12】給出使用if語句,但缺乏else分支而造成鎖存器的情況。 Process(a,data) Begin If(a=1) then data_out<=data

55、_in; end if;End process;,●,,第五章,VHDL高級設計技術-由if語句造成的意外的鎖存器,【例3-12】給出了使用if語句,不缺少else分支而不會造成鎖存器的情況。Process(a,data) Begin If(a=1) then data_out<=data_in; else data_out<=’0’; end if;End pro

56、cess;,●,,第五章,VHDL高級設計技術-由case語句造成的鎖存器,【例3-13】給出了在process塊中使用case語句,由于缺乏others分支的VHDL描述。 Process(a,data_in1,data_in2)begin case a is when “00”=> data_out data_out; end case;end process;,●,,第五章,VHDL高級設計技術-

57、由case語句造成的鎖存器,【例3-13】給出了在process塊中使用case語句,加入others分支的VHDL描述。 Process(a,data_in1,data_in2)begin case a is when “00”=> data_out data_outdata_out<=’0’; end case;end process;,●,,第五章,VHDL高級設計技術-模塊劃分的設計原則,自頂

58、向下的層次化設計方法中最關鍵的工作就是模塊劃分,將一個很大的工程合理地劃分為一系列功能獨立的部分,且具備良好的協(xié)同設計能力,以便快速地實現(xiàn)整個設計。 此外,模塊劃分直接影響到所需的邏輯資源、時序要求以及實現(xiàn)效率。其基本的原則如下所示:,●,,第五章,VHDL高級設計技術-模塊劃分的設計原則,1、信息隱蔽、抽象原則 上一層模塊只負責為下一層模塊的工作提供原則和依據(jù),并不規(guī)定下層模塊的具體行為,以保證各

59、個模塊的相對獨立性和內部結構的合理性,使得模塊之間層次分明,易于理解、實施和維護。 2、明確性原則 每個模塊必須功能明確,接口明確消除多重功能和無用接口,整個設計過程中應具有統(tǒng)一的命名規(guī)范。,●,,第五章,VHDL高級設計技術-模塊劃分的設計原則,3、模塊時鐘域區(qū)分原則 在設計中,經(jīng)常采用多時鐘設計,必然存在亞穩(wěn)態(tài),如果處理不當,將會給設計的可靠性帶來極大的隱患。這里需要通過

60、異步FIFO以及雙口RAM來建立接口,盡量避免讓信號直接跨越不同時鐘域。此外,由于時鐘頻率不同,其時序約束需求也不同,可以將低頻率時鐘域劃分到同一模塊,如多時鐘路徑等,則可以讓綜合器盡量節(jié)約面積。,●,,第五章,VHDL高級設計技術-模塊劃分的設計原則,4、資源復用原則 在HDL設計中,要將可以復用的邏輯或者相關邏輯盡量放在同一模塊,不僅可以節(jié)省硬件資源,還有利于優(yōu)化關鍵路徑。但在實際中,不能為了資源復用而將

61、存儲器邏輯混用。因為FPGA芯片生產(chǎn)商提供了各類存儲器的硬件原語,使設計所需資源最小化。從概念上講,模塊越大越利于資源共享和復用,但龐大的模塊在仿真驗證時需要較長的時間和較高的PC機配置,不利于修改,無法使用增量設計模式。,●,,第五章,VHDL高級設計技術-模塊劃分的設計原則,5、同步時序模塊的寄存器劃分原則 即在設計時,盡量將模塊中的同步時序邏輯輸出信號以寄存器的形式送出,便于綜合工具區(qū)分時序和組合邏輯;

62、并且時序輸出打寄存器符合流水線設計思想,能工作在更高的頻率,極大地提高模塊吞吐量。,●,,第五章,VHDL高級設計技術-IP核技術,現(xiàn)在的FPGA設計,規(guī)模巨大而且功能復雜,設計人員不可能從頭開始進行設計。現(xiàn)在采用的方式是,在設計中盡可能使用現(xiàn)有的功能模塊,除非沒有現(xiàn)成的模塊可以使用時,設計人員才需要自己花時間和精力設計新的模塊。 這些現(xiàn)有的功能模塊,EDA設計人員把他們通常稱為IP(intellectual Proper

63、ty)核。IP核來源主要有三個方面: (1)前一個設計創(chuàng)建的模塊; (2)FPGA生產(chǎn)廠商的提供; (3)第三方IP廠商的提供。,●,,第五章,VHDL高級設計技術-IP核的分類,IP(Intelligent Property)核是具有知識產(chǎn)權核的集成電路芯核總稱,是經(jīng)過反復驗證過的、具有特定功能的宏模塊,與芯片制造工藝無關,可以移植到不同的半導體工藝中。到了SOC階段,IP核設計已成為ASIC電路設

64、計公司和FPGA提供商的重要任務,也是其實力體現(xiàn)。 對于FPGA開發(fā)軟件,其提供的IP核越豐富,用戶的設計就越方便,其市場占用率就越高。目前,IP核已經(jīng)變成系統(tǒng)設計的基本單元,并作為獨立設計成果被交換、轉讓和銷售。,●,,第五章,VHDL高級設計技術-IP核的分類,從IP核的提供方式上,通常將其分為軟核、硬核和固核這3類。從完成IP核所花費的成本來講,硬核代價最大;從使用靈活性來講,軟核的可復用使用性最高。,●,,第五章

65、,VHDL高級設計技術-IP核的分類(軟核),軟核在EDA設計領域指的是綜合之前的寄存器傳輸級(RTL)模型;具體在FPGA設計中指的是對電路的硬件語言描述,包括邏輯描述、網(wǎng)表和幫助文檔等。軟核只經(jīng)過功能仿真,需要經(jīng)過綜合以及布局布線才能使用。其優(yōu)點是靈活性高、可移植性強,允許用戶自配置;缺點是對模塊的預測性較低,在后續(xù)設計中存在發(fā)生錯誤的可能性,有一定的設計風險。軟核是IP核應用最廣泛的形式。,●,,第五章,VHDL高級設計技術-IP

66、核的分類(固核),固核在EDA設計領域指的是帶有平面規(guī)劃信息的網(wǎng)表;具體在FPGA設計中可以看做帶有布局規(guī)劃的軟核,通常以RTL代碼和對應具體工藝網(wǎng)表的混合形式提供。將RTL描述結合具體標準單元庫進行綜合優(yōu)化設計,形成門級網(wǎng)表,再通過布局布線工具即可使用。和軟核相比,固核的設計靈活性稍差,但在可靠性上有較大提高。目前,固核也是IP核的主流形式之一。,●,,第五章,VHDL高級設計技術-IP核的分類(硬核),硬核在EDA設計領

67、域指經(jīng)過驗證的設計版圖;具體在FPGA設計中指布局和工藝固定、經(jīng)過前端和后端驗證的設計,設計人員不能對其修改。不能修改的原因有兩個: 首先是系統(tǒng)設計對各個模塊的時序要求很嚴格,不允許打亂已有的物理版圖; 其次是保護知識產(chǎn)權的要求,不允許設計人員對其有任何改動。 IP硬核的不許修改特點使其復用有一定的困難,因此只能用于某些特定應用,使用范圍較窄。,●,,第五章,VHDL高級設計技術-IP核的

68、優(yōu)化,最常見到的情況就是IP核的廠商從RTL級開始對IP進行人工的優(yōu)化。EDA的設計用戶可以通過下面的幾種途徑購買和使用IP模塊: (1)IP模塊的RTL代碼; (2)未布局布線的網(wǎng)表級IP核; (3)布局布線后的網(wǎng)表級IP核。,●,,第五章,VHDL高級設計技術-未加密的RTL級IP,在很少的情況下,EDA設計人員可以購買未加密的源代碼RTL級的IP模塊,然后將這些IP模塊集成到設計的RTL級代碼中。這些

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論