




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、西安電子科技大學(xué)EDA實驗實驗VHDL設(shè)計初步設(shè)計初步主講:徐少瑩主講:徐少瑩電子工程學(xué)院電子工程學(xué)院:西安電子科技大學(xué)EDA實驗實驗西安電子科技大學(xué)國家電工電子教學(xué)基地西安電子科技大學(xué)國家電工電子教學(xué)基地西安電子科技大學(xué)第第1部分部分 VHDL設(shè)計初步設(shè)計初步EDA實驗實驗西安電子科技大學(xué)VHDL歷史回想歷史回想 VHDL 言語是美國國防部言語是美國國防部(DOD)在在 20 世紀世紀 80 年代初為實現(xiàn)其高速年代初為實現(xiàn)其高速集成電路方案集成電路方案(VHSICVery High Speed Integrated Circuit)而提出而提出的一種硬
2、件描畫言語的一種硬件描畫言語(HDLHardware Description Language),以,以作為各合同商之間提交復(fù)雜電路設(shè)計文檔的一種規(guī)范方案,作為各合同商之間提交復(fù)雜電路設(shè)計文檔的一種規(guī)范方案,VHDL的含義為超高速集成電路硬件描畫言語。的含義為超高速集成電路硬件描畫言語。 1987年被采用為年被采用為IEEE 1076規(guī)范規(guī)范VHDL87。 1993年被更新為年被更新為IEEE 1164規(guī)范規(guī)范VHDL93。西安電子科技大學(xué)VHDLVHSIC Hardware Description Language HDL 的出現(xiàn)是為了順應(yīng)電子系統(tǒng)設(shè)計的日益復(fù)雜性。的出現(xiàn)是為了順應(yīng)電子系統(tǒng)設(shè)
3、計的日益復(fù)雜性。假設(shè)以計算機軟件的設(shè)計與電路設(shè)計做個類比:假設(shè)以計算機軟件的設(shè)計與電路設(shè)計做個類比: 機器碼好比晶體管機器碼好比晶體管/MOS管;管; 匯編言語好比電路網(wǎng)表;匯編言語好比電路網(wǎng)表; HDL言語就好像高級言語。言語就好像高級言語。西安電子科技大學(xué)幾種常用的幾種常用的HDL言語:言語: 1VHDL硬件描畫言語:功能強,規(guī)范性好;硬件描畫言語:功能強,規(guī)范性好; 2VerilogHDL硬件描畫言語:功能強、靈敏性高;硬件描畫言語:功能強、靈敏性高; 3ABEL硬件描畫言語:屬于較低級的硬件描畫言硬件描畫言語:屬于較低級的硬件描畫言語;語; 4AHDL硬件描畫言語:硬件描畫言語:Alt
4、era公司開發(fā),語法簡公司開發(fā),語法簡單,但不通用。單,但不通用。 其中:其中:VHDL和和VerilogHDL已成為已成為IEEE規(guī)范。規(guī)范。VHDLVHSIC Hardware Description Language西安電子科技大學(xué) VHDL在語法和風(fēng)格上類似于現(xiàn)代高級編程言語。在語法和風(fēng)格上類似于現(xiàn)代高級編程言語。但要留意,但要留意,VHDL畢竟描畫的是硬件,它包含許多硬畢竟描畫的是硬件,它包含許多硬件特有的構(gòu)造。件特有的構(gòu)造。 HDL是用文字化方法描畫電子電路與系統(tǒng)。是用文字化方法描畫電子電路與系統(tǒng)。VHDLVHSIC Hardware Description Language西安電
5、子科技大學(xué)VHDL與計算機言語的區(qū)別與計算機言語的區(qū)別計算機言語主要關(guān)注于變量值的變化計算機言語主要關(guān)注于變量值的變化VHDL要實現(xiàn)嚴厲的時序邏輯關(guān)系要實現(xiàn)嚴厲的時序邏輯關(guān)系西安電子科技大學(xué)回想回想組合邏輯電路組合邏輯電路時序邏輯電路時序邏輯電路分析分析設(shè)計設(shè)計真值表真值表分析分析設(shè)計設(shè)計輸入輸入/輸出輸出籠統(tǒng)籠統(tǒng)實體實體EntityArchitecture與、或、非與、或、非與非、或非與非、或非異或、同或異或、同或RS觸發(fā)器觸發(fā)器D觸發(fā)器觸發(fā)器T觸發(fā)器觸發(fā)器JK觸發(fā)器觸發(fā)器西安電子科技大學(xué)主要內(nèi)容安排主要內(nèi)容安排1 多路選擇器的多路選擇器的VHDL描畫描畫2 時序電路的時序電路的VHDL描畫
6、描畫3 更復(fù)雜電路的更復(fù)雜電路的VHDL描畫描畫5 VHDL設(shè)計練習(xí)設(shè)計練習(xí)4 有限形狀機形狀轉(zhuǎn)移圖設(shè)計有限形狀機形狀轉(zhuǎn)移圖設(shè)計西安電子科技大學(xué)1 多路選擇器的多路選擇器的VHDL描畫描畫例例1.1 2選選1多路選擇器的多路選擇器的VHDL描畫描畫 2選選1MUX輸入輸入/輸出輸出端口端口實體實體Entity abymux21s電路功能電路功能實現(xiàn)實現(xiàn)構(gòu)造體構(gòu)造體Architecture?西安電子科技大學(xué)例例1.1 2選選1多路選擇器的實體描畫多路選擇器的實體描畫1 多路選擇器的多路選擇器的VHDL描畫描畫abymux21sENTITY mux21 IS PORT a, b : IN BIT
7、; S : IN BIT ; y : OUT BIT ) ; END ENTITY mux21 ; 西安電子科技大學(xué)ENTITY mux21 IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21;ARCHITECTURE one OF mux21 IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 例例1.1 2選選1多路選擇器的構(gòu)造體描畫多路選擇器的構(gòu)造體描畫1 (行為描畫行為描畫)abymux21sS=0S=1abyS1 多路選擇器的多路選擇器的V
8、HDL描畫描畫西安電子科技大學(xué)例例1.1 2選選1多路選擇器的構(gòu)造體描畫多路選擇器的構(gòu)造體描畫2 (原理圖描畫原理圖描畫)ARCHITECTURE one OF mux21 IS SIGNAL d,e : BIT; -d,e 為為內(nèi)部信號內(nèi)部信號BEGIN d = a AND (NOT S) ; e = b AND s ; y = d OR e ;END ARCHITECTURE one ; abymux21s1 多路選擇器的多路選擇器的VHDL描畫描畫西安電子科技大學(xué)例例1.1 2選選1多路選擇器的構(gòu)造體描畫多路選擇器的構(gòu)造體描畫3 (布爾方程描布爾方程描畫畫)1 多路選擇器的多路選擇器的V
9、HDL描畫描畫y = (a AND (NOT s) OR ( b AND s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave;y = as+bsabymux21s闡明:以上闡明:以上三種構(gòu)造體三種構(gòu)造體描畫都是并描畫都是并行語句行語句西安電子科技大學(xué)例例1.1 2選選1多路選擇器的構(gòu)造體描畫多路選擇器的構(gòu)造體描畫4 (進程描畫進程描畫)1 多路選擇器的多路選擇器的VHDL描畫描畫S=0S=1abySabymux21s ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s =
10、0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE one ; -a,b,s 為敏感信號表為敏感信號表西安電子科技大學(xué)2選選1多路選擇器功能時序波形多路選擇器功能時序波形 例例1.1 2選選1多路選擇器的多路選擇器的EDA軟件仿真結(jié)果軟件仿真結(jié)果1 多路選擇器的多路選擇器的VHDL描畫描畫西安電子科技大學(xué)1.1 實體表達實體表達ENTITY 1 多路選擇器的多路選擇器的VHDL描畫描畫例例1.1VHDL描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明ENTITY 實體名實體名 IS GENERIC
11、 類屬表;類屬表; PORT 端口表;端口表;END ENTITY 實體名;實體名; 實體在電路中主要是闡明該電路的輸入、輸出關(guān)實體在電路中主要是闡明該電路的輸入、輸出關(guān)系,更詳細地說就是用來定義實體與外部的銜接關(guān)系系,更詳細地說就是用來定義實體與外部的銜接關(guān)系以及需傳送給實體的參數(shù)。以及需傳送給實體的參數(shù)。ENTITY 實體名實體名 IS GENERIC 類屬表;類屬表; PORT 端口表;端口表;END ENTITY 實體名;實體名;1類屬表:用于指定參數(shù)的大小、實體中子元件的數(shù)目類屬表:用于指定參數(shù)的大小、實體中子元件的數(shù)目及實體的定時特性等,用以將信息參數(shù)傳送到實體。及實體的定時特性等
12、,用以將信息參數(shù)傳送到實體。2端口表:指明實體的輸入、輸出信號及其方式、數(shù)據(jù)端口表:指明實體的輸入、輸出信號及其方式、數(shù)據(jù)類型。類型。PORT (端口名:端口方式端口名:端口方式 數(shù)據(jù)類型;數(shù)據(jù)類型; 端口名:端口方式端口名:端口方式 數(shù)據(jù)類型數(shù)據(jù)類型 );英文字母英文字母+ +數(shù)字數(shù)字數(shù)據(jù)流動方向數(shù)據(jù)流動方向主要有主要有“位和位和“位矢量兩類位矢量兩類設(shè)計者本人命名的稱號文件名設(shè)計者本人命名的稱號文件名例如:例如:mux21的端口描畫的端口描畫添加以下語句添加以下語句:generic (m: time:=1ns)類屬參數(shù)闡明語句,它定類屬參數(shù)闡明語句,它定義了延時時間為義了延時時間為1ns
13、留意留意 簡單地說簡單地說 In 不可以出如今賦值符號不可以出如今賦值符號(= 或或:=)的左邊的左邊 out不可以出如今賦值符號不可以出如今賦值符號(= 或或:=)的右邊的右邊 buffer可以出如今賦值符號可以出如今賦值符號(= 或或:=)的兩邊的兩邊方向定義方向定義含義含義IN輸入,定義的通道為單向輸入方式輸入,定義的通道為單向輸入方式 OUT輸出,定義的通道為單向輸出方式輸出,定義的通道為單向輸出方式 INOUT雙向,定義的通道確定為輸入輸出雙向端口雙向,定義的通道確定為輸入輸出雙向端口 BUFFER緩沖端口,其功能與緩沖端口,其功能與INOUT類似類似 常用端口方式:常用端口方式:例
14、:例:ENTITY mux21 IS PORT a, b, : IN BIT ; S : IN BIT ; y : OUT BIT ) ; END ENTITY mux21 ; VHDL中任何一種數(shù)據(jù)對象信號、變量、常數(shù)必需嚴中任何一種數(shù)據(jù)對象信號、變量、常數(shù)必需嚴厲限定其取值范圍。厲限定其取值范圍。 VHDL 中一個對象只能有一種類型,施加于該對象的操中一個對象只能有一種類型,施加于該對象的操作必需與該類型相匹配。作必需與該類型相匹配。 常用數(shù)據(jù)類型有:常用數(shù)據(jù)類型有:BIT,BIT_VECTOR,STD_LOGIC,STD_LOGIC_VECTOR,INTEGER,BOOLEAN等參考等參
15、考書上書上P260表表10.3.1西安電子科技大學(xué)1.2 構(gòu)造體表達構(gòu)造體表達ARCHITECTURE 1 多路選擇器的多路選擇器的VHDL描畫描畫ARCHITECTURE 構(gòu)造體名構(gòu)造體名 OF 實體名實體名 IS 定義語句定義語句 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等定義;BEGIN 功能描畫語句功能描畫語句;END ARCHITECTURE 構(gòu)造體名;構(gòu)造體名;ARCHITECTURE 構(gòu)造體名構(gòu)造體名 OF 實體名實體名 IS 定義語句定義語句 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;BEGIN 功能描畫語句功能
16、描畫語句;END ARCHITECTURE 構(gòu)造體名;構(gòu)造體名;ARCHITECTURE 構(gòu)造體名構(gòu)造體名 OF 實體名實體名 IS 定義語句定義語句 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;BEGIN 功能描畫語句功能描畫語句;END ARCHITECTURE 構(gòu)造體名;構(gòu)造體名;ARCHITECTURE 構(gòu)造體名構(gòu)造體名 OF 實體名實體名 IS 定義語句定義語句 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;BEGIN 功能描畫語句功能描畫語句;END ARCHITECTURE 構(gòu)造體名;構(gòu)造體名;半加器半加器ab
17、csabcs0000000011111110半加器真值表:半加器真值表:abcs0000000011111110半加器半加器abcs ENTITY部分省略部分省略 ARCHITECTURE alg_ha OF half_adder IS BEGIN PROCESS (a , b) BEGIN IF a=0 AND b=0 THEN c=0 ; s=0 ELSIF a=1 AND b=1 THEN c=1 ; s=0; ELSE c=0 ; s=1; END IF; END PROCESS; END alg_ha; 高層次的功能描高層次的功能描畫,不用思索在畫,不用思索在電路中究竟是怎電路中究竟
18、是怎樣實現(xiàn)的。樣實現(xiàn)的。練習(xí):練習(xí): 試用上面的兩種方法描畫半加器的功能。試用上面的兩種方法描畫半加器的功能。半加器半加器abcs西安電子科技大學(xué)構(gòu)造體中三種描畫方式的比較構(gòu)造體中三種描畫方式的比較布爾函數(shù)定義明布爾函數(shù)定義明白白銜接關(guān)系明晰,銜接關(guān)系明晰,電路模塊化明晰電路模塊化明晰 優(yōu)優(yōu) 點點小門數(shù)設(shè)計小門數(shù)設(shè)計不易描畫復(fù)雜電路,不易描畫復(fù)雜電路,修正不易修正不易數(shù)據(jù)流描畫數(shù)據(jù)流描畫電路層次化設(shè)計電路層次化設(shè)計電路不易了解、繁瑣、電路不易了解、繁瑣、復(fù)雜復(fù)雜構(gòu)造化描畫構(gòu)造化描畫 適用場所適用場所 缺缺 點點描畫方式描畫方式電路特性清楚明電路特性清楚明了了大型復(fù)雜的電路模大型復(fù)雜的電路模塊設(shè)
19、計塊設(shè)計進展綜合效率相對較進展綜合效率相對較低低行為描畫行為描畫西安電子科技大學(xué) 信號賦值符信號賦值符 “= 表達式中的等號表達式中的等號“=沒沒有賦值的含義,只是一種數(shù)有賦值的含義,只是一種數(shù)據(jù)比較符號。據(jù)比較符號。 1.3 賦值符號和數(shù)據(jù)比較符號賦值符號和數(shù)據(jù)比較符號 1 多路選擇器的多路選擇器的VHDL描畫描畫例例1.1VHDL描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明 ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF
20、; END PROCESS;END ARCHITECTURE one ; 西安電子科技大學(xué)1.4 邏輯操作符邏輯操作符 1 多路選擇器的多路選擇器的VHDL描畫描畫例例1.1VHDL描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明y = (a AND (NOT s) OR (b AND s) ; ARCHITECTURE behave OF mux21 ISBEGINEND behave; VHDL共有共有7種根本邏輯操作符:種根本邏輯操作符: AND(與與)、OR(或或)、NOT(取反、取反、NAND (與非與非)、 NOR(或非或非)、XOR(異或異或)、XNOR(同或
21、同或) 要求數(shù)據(jù)類型:要求數(shù)據(jù)類型: BIT BOOLEAN STD_LOGIC西安電子科技大學(xué)ARCHITECTURE one OF mux21 IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 1.5 WHEN_ELSE條件信號賦值語句條件信號賦值語句 1 多路選擇器的多路選擇器的VHDL描畫描畫例例1.1VHDL描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明賦值目的賦值目的 = 表達式表達式 WHEN 賦值條件賦值條件 ELSE 表達式表達式 WHEN 賦值條件賦值條件 ELSE 表達式表達式 ; 西安
22、電子科技大學(xué)在在VHDL中,一切的順序語句,如中,一切的順序語句,如“IF_THEN_ELSE_END IF,都必需放在由都必需放在由“PROCESSEND PROCESS引導(dǎo)的進程構(gòu)造中。引導(dǎo)的進程構(gòu)造中。 在一個構(gòu)造體在一個構(gòu)造體ARCHITECTURE中可以包含恣意個進程語句,中可以包含恣意個進程語句,一切的進程語句都是并行語句,而進程一切的進程語句都是并行語句,而進程PROCESS引導(dǎo)的內(nèi)部語句構(gòu)造引導(dǎo)的內(nèi)部語句構(gòu)造屬于順序語句。屬于順序語句。1.4 進程語句和順序語句進程語句和順序語句 1 多路選擇器的多路選擇器的VHDL描畫描畫例例1.1VHDL描畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明描
23、畫中出現(xiàn)的相關(guān)語句構(gòu)造和語法闡明西安電子科技大學(xué)1 小結(jié)小結(jié)在在2選選1的的VHDL描畫中出現(xiàn)的言語景象歸納:描畫中出現(xiàn)的言語景象歸納:實體:實體: Entity構(gòu)造體:構(gòu)造體:Architecture端口定義:端口定義: Port( )端口方式:端口方式:In/Out/Inout數(shù)據(jù)類型:數(shù)據(jù)類型:Bit、Std_Logic信號賦值符:信號賦值符:=條件比較符:條件比較符:=邏輯操作符:邏輯操作符:ANDIF條件語句:條件語句:IFEND IF并行條件語句:并行條件語句:WHENELSE進程語句:進程語句:ProcessEnd Process順序語句:由進程語句引導(dǎo)順序語句:由進程語句引導(dǎo)并
24、行語句:簡單賦值語句并行語句:簡單賦值語句 when.else語句語句 with .select語句語句西安電子科技大學(xué)補充 WITH . SELECT 語句 用WITH . SELECT語句描畫2選1多路選擇器ENTITY mux21 IS PORT a, b : IN STD_LOGIC; S : IN STD_LOGIC; y : OUT STD_LOGIC); END mux21; ARCHITECTURE one OF mux21 ISBEGIN WITH s SELECT y = a WHEN 0; b WHEN OTHERS ;END one ; 西安電子科技大學(xué)2 時序電路的時
25、序電路的VHDL描畫描畫例例2.1 D觸發(fā)器的觸發(fā)器的VHDL描畫描畫 最簡單、最具有代表性的時序電路是最簡單、最具有代表性的時序電路是D觸發(fā)器。對觸發(fā)器。對D觸發(fā)觸發(fā)器的描畫包含了器的描畫包含了VHDL對時序電路的最根本和典型的表達方對時序電路的最根本和典型的表達方式,也包含了式,也包含了VHDL中許多最具特征的言語景象。中許多最具特征的言語景象。實體實體Entity 電路功能描畫電路功能描畫構(gòu)造體構(gòu)造體Architecture?DCLKQDFF1例例2.1 D觸發(fā)器的觸發(fā)器的VHDL描畫描畫 VHDL電路描畫與設(shè)電路描畫與設(shè)計平臺和硬件實現(xiàn)對象計平臺和硬件實現(xiàn)對象 (組組合或時序邏輯合或時
26、序邏輯) 無關(guān)。無關(guān)。DCLKQDFF1例例2.1中中D觸發(fā)器的觸發(fā)器的VHDL描畫的言語景象闡明描畫的言語景象闡明 2.1 完好完好VHDL程序根本構(gòu)成程序根本構(gòu)成VHDL設(shè)計設(shè)計VHDL文件文件庫和程序包庫和程序包 聲明在設(shè)計或?qū)嶓w中將用到的常數(shù),數(shù)據(jù)類聲明在設(shè)計或?qū)嶓w中將用到的常數(shù),數(shù)據(jù)類型,元件及子程序等型,元件及子程序等實體實體Entities 聲明到其實體及聲明到其實體及其設(shè)計的接口,即定其設(shè)計的接口,即定義本設(shè)計的輸入義本設(shè)計的輸入/出端出端口口構(gòu)造體構(gòu)造體Architectures 定義了實體的實現(xiàn)。定義了實體的實現(xiàn)。即電路功能的詳細描畫即電路功能的詳細描畫西安電子科技大學(xué) 程
27、序包:定義了一組數(shù)據(jù)類型闡明、常量闡明、元件闡明和子程程序包:定義了一組數(shù)據(jù)類型闡明、常量闡明、元件闡明和子程序闡明。以供其它多個設(shè)計實體援用。序闡明。以供其它多個設(shè)計實體援用。 庫:是專門存放預(yù)先編譯好的程序包的地方,這樣它們庫:是專門存放預(yù)先編譯好的程序包的地方,這樣它們就可以在其它設(shè)計中被調(diào)用。就可以在其它設(shè)計中被調(diào)用。 庫庫/程序包就是為了使一組類型闡明,常量闡明和子程程序包就是為了使一組類型闡明,常量闡明和子程序闡明對多個設(shè)計實體都成為可見的而提供的一種構(gòu)造。它序闡明對多個設(shè)計實體都成為可見的而提供的一種構(gòu)造。它們好像們好像C言語中的言語中的*.h文件,定義了一些類型闡明,函數(shù)一文件
28、,定義了一些類型闡明,函數(shù)一樣。樣。西安電子科技大學(xué) 例如:例如: LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_unsigned.ALL; IEEE是是IEEE規(guī)范庫的標志名,兩個規(guī)范庫的標志名,兩個USE語句使得以語句使得以下設(shè)計可運用程序包下設(shè)計可運用程序包std_logic_1164, std_logic_unsigned中中一切預(yù)定義的內(nèi)容,如一切預(yù)定義的內(nèi)容,如std_logic,in,out的定義等。的定義等。格式:格式: LIBRARY ; USE .ALL;西安電子科技大學(xué)西安電子科技大學(xué)2.2 規(guī)
29、范邏輯位數(shù)據(jù)類型規(guī)范邏輯位數(shù)據(jù)類型STD_LOGIC ENTITY DFF1 IS - 端口聲明端口聲明 PORT (CLK, D : IN STD_LOGIC ; Q : OUT STD_LOGIC );END ENTITY DFF1;ENTITY mux21 IS PORT (a, b, : IN BIT ; S : IN BIT ; y : OUT BIT ); END ENTITY mux21 ; 西安電子科技大學(xué)2.3 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象 信號的運用和定義范圍是實體、構(gòu)造體和程序包,在進程和子信號的運用和定義范圍是實體、構(gòu)造體和程序包,在進程和子程序的順序語句中不允
30、許定義信號。只需信號才干把進程外的信程序的順序語句中不允許定義信號。只需信號才干把進程外的信息帶入進程內(nèi)部,或?qū)⑦M程內(nèi)的信息帶出進程息帶入進程內(nèi)部,或?qū)⑦M程內(nèi)的信息帶出進程西安電子科技大學(xué)2.3 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象 在在VHDL中,變量是一個部分量,作為暫時的數(shù)據(jù)存儲單元,中,變量是一個部分量,作為暫時的數(shù)據(jù)存儲單元,只能在進程和子程序的順序語句中運用。變量定義中的初始值僅對只能在進程和子程序的順序語句中運用。變量定義中的初始值僅對仿真有效,實踐的綜合器并不支持設(shè)置初始值。仿真有效,實踐的綜合器并不支持設(shè)置初始值。西安電子科技大學(xué)2.3 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象
31、常量的定義主要是為了程序更容易閱讀和修正。在一切的常量的定義主要是為了程序更容易閱讀和修正。在一切的VHDL構(gòu)造中都可以定義常量,照實體、構(gòu)造體、程序包、進程和構(gòu)造中都可以定義常量,照實體、構(gòu)造體、程序包、進程和子程序等。常量是一個恒定不變的值。子程序等。常量是一個恒定不變的值。西安電子科技大學(xué)2.4 上升沿檢測表達式和信號屬性函數(shù)上升沿檢測表達式和信號屬性函數(shù)EVENT PROCESS (CLK) - 進程進程 BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = D ; END IF; END PROCESS ;邊沿檢測語句邊沿檢測語句2.5 不完好條件語句與時序
32、電路不完好條件語句與時序電路 CLKEVENT AND CLK = 1YesNoQ1 = D ; ? ARCHITECTURE one OF mux21 ISBEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE one ; -a,b,s 為敏感信號表為敏感信號表S=0YesNoy = a;y b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; END
33、PROCESS ;END ;EDA軟件綜合結(jié)果軟件綜合結(jié)果西安電子科技大學(xué)2.6 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 .PROCESS (CLK) BEGIN IF CLKEVENT AND (CLK=1) AND (CLKLAST_VALUE=0) THEN Q = D ; -確保確保CLK的變化是一次上升沿的跳變的變化是一次上升沿的跳變 END IF; END PROCESS ; .PROCESS (CLK)BEGIN - 同上同上 IF CLK=1 AND CLKLAST_VALUE=0 THEN Q = D ; END IF; END PROCESS ; 2.6 實現(xiàn)
34、時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DFF3 IS PORT (CLK,D : IN STD_LOGIC ; Q : OUT STD_LOGIC ); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF rising_edge(CLK) THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; END ; 西安電子科技大學(xué).PROC
35、ESS BEGIN wait until CLK = 1 ; Q = D ;END PROCESS; 2.6 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 西安電子科技大學(xué).PROCESS (CLK)BEGIN IF CLK = 1 THEN Q = D ; END IF; END PROCESS ; 上升沿觸發(fā)上升沿觸發(fā)DFF的仿真波形:的仿真波形:2.6 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 西安電子科技大學(xué).PROCESS (CLK,D) BEGIN IF CLK = 1 THEN Q = D ; END IF; END PROCESS ; 電平觸發(fā)電平觸發(fā)DFF
36、的仿真波形:的仿真波形:2.6 實現(xiàn)時序電路的實現(xiàn)時序電路的VHDL不同表述不同表述 西安電子科技大學(xué)2 小結(jié)小結(jié)西安電子科技大學(xué)3 更復(fù)雜電路的更復(fù)雜電路的VHDL描畫描畫CLKQn 時序電路中,普通計數(shù)器的輸入時序電路中,普通計數(shù)器的輸入/輸出信號包括:輸出信號包括:?EntityArchitecture電路設(shè)計電路設(shè)計3.1 計數(shù)器的計數(shù)器的VHDL描畫描畫ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER range 15 downto 0 ) ; END CNT4; ARCHITECTURE bhv OF CNT4 IS B
37、EGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; END IF; END PROCESS ;END bhv; 【例【例1】: 4位二進制加法計數(shù)器位二進制加法計數(shù)器CLKQnENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER range 15 downto 0 ) ; END CNT4; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q
38、 = Q + 1 ; -如何了解?如何了解? END IF; END PROCESS ;END bhv; 【例【例1】: 4位二進制加法計數(shù)器位二進制加法計數(shù)器西安電子科技大學(xué)1 十進制整數(shù)十進制整數(shù)35 十進制整數(shù)十進制整數(shù)10E3 十進制整數(shù)十進制整數(shù)16#D9# 十六進制整數(shù)十六進制整數(shù)8#562# 八進制整數(shù)八進制整數(shù)2#11001001# 二進制整數(shù)二進制整數(shù)整數(shù)的表達不加引整數(shù)的表達不加引號,而邏輯位的數(shù)號,而邏輯位的數(shù)據(jù)必需加引號,如據(jù)必需加引號,如1、0、“101。整數(shù)整數(shù)Integer類型類型VHDL中整數(shù)常量的書寫方式:中整數(shù)常量的書寫方式:西安電子科技大學(xué)3.2 計數(shù)器設(shè)
39、計的其他表述方法計數(shù)器設(shè)計的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 運算符重載運算符重載ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK)
40、 BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; -“+ 運算符重載運算符重載 END IF; END PROCESS ; Q = Q1 ;END ARCHITECTURE bhv; 西安電子科技大學(xué)3.2 計數(shù)器設(shè)計的其他表述方法計數(shù)器設(shè)計的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 運算符重載運算符重載ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_L
41、OGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; -“+ 運算符重載運算符重載 END IF; END PROCESS ; Q = Q1 ;END ARCHITECTURE bhv; EDA軟件綜合結(jié)果軟件綜合結(jié)果組合電路加組合電路加1邏輯邏輯4位二進制位二進制鎖存器鎖存器輸出反輸出
42、反響響鎖存時鎖存時鐘鐘西安電子科技大學(xué)3.2 計數(shù)器設(shè)計的其他表述方法計數(shù)器設(shè)計的其他表述方法LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; - 運算符重載運算符重載ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ENTITY CNT4; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DO
43、WNTO 0);BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; -“+ 運算符重載運算符重載 END IF; END PROCESS ; Q 0); -計數(shù)器復(fù)位高有效計數(shù)器復(fù)位高有效 ELSIF (clkEVENT AND clk = 1) THEN -檢測時鐘上升沿檢測時鐘上升沿 IF (en=1) THEN -檢測能否允許計數(shù)不完全條件語句檢測能否允許計數(shù)不完全條件語句 IF cqi 9 THEN cqi :=cqi+1; -允許計數(shù),且計數(shù)允許計數(shù),且計數(shù)0); -計數(shù)形狀計數(shù)形狀=9,下一形狀清
44、零,下一形狀清零 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -計數(shù)形狀計數(shù)形狀=9,輸出進位信號,輸出進位信號 ELSE co =0; END IF; qcnt 0); -計數(shù)器復(fù)位高有效計數(shù)器復(fù)位高有效 ELSIF (clkEVENT AND clk = 1) THEN -檢測時鐘上升沿檢測時鐘上升沿 IF (en=1) THEN -檢測能否允許計數(shù)不完全條件語句檢測能否允許計數(shù)不完全條件語句 IF cqi 9 THEN cqi :=cqi+1; -允許計數(shù),且計數(shù)允許計數(shù),且計數(shù)0); -計數(shù)形狀計數(shù)形狀=9,下一形狀清零,下一形狀清零
45、 END IF; END IF; END IF; IF cqi = 9 THEN co = 1; -計數(shù)形狀計數(shù)形狀=9,輸出進位信號,輸出進位信號 ELSE co =0; END IF; qcnt = cqi; -將計數(shù)值輸出到端口將計數(shù)值輸出到端口 END PROCESS;END behave;10進制計數(shù)器時序波形仿真結(jié)果進制計數(shù)器時序波形仿真結(jié)果西安電子科技大學(xué)VARIABLE cqi : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VE
46、CTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ; 西安電子科技大學(xué)3.3 不同任務(wù)方式的時序電路設(shè)計不同任務(wù)方式的時序電路設(shè)計 library ieee;use ieee.std_logic_1164.all;ENTITY shifter IS-實體聲明實體聲明 PORT( clk, load : IN std_logic; din : IN std_logic_vector(7 downto 0); qb : OUT std_logic);END ENTITY shifter;ARCHITECTURE behave OF shifter IS -構(gòu)
47、造體描畫構(gòu)造體描畫BEGIN PROCESS (clk,load) VARIABLE reg8 : std_logic_vector(7 downto 0); BEGIN IF clkEVENT AND clk = 1 THEN IF load=1 THEN reg8 :=din; -由由LOAD=1裝載新數(shù)據(jù)裝載新數(shù)據(jù) ELSE - load=0, 移位操作移位操作 reg8(6 downto 0) :=reg8 (7 downto 1); END IF; END IF; qb = reg8(0) ; - 串行輸出最低位串行輸出最低位 END PROCESS; END ARCHITECTUR
48、E behave;移位存放器時序波形仿真結(jié)果移位存放器時序波形仿真結(jié)果西安電子科技大學(xué)3.4 1位二進制全加器的位二進制全加器的VHDL描畫描畫 1位二進制全加器引腳圖位二進制全加器引腳圖1位二進制全加器實現(xiàn)原理圖位二進制全加器實現(xiàn)原理圖1位二進制位二進制半加器半加器西安電子科技大學(xué)3.4.1 半加器的半加器的VHDL描畫描畫 1001010110001100cosoba半加器真值表半加器真值表 coasobnotxnor2and2半加器電路圖半加器電路圖3.4 1位二進制全加器的位二進制全加器的VHDL描畫描畫 so=?co=?-半加器描畫半加器描畫(1):布爾方程描畫方法:布爾方程描畫方法
49、LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS -實體聲明實體聲明 PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so = NOT (a XOR (NOT b) ; co = a AND b ; END ARCHITECTURE fh1; 3.4.1 半加器的半加器的VHDL描畫描畫 -半加器描畫半加器描畫(2):真值表描畫方法:真值表描畫方法1 -這
50、里省略庫和實體聲明部分這里省略庫和實體聲明部分ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN abc so=0; co so=1; co so=1; co so=0; co NULL ; END CASE; END PROCESS; END ARCHITECTURE fh1 ; VHDL描畫中的根本構(gòu)造與語法:描畫中的根本構(gòu)造與語法:VHDL運算符運算符 &:銜接運算符:銜接運算符 &銜接,將兩個對象或矢量銜接成維數(shù)更大銜接,將兩個對象或矢量銜接成維數(shù)更大的矢量的矢
51、量, 它可給代碼書寫帶來方便。它可給代碼書寫帶來方便。 例如,為表達例如,為表達a=1 and b=0 and c=1概念,可定義一個變量:概念,可定義一個變量: vabc=a & b & c;那么可用;那么可用 vabc=“101表達上述內(nèi)容。表達上述內(nèi)容。-半加器描畫半加器描畫(3):真值表描畫方法:真值表描畫方法2 -這里省略庫和實體聲明部分這里省略庫和實體聲明部分ARCHITECTURE fh1 OF h_adder IS SIGNAL abc, cso : std_logic_vector(1 downto 0) ;BEGIN abc = a & b; co
52、= cso(1) ; so cso cso cso cso null ; -或或“00 END CASE; END PROCESS;END fh1;西安電子科技大學(xué)-“或門邏輯描畫或門邏輯描畫LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL; -庫、函數(shù)包調(diào)庫、函數(shù)包調(diào)用用ENTITY or2a IS -實體聲明實體聲明 PORT (a, b : IN STD_LOGIC; c : OUT STD_LOGIC );END ENTITY or2a;ARCHITECTURE one OF or2a IS -構(gòu)造體描畫構(gòu)造體描畫 BEGIN c = a OR b
53、;END ARCHITECTURE one ; 3.4.2 “或門邏輯的或門邏輯的VHDL描畫描畫 3.4.3 1位二進制全加器的位二進制全加器的VHDL描畫描畫 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder IS -實體實體f_adder描畫描畫 PORT (ain,bin,cin: IN STD_LOGIC; cout,sum:OUT STD_LOGIC); END f_adder;ARCHITECTURE fd1 OF f_adder IS -構(gòu)造體描畫構(gòu)造體描畫 COMPONENT h_adder -半加器元件調(diào)用聲明半
54、加器元件調(diào)用聲明 PORT (a,b: IN STD_LOGIC; co,so: OUT STD_LOGIC); END COMPONENT;VHDL描畫中的根本構(gòu)造與語法:描畫中的根本構(gòu)造與語法:STD_LOGIC_VECTOR STD_LOGIC 在運用在運用STD_LOGIC_VECTOR中,必需注明其數(shù)組寬度,即位寬,如:中,必需注明其數(shù)組寬度,即位寬,如: B : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) ; SIGNAL A :STD_LOGIC_VECTOR (1 TO 4) ; B = 01100011 ; - B(7)為為 0 B(4 DOWNTO
55、1) = “0001 ; - B(4)為為 0 B(7 DOWNTO 4) = A ; - B(6)等于等于 A(2) SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;. a 銜接端口名,銜接端口名,.); U1:h_adder PORT MAP(a=ain, b=bin, co=d, so=e);西安電子科技大學(xué)1、形狀機分類:、形狀機分類:按輸出按輸出方式分方式分Mealy型型Moore型型輸出僅為當前形狀的函輸出僅為當前形狀的函數(shù)數(shù)輸出是當前形狀和輸入輸出是當前形狀和輸
56、入的函數(shù)的函數(shù)按構(gòu)按構(gòu)造分造分單單 進進 程程多多 進進 程程主進程和輔進程合一主進程和輔進程合一分時序、組合主進程,分時序、組合主進程,輔助進程輔助進程4 有限形狀機設(shè)計有限形狀機設(shè)計 4.1 普通有限形狀機的設(shè)計普通有限形狀機的設(shè)計 時序電路可以稱為有限形狀機時序電路可以稱為有限形狀機(Finite State Machine, FSM),以此命名的緣由是可以運用有,以此命名的緣由是可以運用有限數(shù)量的形狀表示時序電路的功能行為。限數(shù)量的形狀表示時序電路的功能行為。西安電子科技大學(xué)按形狀按形狀表達分表達分符號形狀機符號形狀機確定編碼形狀機確定編碼形狀機S0,S1,S2,000,001,010
57、, 按編碼按編碼方式分方式分順序編碼順序編碼一位熱碼一位熱碼二進制順序編碼等二進制順序編碼等00001,00010,00100, 其它編碼其它編碼格雷碼,循環(huán)碼,等格雷碼,循環(huán)碼,等4 有限形狀機設(shè)計有限形狀機設(shè)計西安電子科技大學(xué)2、用戶自定義數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型4 有限形狀機設(shè)計有限形狀機設(shè)計4.1 普通有限形狀機的設(shè)計普通有限形狀機的設(shè)計TYPE 數(shù)據(jù)類型名數(shù)據(jù)類型名 IS 數(shù)據(jù)類型定義;數(shù)據(jù)類型定義;例如:例如:TYPE m_state IS (st0,st1,st2,st3,st4,st5);SIGNAL present_state,next_state : m_state;西
58、安電子科技大學(xué)3、普通形狀機的設(shè)計、普通形狀機的設(shè)計a、闡明部分、闡明部分例如:例如: SIGNAL current_state,next_state : m_state; ARCHITECTURE beh OF s_machine IS TYPE m_state IS (st0,st1,st2,st3,st4,st5);4 有限形狀機設(shè)計有限形狀機設(shè)計4.1 普通有限形狀機的設(shè)計普通有限形狀機的設(shè)計b、主控時序進程、主控時序進程 該部分是在CLK控制下,進展形狀轉(zhuǎn)換: current_state = next_state ;c、主控組合進程、主控組合進程 該部分是確定該部分是確定curren
59、t_state,next_state的取值,的取值,為時序進程提供參數(shù);進展形狀轉(zhuǎn)換條件的斷定;進為時序進程提供參數(shù);進展形狀轉(zhuǎn)換條件的斷定;進展輸出斷定。展輸出斷定。d、輔助進程、輔助進程 該部分是配合主控時序進程或主控組合進程,完該部分是配合主控時序進程或主控組合進程,完成某種算法、輸出數(shù)據(jù)鎖存等。成某種算法、輸出數(shù)據(jù)鎖存等。西安電子科技大學(xué)RSTS0/5S2/12S3/14S1/80000elseelseelse1111else State_inputsState/outputclkresetState inputs24Comb_outputs形狀機4 有限形狀機設(shè)計有限形狀機設(shè)計4.2
60、 雙進程雙進程Moore型有限形狀機的設(shè)計型有限形狀機的設(shè)計Library ieee; Use ieee.std_logic_1164.all;Entity s_machine is Port ( clk, reset : in std_logic; State_inputs : in std_logic_vector(0 to 1); comb_outputs : out integer range 0 to 15); End s_machine; Architecture behv of s_machine is type fsm_st is (s0,s1,s2,s3); clkresetState inputs24Comb
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于FreeRTOS的輸電線路短路故障診斷研究
- 中介傭金合同范例簡約范例
- 公司押金合同范例
- 全職教練員合同范例
- 主播獨家簽約合同范例
- 基于地理實踐力培養(yǎng)的鄉(xiāng)土地理資源開發(fā)及應(yīng)用研究
- 食管胃結(jié)合部胃鏡觀察效果的影響因素分析及對策研究
- 茶山臭蟲防治施工方案
- 做快遞 合同范例
- 個人裝修鋪面合同范例
- 統(tǒng)編版歷史 選擇性必修二第12課 《水陸交通的變遷》課件(共27張)
- 幼兒園開學(xué)教職工安全教育培訓(xùn)
- 小學(xué)生雙擁活動國防教育
- 酒店建設(shè)項目施工總承包合同
- 《得勝的基督新婦》課件
- 煙囪拆除工程施工方案設(shè)計及安全措施
- 2025年湖南省煙草專賣局系統(tǒng)招聘336人高頻重點提升(共500題)附帶答案詳解
- 交通安全勸導(dǎo)講座課件
- 洞庫安全隱患
- 協(xié)助患者翻身扣背
- 2024解析:第二章聲現(xiàn)象-基礎(chǔ)練(解析版)
評論
0/150
提交評論