(四)VHDL語言構(gòu)造體的描述方式100312(67)_第1頁
(四)VHDL語言構(gòu)造體的描述方式100312(67)_第2頁
(四)VHDL語言構(gòu)造體的描述方式100312(67)_第3頁
(四)VHDL語言構(gòu)造體的描述方式100312(67)_第4頁
(四)VHDL語言構(gòu)造體的描述方式100312(67)_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、4.1 4.1 構(gòu)造體的行為描述方式構(gòu)造體的行為描述方式 第四章第四章 VHDL語言構(gòu)造體的描述方式語言構(gòu)造體的描述方式4.2 4.2 構(gòu)造體的寄存器傳輸構(gòu)造體的寄存器傳輸(RTL)(RTL)描述方式描述方式4.3 4.3 構(gòu)造體的結(jié)構(gòu)描述方式構(gòu)造體的結(jié)構(gòu)描述方式習題習題4.1.1 4.1.1 代入語句代入語句4.1 構(gòu)造體的行為描述方式構(gòu)造體的行為描述方式4.1.2 4.1.2 延時語句延時語句4.1.3 4.1.3 多驅(qū)動器描述語多驅(qū)動器描述語句句4.1.4 GENERIC4.1.4 GENERIC語句語句 行為描述輸入與輸出間轉(zhuǎn)換的行為,行為描述輸入與輸出間轉(zhuǎn)換的行為,不需包含任何結(jié)構(gòu)信

2、不需包含任何結(jié)構(gòu)信息息,它對設(shè)計實體按算法的路徑來描述。行為描述在,它對設(shè)計實體按算法的路徑來描述。行為描述在EDA工程中通常被稱為高層次描述,設(shè)計工程師只需要注意正確工程中通常被稱為高層次描述,設(shè)計工程師只需要注意正確的實體行為、準確的函數(shù)模型和精確的輸出結(jié)果就可以了,的實體行為、準確的函數(shù)模型和精確的輸出結(jié)果就可以了,無需關(guān)注實體的電路組織和門級實現(xiàn)無需關(guān)注實體的電路組織和門級實現(xiàn)。例如: a=b; 該語句的功能是a得到得到b的值的值。當該語句有效時,現(xiàn)行信號b的值將代入到信號a。只要b的值有一個新的變化,那么該語句將被執(zhí)行。所以,b是該代入語句的一個是該代入語句的一個敏感敏感量量。 4.

3、1.1 代入語句代入語句信號量 = 敏感信號量表達式;u代入語句最普遍的格式例如: z=a NOR (b NAND c);式中有3個敏感量a,b,c。無論哪一個敏感量發(fā)生新的變化,該代入語句都將被執(zhí)行。u代入語句是VHDL語言中進行行為描述行為描述的最基本最基本的語句。例: a=b AFTER 5 ns; 該語句表示,當b發(fā)生新的變化5 ns以后才被代入到信號a。信號量 = 敏感信號量表達式 AFTER 時間值;u實際邏輯門電路,存在固有延時固有延時,當輸入端發(fā)生變化以后,門輸出端新的輸出總要比輸入端的變化延時若干時間輸出總要比輸入端的變化延時若干時間,門的這種特性就可以用具有延時時間的代入語

4、句來描述。具有延時時間的代入語句: ENTITY and2 ISPORT (a,b : IN BIT; c : OUT BIT);END and2;ARCHITECTURE and2_behav OF and2 ISBEGIN c=a AND b AFTER 5 ns;END and2_behav; 【例例4-1】2輸入端與門的行為描述。 圖4-1 四選一電路的邏輯原理圖四選一電路的行為描述1、電路圖【例例4-2】b aq0 00 101 1i0i1i2i32、真值表 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNS

5、IGNED.ALL;ENTITY mux4 ISPORT (i0,i1,i2,i3,a,b : IN STD_LOGIC; q : OUT STD_LOGIC);END mux4;ARCHITECTURE behav OF mux4 ISSIGNAL sel : INTEGER; -定義一個信號作為中間量BEGINWITH sel SELECTq=i0 AFTER 10 ns WHEN 0, 1、程序WITH sel SELECT q=i0 AFTER 10 ns WHEN 0, i1 AFTER 10 ns WHEN 1, i2 AFTER 10 ns WHEN 2, i3 AFTER 10

6、 ns WHEN 3, X AFTER 10 ns WHEN OTHERS; sel= 0 WHEN a=0 AND b=0 ELSE 1 WHEN a=1 AND b=0 ELSE 2 WHEN a=0 AND b=1 ELSE 3 WHEN a=1 AND b=1 ELSE 4;END behav; 輸出賦值選擇信號賦值選擇語句條件代入語句注:X 是不確定的值 在VHDL語言中,慣性延時是缺省的缺省的,即在語句中如果不作特別說明,產(chǎn)生的延時一定是慣性延時。這是因為大多數(shù)器件在行為仿真時都會呈現(xiàn)這種慣性延時在行為仿真時都會呈現(xiàn)這種慣性延時。 在慣性模型中,系統(tǒng)或器件輸出信號要發(fā)生變化必須有一

7、系統(tǒng)或器件輸出信號要發(fā)生變化必須有一段時間的延時,段時間的延時,這段延時時間常稱為系統(tǒng)或器件的慣性或稱慣性延時。4.1.2 延時語句延時語句 在VHDL語言中存在兩種延時類型:慣性延時慣性延時和傳輸延時傳輸延時。這兩種延時常用于VHDL語言的行為描述方式。1. 慣性延時慣性延時 慣性延時有一個重要的特點重要的特點,即當一個系統(tǒng)或器件的輸入信輸入信號變化周期號變化周期小于小于系統(tǒng)或器件的慣性系統(tǒng)或器件的慣性(或慣性延時或慣性延時)時,其輸出將保時,其輸出將保持不變持不變。 圖中若門電路的慣性延時時間為20 ns,當該門電路的輸入端a輸入一個10 ns的脈沖信號時,其輸出端b的輸出仍維持低電平,仍

8、維持低電平,沒有發(fā)生變化沒有發(fā)生變化。對于慣性時間等于20 ns的門電路,為使其實現(xiàn)實現(xiàn)正常的功能正常的功能,輸入信號的變化周期一定要大于輸入信號的變化周期一定要大于20 ns。 01020304050 nsbaba AFTER 20 ns 幾乎所有器件都存在慣性延時幾乎所有器件都存在慣性延時,因此,硬件電路的設(shè)計人員為了逼真地仿真硬件電路的實際工作情況,在代入語在代入語句中總要加上慣性延時時間的說明句中總要加上慣性延時時間的說明,例如:b=a AFTER 10 ns; 慣性延時說明只在慣性延時說明只在行為仿真行為仿真時有意義時有意義,邏輯綜合時將被邏輯綜合時將被忽略,或者在邏輯綜合前必須去掉

9、延時說明忽略,或者在邏輯綜合前必須去掉延時說明。 在VHDL語言中,傳輸延時不是缺省的不是缺省的,必須在語句中明明確說明確說明。傳輸延時常用于描述總線延時、連接線的延時及常用于描述總線延時、連接線的延時及ASIC芯片中的路徑延時芯片中的路徑延時。2. 傳輸延時傳輸延時 具有傳輸延時的代入語句具有傳輸延時的代入語句如下所示,“TRANSPORT”是專門用于說明傳輸延時的前置詞前置詞。 信號量 = TRANSPORT 敏感信號量 AFTER 時間值;例:b = TRANSPORT a AFTER 20 ns;01020304050 nsbabTRANSPORT a AFTER 20 ns從圖中可以

10、看出,當有10 ns的脈沖波形輸入時,經(jīng)20 ns傳輸傳輸延時延時以后,在輸出端就產(chǎn)生10 ns的脈沖波形。也就是說,輸出端的信號除延時規(guī)定時間外,將完全復(fù)現(xiàn)輸入端的輸入波形,而不管輸入波形的形狀和寬窄如何不管輸入波形的形狀和寬窄如何。 在VHDL語言中,創(chuàng)建一個驅(qū)動器可以由一條信號代入語句創(chuàng)建一個驅(qū)動器可以由一條信號代入語句來實現(xiàn)來實現(xiàn)。當有多個信號多個信號并行輸出時,在構(gòu)造體內(nèi)部必須利用代入語句,對每個信號創(chuàng)建一個驅(qū)動器。這樣在構(gòu)造體內(nèi)部就會有多多個代入語句個代入語句。在設(shè)計邏輯電路時,有時會碰到這樣的情況,多個多個驅(qū)動器的輸出將連接到同一條信號線上驅(qū)動器的輸出將連接到同一條信號線上。考慮

11、這種情況,多驅(qū)動器的構(gòu)造體應(yīng)按如下方式描述:ARCHITECTURE sample OF sample ISBEGINa=b AFTER 5 ns;a=d AFTER 5 ns;END sample; 4.1.3 多驅(qū)動器描述語句多驅(qū)動器描述語句aba=ba = baca=ca = cabca=?a =?電路圖表達式VHDL語句單驅(qū)動多驅(qū)動4.1.3 多驅(qū)動器描述語句多驅(qū)動器描述語句 多驅(qū)動時信號信號a到底應(yīng)該取何值,這一點在到底應(yīng)該取何值,這一點在標準的數(shù)據(jù)類型標準的數(shù)據(jù)類型中是沒有定義的中是沒有定義的。為了解決多個驅(qū)動器同時驅(qū)動一個信號的信號行為描述,在包集合STD_LOGIC_1164中

12、專門定義了一種描述判決函數(shù)判決函數(shù)的數(shù)據(jù)類型,稱判決函數(shù)子類型判決函數(shù)子類型。所謂判決函數(shù)判決函數(shù),就是在多個驅(qū)動器同時驅(qū)動一個信號時,定義輸出哪一個值的就是在多個驅(qū)動器同時驅(qū)動一個信號時,定義輸出哪一個值的函數(shù)函數(shù)。PACKAGE STD_LOGIC_1164 IS TYPE STD_ULOGIC IS (U,X,0,1,Z,W,L,H,_);TYPE STD_ULOGIC_VECTOR IS ARRAY (NATURAL RANGE)OF STD_ULOGIC; - -判決函數(shù)說明-FUNCTION resolved (s:STD_ULOGIC_VECTOR) RETURN STD_ULO

13、GIC;- -子類型數(shù)據(jù)說明-SUBTYPE STD_LOGIC IS resolved STD_ULOGIC; TYPE STD_LOGIC_VECTOR IS ARRAY(NATURAL RANGE) OF STD_LOGIC; END STD_LOGIC_1164 IS 【例例4-3】包包集集合合標標題題包集合STD_LOGIC_1164中關(guān)于判決函數(shù)描述的部分源程序。P372 (二版P292)P292P375PACKAGE STD_LOGIC_1164 IS TYPE STD_ULOGIC IS (U,X,0,1,Z,W,L,H,_);TYPE STD_ULOGIC_VECTOR IS

14、 ARRAY (NATURAL RANGE) OF STD_ULOGIC; - -判決函數(shù)說明-FUNCTION resolved (s:STD_ULOGIC_VECTOR) RETURN STD_ULOGIC;- -子類型數(shù)據(jù)說明-SUBTYPE STD_LOGIC IS resolved STD_ULOGIC; TYPE STD_LOGIC_VECTOR IS ARRAY(NATURAL RANGE) OF STD_LOGIC; END STD_LOGIC_1164 IS 【例例4-3】包包集集合合標標題題語句解讀:SUBTYPE 子類型名子類型名 IS 數(shù)據(jù)類型名數(shù)據(jù)類型名 范圍范圍FU

15、NCTION 函數(shù)名函數(shù)名(參數(shù)參數(shù)1; ) RETURN 數(shù)據(jù)類型名數(shù)據(jù)類型名TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS ARRAY 范圍范圍 OF 原數(shù)據(jù)類型名;原數(shù)據(jù)類型名;枚舉型數(shù)據(jù)類型定義枚舉型數(shù)據(jù)類型定義:TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS (元素,元素,元素,元素,) ;TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS ARRAY 范圍范圍 OF 原數(shù)據(jù)類型名;原數(shù)據(jù)類型名;PACKAGE BODY STD_LOGIC_1164 IS TYPE stdlogic_table IS ARRAY (std_ulogic , std_ulogic) OF std_ulogic; CONSTANT re

16、solution_table : stdlogic_table := ( - - | U X 0 1 Z W L H - - | |(U,U,U,U,U,U,U,U,U), - - |U|(U, X,X,X,X,X,X,X,X), - - |X|(U, X,0,X, 0,0, 0,0,X), - - |0|(U, X,X,1,1, 1,1,1,X), - - |1|(U, X,0,1,Z,W,L,H,X),- - |Z|(U, X, 0, 1, W, W, W, W, X),- - |W|(U,X,0,1,L,W,L,W,X),- - |L|(U,X,0,1,H,W,W,H,X),- - |H

17、|(U,X,X,X,X,X,X,X,X),- - |-| );包包集集合合體體P375FUNCTION resolved (s:STD_ULOGIC_VECTOR) RETURN STD_ULOGIC IS VARIABLE result : STD_ULOGIC:= Z;- 初值為高阻狀態(tài)初值為高阻狀態(tài)BEGIN IF (sLENGTH=1) THEN RETURN s(sLOW); ELSE FOR i IN s RANGE LOOP result := resolution_table(result,s(i); END LOOP; END IF; RETURN result;END re

18、solved; END STD_LOGIC_1164; 判決函數(shù)本體LENGTH 范圍個數(shù)RANGE 范圍LOW 下限值信號的屬性P120查表resolution_table 在例4-3(1164)中定義了判決函數(shù),當系統(tǒng)要確定多驅(qū)動器輸出的狀態(tài)時,可調(diào)用該函數(shù)調(diào)用該函數(shù),例如: FUNCTION resolved (s:STD_ULOGIC_VECTOR) RETURN STD_ULOGIC; 語句中s是位矢量,其位長度就是多驅(qū)動器輸出的信號數(shù),是位矢量,其位長度就是多驅(qū)動器輸出的信號數(shù),每個取值為每個取值為(U,X,0,1,Z,W,L,H,_) 之一。如:s =(0,1,X)s1=reso

19、lved(s)=“X”s =(0,Z,Z)s1=resolved(s)=“0”調(diào)用程序為: VARIABLE s1: STD_ULOGIC s1 := resolved(s); result := resolution_table(result,s(i);如:如:s =(0,1,X)s1=resolved(s)= =“X”result := resolution_table(result,s(i);函數(shù)調(diào)用函數(shù)調(diào)用- - | U X 0 1 Z W L H - - | |(U,U,U,U,U,U,U,U,U),- - |U|(U, X,X,X,X,X,X,X,X),- - |X|(U, X,0

20、,X, 0,0, 0,0,X), - - |0|(U, X,X,1,1, 1,1,1,X), - - |1|(U , X,0,1,Z,W,L,H,X),- - |Z|(U, X, 0, 1, W, W, W, W, X),- - |W|(U,X,0,1,L,W,L,W,X),- - |L|(U,X,0,1,H,W,W,H,X),- - |H|(U,X,X,X,X,X,X,X,X),- - |-| VARIABLE result : STD_ULOGIC:= Z; 初值為高阻狀態(tài)判別過程:第一次: Z 和和0 0 第二次: 0和和1 X第三次: X和和X X GENERIC語句常用于不同層次之間

21、的信息傳遞常用于不同層次之間的信息傳遞。例如,在數(shù)據(jù)類型說明中用于位矢量長度、數(shù)組的位長以及器件的延時時間等參數(shù)的傳遞。 該語句所涉及的數(shù)據(jù)除整數(shù)類型以外,如涉及其他類型的數(shù)數(shù)據(jù)除整數(shù)類型以外,如涉及其他類型的數(shù)據(jù)則不能進行邏輯綜合據(jù)則不能進行邏輯綜合。因此,該語句主要用于行為描述方式。主要用于行為描述方式。4.1.4 GENERIC語句語句 使用GENERIC語句易于使器件模塊化和通用化易于使器件模塊化和通用化。例如,要描述二輸入與門的行為。二輸入與門的邏輯關(guān)系是明確的,但是由于在集成時材料和工藝不同材料和工藝不同,不同類型的二輸入與門的上升沿、下降沿等參數(shù)是不一致上升沿、下降沿等參數(shù)是不一

22、致的。為簡化設(shè)計和供其他設(shè)計人員方便地調(diào)用,需要開發(fā)一個通用的通用的二輸入與門的程序模塊。在該模塊中某些參數(shù)是待定的,在仿真或邏輯綜合時,只要用用GENERIC語句將待定參數(shù)初始化語句將待定參數(shù)初始化后,即可實現(xiàn)各種類型二輸入與門的仿真或邏輯綜合。4.1.4 GENERIC語句語句 ENTITY and2 IS (rise,fall:TIME);PORT (a,b: IN BIT; c: OUT BIT);END and2;ARCHITECTURE behave OF and2 ISSIGNAL internal : BIT;BEGINinternal=a AND b;c=internal A

23、FTER (rise) WHEN internal=1 ELSEinternal AFTER (fall);END behave; 【例4-4】一個通用的二輸入與門。上升沿和下降沿時間。 例4-4描述了一個通用的二輸入與門的實體。利用該實體和使用GENERIC和和GENERIC MAP語句語句,能夠?qū)崿F(xiàn)不同延時器件的電路模塊,如圖4-4,程序如例4-5。&inainbU0U0_C&U2&U1incindU1_Cq圖4-4 由3個不同延時不同延時的二輸入與門構(gòu)成的電路 ENTITY sample ISGENERIC (rise,fall:TIME);PORT (ina,i

24、nb,inc,ind:IN BIT;q:OUT BIT);END sample;ARCHITECTURE behave OF sample ISCOMPONENT and2GENERIC (rise,fall:TIME);PORT (a,b : IN BIT; c : OUT BIT);END COMPONENT; 【例4-5】加入一個元件SIGNAL U0_C,U1_C : BIT;BEGINU0:and2 GENERIC MAP (5 ns,5 ns)PORT MAP (ina,inb,U0_C);U1:and2 GENERIC MAP (8 ns,10 ns)PORT MAP (inc,

25、ind,U1_C);U2:and2 GENERIC MAP (9 ns,11 ns)PORT MAP (U0_C,U1_C,q);END behave; GENERIC MAP 是GENERIC 的具體參數(shù)的映射-定義二個信號 由例4-5可以看到,利用GENERIC MAP語句語句的功能,在使用同一個and2實體的情況下,可使得U0,U1,U2 三個與門的上升時間和下降時間具有不同的值上升時間和下降時間具有不同的值。U0的上升時間為5 ns,U1的上升時間為8 ns,U2的上升時間為9 ns;而U0的下降時間為5 ns,U1的下降時間為10 ns,U2的下降時間為11 ns。如此靈活地改變參數(shù)

26、就可以完全滿足實際設(shè)計中的要求。 還有其他許多語句也用于構(gòu)造體的行為描述方式,如 GUARDED BLOCK (衛(wèi)式塊衛(wèi)式塊)等。VHDL語言之所以優(yōu)于優(yōu)于目前已開發(fā)的各種硬件描述語言,其主要的一個優(yōu)點優(yōu)點是,它具有豐富豐富的語句和語法,能在的語句和語法,能在高層次高層次上對系統(tǒng)的行為進行描述和仿真上對系統(tǒng)的行為進行描述和仿真。 4.2.1 RTL4.2.1 RTL描述方式的特點描述方式的特點4.2 構(gòu)造體的寄存器傳輸構(gòu)造體的寄存器傳輸(RTL)描述方式描述方式4.2.2 4.2.2 使用使用RTLRTL描述方式應(yīng)注意的幾個問題描述方式應(yīng)注意的幾個問題4.2.1 RTL描述方式的特點描述方式的

27、特點 RTL描述方式是一種明確規(guī)定寄存器描述的方法一種明確規(guī)定寄存器描述的方法。由于受邏輯綜合的限制,在采用RTL描述方式時,所使用的VHDL語言的語句有一定限制語句有一定限制,在RTL描述方式中要么采用寄存器硬件要么采用寄存器硬件的一一對應(yīng)的的一一對應(yīng)的直接描述直接描述,要么采用寄存器之間的要么采用寄存器之間的功能描述功能描述。4.2.1 RTL描述方式的特點描述方式的特點 采用行為方式描述的VHDL語言程序,一般不能進行邏輯綜合。RTL描述方式才是正真能邏輯綜合能邏輯綜合的描述方式, RTL描述方式有時也稱為數(shù)據(jù)流描述數(shù)據(jù)流描述方式。圖4-5 二選一電路的原理圖 二選一電路input(0)

28、input(1)sely 例7、例8 是采用功能描述和直接描述兩種方法,描述如圖的二選一電路。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux2 ISPORT (input : IN STD_LOGIC_VECTOR (1 DOWNTO 0); sel : IN STD_LOGIC; y : OUT STD_LOGIC);END mux2;ARCHITECTURE rtl OF mux2 ISBEGINy=input(0) WHEN sel=1 ELSE input(1);E

29、ND rtl; 【例4-7】功能描述對二選一電路的功能描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux2 ISPORT (input:IN STD_LOGIC_VECTOR (1 DOWNTO 0); sel:IN STD_LOGIC; y:OUT STD_LOGIC);END mux2;ARCHITECTURE rtl OF mux2 ISBEGINy=input(0) WHEN sel=1 ELSE input(1);END rtl; 【例4-7】功能描述對二選一電路

30、的功能描述 rtl的功能描述,有時與行的功能描述,有時與行為描述不太好區(qū)分,有些書上為描述不太好區(qū)分,有些書上把把能進行綜合能進行綜合的稱為的稱為rtl描述,描述,不能進行綜合不能進行綜合的稱行為描述,的稱行為描述,隨著綜合器的改進,越來越多隨著綜合器的改進,越來越多的行為描述可以進行綜合了。的行為描述可以進行綜合了。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGEND.ALL;ENTITY mux2 IS PORT (in0,in1,sel : IN STD_LOGIC; y : OUT STD_LOGIC

31、);END mux2;ARCHITECTURE rtl OF mux2 IS SIGNAL tmp1,tmp2,tmp3 : STD_LOGIC;BEGINtmp1=in0 AND sel;tmp2=in1 AND (NOT sel);tmp3=tmp1 OR tmp2;y=tmp3;END rtl; 【例4-8】 寄存器硬件一一對應(yīng)的直接描述 對于例4-7,是將二選一電路看成一個黑框黑框,編程者無需無需了解二選一電路內(nèi)部的細節(jié)了解二選一電路內(nèi)部的細節(jié),只要知道外部特性和功能只要知道外部特性和功能就可以進行正確的描述。 而對于例4-8編程者就必須了解二選一電路是怎樣構(gòu)成的,必須了解二選一電路是

32、怎樣構(gòu)成的,內(nèi)部采用了哪些門電路內(nèi)部采用了哪些門電路。只有了解了這樣一些細節(jié),才能用VHDL語言進行正確的描述。所以從編程效率及編程難度上從編程效率及編程難度上來看來看,應(yīng)該選擇例例4-7的這種編程方法的這種編程方法來編寫RTL描述方式的程序。 隨著CAD技術(shù)的發(fā)展,人們也正在探討如何對用行為描述對用行為描述方式的程序進行邏輯綜合方式的程序進行邏輯綜合,如能做到這一點,這將會大大提高CAD技術(shù)的水平。 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY mux4 IS PORT (inp

33、ut:IN STD_LOGIC_VECTOR (3 DOWNTO 0); sel:IN STD_LOGIC_VECTOR (1 DOWNTO 0); y:OUT STD_LOGIC);END mux4; ARCHITECTURE rtl OF mux4 ISBEGINy=input(0) WHEN sel=00 ELSE input(1) WHEN sel=01 ELSE input(2) WHEN sel=10 ELSE input(3);END rtl; 【例4-6】四選一電路的RTL功能描述程序。對四選一電路的功能描述1. “X”狀態(tài)的傳遞。狀態(tài)的傳遞。2. 寄存器寄存器RTL描述的限制

34、描述的限制 1) 禁止在一個進程中存在兩個寄存器描述禁止在一個進程中存在兩個寄存器描述。 2) 禁止使用禁止使用IF語句中的語句中的ELSE項。項。 3) 寄存器描述中必須代入信號值。寄存器描述中必須代入信號值。3. 關(guān)聯(lián)性強的信號應(yīng)放在一個進程中。關(guān)聯(lián)性強的信號應(yīng)放在一個進程中。4.2.2 使用使用RTL描述方式應(yīng)注意的幾個問題描述方式應(yīng)注意的幾個問題1. “X”狀態(tài)的傳遞狀態(tài)的傳遞 在目前的RTL設(shè)計中要對所設(shè)計的程序進行仿真檢驗,而且在邏輯電路綜合以后還有必要對綜合的結(jié)果進行仿真。之所以要進行二次仿真二次仿真,是因為在仿真過程中存在仿真過程中存在“X”傳遞傳遞的影響。它可使RTL仿真仿真

35、和門級電路仿真門級電路仿真產(chǎn)生不一致的結(jié)果產(chǎn)生不一致的結(jié)果。 所謂“X”狀態(tài)的傳遞,實質(zhì)上是不確定信號狀態(tài)的傳遞不確定信號狀態(tài)的傳遞,它將使邏輯電路產(chǎn)生不確定的結(jié)果,不確定“狀態(tài)”在RTL仿真時是允許出現(xiàn)的仿真時是允許出現(xiàn)的,但是在邏輯綜合后的門級電路仿真中在邏輯綜合后的門級電路仿真中是不允許出現(xiàn)的是不允許出現(xiàn)的。4.2.2 使用使用RTL描述方式應(yīng)注意的幾個問題描述方式應(yīng)注意的幾個問題當sel=“X”時,輸出y=“1”。PROCESS (sel)BEGINIF (sel=1) THEN y=0;ELSE y=1;END IF;END PROCESS; 【例4-9】程序1是一個二值輸入的器件的

36、RTL描述,當輸入=“X”時,不同描述程序得到不同的結(jié)果。 PROCESS (sel)BEGINIF (sel=0) THEN y=1;ELSE y=0;END IF;END PROCESS; 當sel=X時,輸出的y=“0”程序2PROCESS (sel)BEGINIF (sel=1) THEN y=0;ELSIF (sel=0) THEN y=1;ELSE y=X;END IF;END PROCESS; 程序3:程序的改進 在程序3中ELSE項以前,將將sel所有的可能取值都作了所有的可能取值都作了明確的約束明確的約束,當當sel=X時,其時,其輸出輸出y也將變?yōu)橐矊⒆優(yōu)椤癤”,就不會出現(xiàn)

37、不合理的結(jié)果。 在邏輯綜合時,在邏輯綜合時,ELSE項是項是被忽略的,這樣被忽略的,這樣RTL仿真結(jié)果仿真結(jié)果就和邏輯綜合的仿真結(jié)果是一就和邏輯綜合的仿真結(jié)果是一樣的樣的。 一般來說,由RTL描述所生成的邏輯電路中,寄存器的個數(shù)和位置與RTL描述的情況是一致的。但是,寄存器RTL描述不是任意的,而是有一定限制有一定限制的。2. 寄存器寄存器RTL描述的限制描述的限制禁止在一個進程中存在兩個寄存器描述禁止在一個進程中存在兩個寄存器描述。 RTL描述規(guī)定,在一個進程中只能描述一個寄存器。像例4-11那樣對兩個寄存器進行描述是不允許的。 PROCESS (clk1,clk2)BEGINIF (clk

38、1EVENT AND clk1=1) THENy=a;END IF;IF (clk2EVENT AND clk2=1) THENz=b;END IF; END PROCESS;【例4-11】一個進程中不能描述兩個寄存器。 2) 禁止使用禁止使用IF語句中的語句中的ELSE項項在用用IF語句描述語句描述寄存器功能寄存器功能時,禁止采用時,禁止采用ELSE項項。例4-12這樣的描述是應(yīng)該禁止使用的。PROCESS (clk)BEGIN IF (clkEVENT AND clk=1) THENy=a; ELSE- - 禁止使用y=b; END IF;END PROCESS; 【例4-12】和例4-9

39、中使用的ELSE不同,例4-9中是組合邏輯電路描述,不是寄存器(時序電路)描述。PROCESS (clk)VARIABLE tmp : STD_LOGIC;BEGINIF (clkEVENT AND clk=1) THENtmp : =a ;END IF;y= tmp ;END PROCESS; 3) 寄存器描述中必須將寄存器描述中必須將值值代入信號代入信號【例4-13】4) 關(guān)聯(lián)性強的信號應(yīng)放在一個進程中關(guān)聯(lián)性強的信號應(yīng)放在一個進程中在設(shè)計“與與”及“或或”這些部件時,如果它們在原理圖上是并行放置的,那么通常進程和部件是一一對應(yīng)通常進程和部件是一一對應(yīng)的。(一(一個部件對應(yīng)一個進程)。個部件

40、對應(yīng)一個進程)。 但是,在許多較復(fù)雜的電路中,它有多個輸入和輸出多個輸入和輸出,有些信號相互的關(guān)聯(lián)度很高,而有些信號相互的關(guān)聯(lián)度就很低。在這種情況下,為了在邏輯綜合以后,使其電路的面積電路的面積和速度指標更高和速度指標更高,通常將關(guān)聯(lián)度高的信號放在一個進程中,將關(guān)聯(lián)度高的信號放在一個進程中,將電路分成幾個進程來描述。將電路分成幾個進程來描述。圖4-7 多進程描述的電路 & 1&douteout&goutfoutayinzincb對于圖4-7 這樣的邏輯電路,可以用一個進程描述,如例4-14所示;也可以采用多進程描述,如例4-15所示。 & 1&douteout&goutfoutayinzincbbfcbagyinazinazinayinaeadoutoutoutout)()(bfcba

溫馨提示

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

最新文檔

評論

0/150

提交評論