




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、西安電子科技大學(xué)數(shù)字電路與系統(tǒng)設(shè)計數(shù)字電路與系統(tǒng)設(shè)計eda實驗實驗vhdl設(shè)計初步設(shè)計初步主講:徐少瑩主講:徐少瑩電子工程學(xué)院電子工程學(xué)院email:西安電子科技大學(xué)數(shù)字電路與系統(tǒng)設(shè)計數(shù)字電路與系統(tǒng)設(shè)計eda實驗實驗u硬件描述語言硬件描述語言(vhdl or veriloghdl) (10學(xué)時)學(xué)時)ueda設(shè)計工具軟件及實驗設(shè)計工具軟件及實驗 (10學(xué)時學(xué)時)u綜合設(shè)計實驗綜合設(shè)計實驗 (10學(xué)時學(xué)時)西安電子科技大學(xué)國家電工電子教學(xué)基地西安電子科技大學(xué)國家電工電子教學(xué)基地西安電子科技大學(xué)第第1部分部分 vhdl設(shè)計初步設(shè)計初步數(shù)字電路與系統(tǒng)設(shè)計數(shù)字電路與系統(tǒng)設(shè)計eda實驗實驗西安電子科技大
2、學(xué)vhdl歷史回顧歷史回顧 vhdl 語言是美國國防部語言是美國國防部(dod)在在 20 世紀(jì)世紀(jì) 80 年代初為實現(xiàn)其高速年代初為實現(xiàn)其高速集成電路計劃集成電路計劃(vhsicvery high speed integrated circuit)而提出而提出的一種的一種(hdlhardware description language),以,以作為各合同商之間提交復(fù)雜電路設(shè)計文檔的一種標(biāo)準(zhǔn)方案,作為各合同商之間提交復(fù)雜電路設(shè)計文檔的一種標(biāo)準(zhǔn)方案,vhdl的含義為的含義為。 1987年被采納為年被采納為ieee 1076標(biāo)準(zhǔn)(標(biāo)準(zhǔn)(vhdl87)。)。 1993年被更新為年被更新為ieee
3、1164標(biāo)準(zhǔn)(標(biāo)準(zhǔn)(vhdl93)。)。西安電子科技大學(xué)vhdlvhsic hardware description language hdl 的出現(xiàn)是為了適應(yīng)電子系統(tǒng)設(shè)計的日益復(fù)雜性。的出現(xiàn)是為了適應(yīng)電子系統(tǒng)設(shè)計的日益復(fù)雜性。若以計算機(jī)軟件的設(shè)計與電路設(shè)計做個類比:若以計算機(jī)軟件的設(shè)計與電路設(shè)計做個類比: 機(jī)器碼機(jī)器碼好比好比晶體管晶體管/mos管管; 匯編語言匯編語言好比好比電路網(wǎng)表電路網(wǎng)表; hdl語言語言就如同就如同高級語言高級語言。西安電子科技大學(xué)幾種常用的幾種常用的hdl語言:語言: 功能強(qiáng),規(guī)范性好;功能強(qiáng),規(guī)范性好; 功能強(qiáng)、靈活性高;功能強(qiáng)、靈活性高; 屬于較低級的硬件描述語
4、屬于較低級的硬件描述語言;言; altera公司開發(fā),語法簡公司開發(fā),語法簡單,但不通用。單,但不通用。 vhdlvhsic hardware description language西安電子科技大學(xué) vhdl在語法和風(fēng)格上類似于現(xiàn)代高級編程語言。在語法和風(fēng)格上類似于現(xiàn)代高級編程語言。但要注意,但要注意,vhdl畢竟描述的是畢竟描述的是硬件硬件,它包含許多硬,它包含許多硬件特有的結(jié)構(gòu)。件特有的結(jié)構(gòu)。描述特點是描述特點是 :描述的特點是:描述的特點是:vhdlvhsic hardware description language西安電子科技大學(xué)vhdl與計算機(jī)語言的區(qū)別與計算機(jī)語言的區(qū)別l 計算
5、機(jī)語言是在計算機(jī)語言是在cpuram構(gòu)建的平臺上運行構(gòu)建的平臺上運行l(wèi) vhdl設(shè)計的結(jié)果是由具體的邏輯、觸發(fā)器組成的數(shù)字電路設(shè)計的結(jié)果是由具體的邏輯、觸發(fā)器組成的數(shù)字電路(使用使用quartus 軟件編程,最終下載入可編程邏輯器件中實現(xiàn)一個數(shù)字系統(tǒng))軟件編程,最終下載入可編程邏輯器件中實現(xiàn)一個數(shù)字系統(tǒng))l計算機(jī)語言基本上以計算機(jī)語言基本上以串行串行的方式執(zhí)行的方式執(zhí)行l(wèi)vhdl在總體上是以在總體上是以并行并行方式工作方式工作l計算機(jī)語言主要關(guān)注于計算機(jī)語言主要關(guān)注于變量值變量值的變化的變化lvhdl要實現(xiàn)嚴(yán)格的要實現(xiàn)嚴(yán)格的時序邏輯時序邏輯關(guān)系關(guān)系西安電子科技大學(xué)數(shù)字電路與系統(tǒng)設(shè)計數(shù)字電路與系
6、統(tǒng)設(shè)計回顧回顧組合邏輯電路組合邏輯電路時序邏輯電路時序邏輯電路分析分析設(shè)計設(shè)計真值表真值表分析分析設(shè)計設(shè)計輸入輸入/輸出輸出抽象抽象(實體)(實體)電路功能電路功能實現(xiàn)實現(xiàn)(結(jié)構(gòu)體)(結(jié)構(gòu)體)entityarchitecture與、或、非與、或、非與非、或非與非、或非異或、同或異或、同或rs觸發(fā)器觸發(fā)器d觸發(fā)器觸發(fā)器t觸發(fā)器觸發(fā)器jk觸發(fā)器觸發(fā)器西安電子科技大學(xué)主要內(nèi)容安排主要內(nèi)容安排1 多路選擇器的多路選擇器的vhdl描述描述2 時序電路的時序電路的vhdl描述描述3 更復(fù)雜電路的更復(fù)雜電路的vhdl描述描述5 vhdl設(shè)計練習(xí)設(shè)計練習(xí)4 有限狀態(tài)機(jī)(狀態(tài)轉(zhuǎn)移圖)設(shè)計有限狀態(tài)機(jī)(狀態(tài)轉(zhuǎn)移圖)
7、設(shè)計西安電子科技大學(xué)1 多路選擇器的多路選擇器的vhdl描述描述例例1.1 2選選1多路選擇器的多路選擇器的vhdl描述描述 2選選1mux輸入輸入/輸出輸出端口端口(實體(實體entity) abymux21s電路功能電路功能實現(xiàn)實現(xiàn)(結(jié)構(gòu)體(結(jié)構(gòu)體architecture)?西安電子科技大學(xué)例例1.1 2選選1多路選擇器的多路選擇器的1 多路選擇器的多路選擇器的vhdl描述描述abymux21sentity is port (a, b : in bit ; s : in bit ; y : out bit ) ; end entity ; 西安電子科技大學(xué)entity mux21 is p
8、ort ( 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多路選擇器的多路選擇器的abymux21ss=0s=1abys1 多路選擇器的多路選擇器的vhdl描述描述西安電子科技大學(xué)例例1.1 2選選1多路選擇器的多路選擇器的architecture one of mux21 is signal d,e : bit; -d,e 為內(nèi)部信號為內(nèi)部
9、信號begin d = a and (not s) ; e = b and s ; y = d or e ;end architecture one ; abymux21s1 多路選擇器的多路選擇器的vhdl描述描述西安電子科技大學(xué)例例1.1 2選選1多路選擇器的多路選擇器的1 多路選擇器的多路選擇器的vhdl描述描述y = (a and (not s) or ( b and s) ; architecture behave of mux21 isbeginend behave;y = as+bsabymux21s說明:以上說明:以上三種結(jié)構(gòu)體三種結(jié)構(gòu)體描述都是描述都是西安電子科技大學(xué)例例1.
10、1 2選選1多路選擇器的多路選擇器的1 多路選擇器的多路選擇器的vhdl描述描述s=0s=1abysabymux21s architecture one of mux21 isbegin (a,b,s) if s = 0 then y = a ; else y = b ; end if; end architecture one ; -a,b,s 為敏感信號表為敏感信號表西安電子科技大學(xué)2選選1多路選擇器功能時序波形多路選擇器功能時序波形 例例1.1 2選選1多路選擇器的多路選擇器的1 多路選擇器的多路選擇器的vhdl描述描述西安電子科技大學(xué)1.1 實體表達(dá)(實體表達(dá)(entity) 1 多路
11、選擇器的多路選擇器的vhdl描述描述例例1.1vhdl描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明entity 實體名實體名 is generic (類屬表);(類屬表); port (端口表);(端口表);end entity 實體名;實體名; 實體在電路中主要是說明該電路的輸入、輸出關(guān)實體在電路中主要是說明該電路的輸入、輸出關(guān)系,更具體地說就是用來定義實體與外部的連接關(guān)系系,更具體地說就是用來定義實體與外部的連接關(guān)系以及需傳送給實體的參數(shù)。以及需傳送給實體的參數(shù)。entity 實體名實體名 is generic (類屬表類屬表);); port (端口表端口表);)
12、;end entity 實體名;實體名;(1)類屬表:用于指定參數(shù)的大小、實體中子元件的數(shù)目)類屬表:用于指定參數(shù)的大小、實體中子元件的數(shù)目及實體的定時特性等,用以將信息參數(shù)傳遞到實體。及實體的定時特性等,用以將信息參數(shù)傳遞到實體。(2)端口表:指明實體的輸入、輸出信號及其模式、數(shù)據(jù))端口表:指明實體的輸入、輸出信號及其模式、數(shù)據(jù)類型。類型。port (端口名:端口模式端口名:端口模式 數(shù)據(jù)類型;數(shù)據(jù)類型; 端口名:端口模式端口名:端口模式 數(shù)據(jù)類型數(shù)據(jù)類型 );英文字母英文字母+ +數(shù)字?jǐn)?shù)字?jǐn)?shù)據(jù)流動方向數(shù)據(jù)流動方向主要有主要有“位位”和和“位矢量位矢量”兩類兩類設(shè)計者自己命名的名稱(文件名)
13、設(shè)計者自己命名的名稱(文件名)例如:例如:mux21的端口描述的端口描述增加以下語句增加以下語句:generic (m: time:=1ns)類屬參數(shù)說明語句,它定類屬參數(shù)說明語句,它定義了延時時間為義了延時時間為1ns 注意注意 簡單地說簡單地說方向定義方向定義含義含義in輸入,定義的通道為單向輸入模式輸入,定義的通道為單向輸入模式 out輸出,輸出,定義的通道為單向輸出模式定義的通道為單向輸出模式 inout雙向,定義的通道確定為輸入輸出雙向端口雙向,定義的通道確定為輸入輸出雙向端口 buffer緩沖端口,其功能與緩沖端口,其功能與inout類似類似 常用端口模式:常用端口模式:例:例:e
14、ntity is port (a, b, : in ; s : in ; y : out ) ; end entity ; vhdl中任何一種數(shù)據(jù)對象(信號、變量、常數(shù))必須嚴(yán)中任何一種數(shù)據(jù)對象(信號、變量、常數(shù))必須嚴(yán)格限定其取值范圍。格限定其取值范圍。 vhdl 中一個對象只能有一種類型,施加于該對象的操中一個對象只能有一種類型,施加于該對象的操作必須與該類型相匹配。作必須與該類型相匹配。 常用數(shù)據(jù)類型有:常用數(shù)據(jù)類型有:bit,bit_vector,std_logic,std_logic_vector,integer,boolean等(參考書上等(參考書上p260表表10.3.1)西安電
15、子科技大學(xué)1.2 結(jié)構(gòu)體表達(dá)(結(jié)構(gòu)體表達(dá)(architecture) 1 多路選擇器的多路選擇器的vhdl描述描述architecture 結(jié)構(gòu)體名結(jié)構(gòu)體名 of 實體名實體名 is 定義語句定義語句 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等定義;begin 功能描述語句功能描述語句;end architecture 結(jié)構(gòu)體名;結(jié)構(gòu)體名;它是該結(jié)構(gòu)體的唯一名稱。它是該結(jié)構(gòu)體的唯一名稱?!皁f”后面緊跟的實體名表明了該結(jié)構(gòu)體所對應(yīng)的是后面緊跟的實體名表明了該結(jié)構(gòu)體所對應(yīng)的是哪一個實體。用哪一個實體。用 “is”來結(jié)束結(jié)構(gòu)體的命名。來結(jié)束結(jié)構(gòu)體的命名。architec
16、ture of 實體名實體名 is 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;begin ;end architecture 結(jié)構(gòu)體名;結(jié)構(gòu)體名;位于位于“architecture”和和“begin”之之間。用于對結(jié)構(gòu)體內(nèi)部所使用的信號、常數(shù)、數(shù)據(jù)類型和函間。用于對結(jié)構(gòu)體內(nèi)部所使用的信號、常數(shù)、數(shù)據(jù)類型和函數(shù)等進(jìn)行定義。如:數(shù)等進(jìn)行定義。如:architecture of 實體名實體名 is 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;begin ;end architecture 結(jié)構(gòu)體名;結(jié)構(gòu)體名;cont:std_
17、logic_vector(3downto0);co_1:std_logic;m:time:=2 ns;(init,dad,adc,srf,frf);(枚舉類型);(枚舉類型) 處于處于“begin”和和“end”之間。之間。具體描述了結(jié)構(gòu)體的行為及其連接關(guān)系。具體描述了結(jié)構(gòu)體的行為及其連接關(guān)系。architecture of 實體名實體名 is 內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;內(nèi)部信號,常數(shù),數(shù)據(jù)類型,函數(shù)等的定義;begin ;end architecture 結(jié)構(gòu)體名;結(jié)構(gòu)體名;(behavioral) 結(jié)構(gòu)體的行為描述表示輸入與輸出間轉(zhuǎn)換的關(guān)系,是結(jié)構(gòu)體的行為描述表示輸入與輸出間
18、轉(zhuǎn)換的關(guān)系,是對設(shè)計實體按算法的路徑來進(jìn)行描述的。行為描述在對設(shè)計實體按算法的路徑來進(jìn)行描述的。行為描述在 eda 工程中稱為高層次描述或高級描述。工程中稱為高層次描述或高級描述??蠢}!看例題!如圖所示的如圖所示的半加器半加器,其功能,其功能真值表已經(jīng)給出,寫出它的真值表已經(jīng)給出,寫出它的行為行為描述描述。半加器半加器abcsabcs0000000011111110半加器真值表半加器真值表:abcs0000000011111110半加器半加器abcs (entity部分省略)部分省略) architecture alg_ha of half_adder is begin process (a
19、 , 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; 高層次的功能描高層次的功能描述,不必考慮在述,不必考慮在電路中到底是怎電路中到底是怎樣實現(xiàn)的。樣實現(xiàn)的。(dataflow) 它反映了從輸入數(shù)據(jù)到輸出數(shù)據(jù)之間所發(fā)生的邏輯它反映了從輸入數(shù)據(jù)到輸出數(shù)據(jù)之間所發(fā)生的邏輯變換,或者說描述了數(shù)據(jù)流程的運動路徑、運動方向和運變換,或者說描述了數(shù)據(jù)流程的運動路徑、運動方向和運動結(jié)果。動結(jié)果。(structura
20、l) 結(jié)構(gòu)化描述給出了實體內(nèi)部結(jié)構(gòu)、所包含的模塊或結(jié)構(gòu)化描述給出了實體內(nèi)部結(jié)構(gòu)、所包含的模塊或元件間互連關(guān)系;與實體外部引線的對應(yīng)關(guān)系。元件間互連關(guān)系;與實體外部引線的對應(yīng)關(guān)系。練習(xí):練習(xí): 試用上面的兩種方法描述半加器的功能。試用上面的兩種方法描述半加器的功能。半加器半加器abcs西安電子科技大學(xué)結(jié)構(gòu)體中三種描述方式的比較結(jié)構(gòu)體中三種描述方式的比較布爾函數(shù)定義明布爾函數(shù)定義明白白連接關(guān)系清晰,連接關(guān)系清晰,電路模塊化清晰電路模塊化清晰 優(yōu)優(yōu) 點點小門數(shù)設(shè)計小門數(shù)設(shè)計不易描述復(fù)雜電路,不易描述復(fù)雜電路,修改不易修改不易數(shù)據(jù)流描述數(shù)據(jù)流描述電路層次化設(shè)計電路層次化設(shè)計電路不易理解、繁瑣、電路不易
21、理解、繁瑣、復(fù)雜復(fù)雜結(jié)構(gòu)化描述結(jié)構(gòu)化描述 適用場合適用場合 缺缺 點點描述方式描述方式電路特性清楚明電路特性清楚明了了大型復(fù)雜的電路模大型復(fù)雜的電路模塊設(shè)計塊設(shè)計進(jìn)行綜合效率相對較進(jìn)行綜合效率相對較低低行為描述行為描述西安電子科技大學(xué) 信號賦值符信號賦值符 “=” 表達(dá)式中的等號表達(dá)式中的等號“=”沒有沒有賦值的含義,只是一種數(shù)據(jù)賦值的含義,只是一種數(shù)據(jù)比較符號。比較符號。 1.3 賦值符號和數(shù)據(jù)比較符號賦值符號和數(shù)據(jù)比較符號 1 多路選擇器的多路選擇器的vhdl描述描述例例1.1vhdl描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明 architecture one o
22、f mux21 isbegin process (a,b,s) begin if s 0 then y a ; else y b ; end if; end process;end architecture one ; 西安電子科技大學(xué)1.4 邏輯操作符邏輯操作符 1 多路選擇器的多路選擇器的vhdl描述描述例例1.1vhdl描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明y = (a ( s) (b s) ; architecture behave of mux21 isbeginend behave; vhdl共有共有7種基本邏輯操作符:種基本邏輯操作符: 要求數(shù)據(jù)類型
23、:要求數(shù)據(jù)類型: bit boolean std_logic西安電子科技大學(xué)architecture one of mux21 is begin y = a s = 0 b ;end architecture one ; 1.5 when_else條件信號賦值語句條件信號賦值語句 1 多路選擇器的多路選擇器的vhdl描述描述例例1.1vhdl描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明賦值目標(biāo)賦值目標(biāo) = 表達(dá)式表達(dá)式 when 賦值條件賦值條件 else 表達(dá)式表達(dá)式 when 賦值條件賦值條件 else 表達(dá)式表達(dá)式 ; 西安電子科技大學(xué)在在vhdl中,所有的中,所
24、有的,如,如“if_then_else_end if”,都必須放在由都必須放在由“processend process”引導(dǎo)的進(jìn)程結(jié)構(gòu)中。引導(dǎo)的進(jìn)程結(jié)構(gòu)中。 在一個結(jié)構(gòu)體(在一個結(jié)構(gòu)體(architecture)中可以包含任意個進(jìn)程語句,)中可以包含任意個進(jìn)程語句,所有的進(jìn)程語句都是所有的進(jìn)程語句都是,而進(jìn)程,而進(jìn)程process引導(dǎo)的內(nèi)部語句結(jié)構(gòu)引導(dǎo)的內(nèi)部語句結(jié)構(gòu)屬于屬于。1.4 進(jìn)程語句和順序語句進(jìn)程語句和順序語句 1 多路選擇器的多路選擇器的vhdl描述描述例例1.1vhdl描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明描述中出現(xiàn)的相關(guān)語句結(jié)構(gòu)和語法說明西安電子科技大學(xué)1 小結(jié)小結(jié)在在2選選1的的v
25、hdl描述中出現(xiàn)的語言現(xiàn)象歸納:描述中出現(xiàn)的語言現(xiàn)象歸納:實體:實體: entity結(jié)構(gòu)體:結(jié)構(gòu)體:architecture端口定義:端口定義: port( )端口模式:端口模式:in/out/inout數(shù)據(jù)類型:數(shù)據(jù)類型:bit、std_logic信號賦值符:信號賦值符:=條件比較符:條件比較符:=邏輯操作符:邏輯操作符:andif條件語句:條件語句:ifend if并行條件語句:并行條件語句:whenelse進(jìn)程語句:進(jìn)程語句:processend process順序語句:順序語句:由進(jìn)程語句引導(dǎo)由進(jìn)程語句引導(dǎo)并行語句:簡單賦值語句并行語句:簡單賦值語句 when.else語句語句 wit
26、h .select語句語句西安電子科技大學(xué)補充 with . select 語句 用with . select語句描述2選1多路選擇器entity is port (a, b : in std_logic; s : in std_logic; y : out std_logic); end ; architecture one of mux21 isbegin with s select y = a when 0; b when others ;end one ; 西安電子科技大學(xué)2 時序電路的時序電路的vhdl描述描述例例2.1 d觸發(fā)器的觸發(fā)器的vhdl描述描述 最簡單、最具有代表性的時序
27、電路是最簡單、最具有代表性的時序電路是d觸發(fā)器。觸發(fā)器。(實體(實體entity) 電路功能描述電路功能描述(結(jié)構(gòu)體(結(jié)構(gòu)體architecture)?dclkqdff1entity dff1 is - 端口聲明端口聲明 port (clk, d : in ; q : out );end entity dff1;architecture bhv of dff1 is -結(jié)構(gòu)體描述結(jié)構(gòu)體描述 q1 : std_logic ; -類似于在芯片內(nèi)部定義一個數(shù)據(jù)的暫存節(jié)點類似于在芯片內(nèi)部定義一個數(shù)據(jù)的暫存節(jié)點begin process (clk) - 進(jìn)程進(jìn)程 begin if then q1 = d
28、 ; end if; end process ; q = q1 ; -將內(nèi)部的暫存數(shù)據(jù)向端口輸出(雙橫線將內(nèi)部的暫存數(shù)據(jù)向端口輸出(雙橫線-是注釋符號)是注釋符號)end architecture bhv; 例例2.1 d觸發(fā)器的觸發(fā)器的vhdl描述描述 vhdl電路描述與設(shè)電路描述與設(shè)計平臺和硬件實現(xiàn)對象計平臺和硬件實現(xiàn)對象 (組組合或時序邏輯合或時序邏輯) 無關(guān)。無關(guān)。dclkqdff1例例2.1中中d觸發(fā)器的觸發(fā)器的vhdl描述的語言現(xiàn)象說明描述的語言現(xiàn)象說明 2.1 完整完整vhdl程序程序基本構(gòu)成基本構(gòu)成vhdl設(shè)計設(shè)計vhdl文件文件庫和程序包庫和程序包 聲明在設(shè)計或?qū)嶓w中將用到的
29、常數(shù),數(shù)據(jù)類型,元件聲明在設(shè)計或?qū)嶓w中將用到的常數(shù),數(shù)據(jù)類型,元件及子程序等及子程序等實體(實體(entities) 聲明到其實體及其設(shè)聲明到其實體及其設(shè)計的接口,即定義本設(shè)計的接口,即定義本設(shè)計的輸入計的輸入/出端口出端口結(jié)構(gòu)體結(jié)構(gòu)體(architectures) 定義了實體的實現(xiàn)。即定義了實體的實現(xiàn)。即電路功能的具體描述電路功能的具體描述西安電子科技大學(xué) 定義了一組數(shù)據(jù)類型說明、常量說明、元件說明和子定義了一組數(shù)據(jù)類型說明、常量說明、元件說明和子程序說明。以供其它多個設(shè)計實體引用。程序說明。以供其它多個設(shè)計實體引用。 是專門存放預(yù)先編譯好的程序包的地方,這樣它們就可以在是專門存放預(yù)先編譯好
30、的程序包的地方,這樣它們就可以在其它設(shè)計中被調(diào)用。其它設(shè)計中被調(diào)用。 就是為了使一組類型說明,常量說明和子程就是為了使一組類型說明,常量說明和子程序說明對多個設(shè)計實體都成為可見的而提供的一種結(jié)構(gòu)。它序說明對多個設(shè)計實體都成為可見的而提供的一種結(jié)構(gòu)。它們?nèi)缤瑐內(nèi)缤琧語言中的語言中的*.h文件,定義了一些類型說明,函數(shù)一文件,定義了一些類型說明,函數(shù)一樣。樣。西安電子科技大學(xué) 例如:例如: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ieee是是ieee標(biāo)準(zhǔn)庫的標(biāo)志名,兩個標(biāo)準(zhǔn)庫的標(biāo)志名,兩
31、個use語句使得以下設(shè)計語句使得以下設(shè)計可使用程序包可使用程序包std_logic_1164, std_logic_unsigned中所有預(yù)定義的中所有預(yù)定義的內(nèi)容,如內(nèi)容,如std_logic,in,out的定義等。的定義等。格式:格式: library ; use .all;西安電子科技大學(xué)西安電子科技大學(xué) type bit is(0,1); 即即bit數(shù)據(jù)類型僅可取值數(shù)據(jù)類型僅可取值0或或1; type std_logic is (u,x,0,1,z,w,l,h,-); 工業(yè)標(biāo)準(zhǔn)邏輯類型,取值工業(yè)標(biāo)準(zhǔn)邏輯類型,取值u,x,0,1,z, w, l, h和和- 2.2 標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型標(biāo)準(zhǔn)
32、邏輯位數(shù)據(jù)類型std_logic entity is - 端口聲明端口聲明 port (clk, d : in ; q : out );end entity ;entity is port (a, b, : in ; s : in ; y : out ); end entity ; 西安電子科技大學(xué)2.3 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象 信號的使用和定義范圍是實體、結(jié)構(gòu)體和程序包,信號的使用和定義范圍是實體、結(jié)構(gòu)體和程序包,在進(jìn)程和子在進(jìn)程和子程序的順序語句中不允許定義信號。程序的順序語句中不允許定義信號。(只有信號才能把進(jìn)程外的信(只有信號才能把進(jìn)程外的信息帶入進(jìn)程內(nèi)部,或?qū)⑦M(jìn)程內(nèi)的信
33、息帶出進(jìn)程)息帶入進(jìn)程內(nèi)部,或?qū)⑦M(jìn)程內(nèi)的信息帶出進(jìn)程)西安電子科技大學(xué)2.3 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象 在在vhdl中,變量是一個局部量,作為臨時的數(shù)據(jù)存儲單元,中,變量是一個局部量,作為臨時的數(shù)據(jù)存儲單元,只能在進(jìn)程和子程序的順序語句中使用只能在進(jìn)程和子程序的順序語句中使用。變量定義中的初始值僅對。變量定義中的初始值僅對仿真有效,實際的綜合器并不支持設(shè)置初始值。仿真有效,實際的綜合器并不支持設(shè)置初始值。西安電子科技大學(xué)2.3 信號定義和數(shù)據(jù)對象信號定義和數(shù)據(jù)對象 常量的定義主要是為了程序更容易閱讀和修改。在所有的常量的定義主要是為了程序更容易閱讀和修改。在所有的vhdl結(jié)構(gòu)中都可
34、以定義常量,如實體、結(jié)構(gòu)體、程序包、進(jìn)程和結(jié)構(gòu)中都可以定義常量,如實體、結(jié)構(gòu)體、程序包、進(jìn)程和子程序等。常量是一個恒定不變的值。子程序等。常量是一個恒定不變的值。西安電子科技大學(xué)2.4 上升沿檢測表上升沿檢測表達(dá)達(dá)式和信號屬性函數(shù)式和信號屬性函數(shù)event process (clk) - 進(jìn)程進(jìn)程 begin if then q1 = d ; end if; end process ;邊沿檢測語句邊沿檢測語句2.5 不完整條件語句與時序電路不完整條件語句與時序電路 entity dff1 is - dff 端口聲明端口聲明 port (clk, d : in ; q : out );end e
35、ntity dff1;architecture bhv of dff1 is q1 : std_logic ; begin process (clk) - 進(jìn)程進(jìn)程 begin if then q1 = d ; end if; end process ; q = q1 ; end architecture bhv; 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 pr
36、ocess;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 process ;end ;例例b:eda軟件綜合結(jié)果軟件綜合結(jié)果西安電子科技大學(xué)2.6 實現(xiàn)時序電路的實現(xiàn)時序電路的vhdl不同表述不同表述 entity dff1 is - dff 端口聲明端口聲明 port (clk, d : in ; q : out );end entity dff1;architec
37、ture bhv of dff1 is q1 : std_logic ; begin process (clk) - 進(jìn)程進(jìn)程 begin if then q1 = d ; end if; end process ; q = q1 ; end architecture bhv; .process (clk) begin if then q = d ; -確保確保clk的變化是一次上升沿的跳變的變化是一次上升沿的跳變 end if; end process ; .process (clk)begin - 同上同上 if then q = d ; end if; end process ; 2.6
38、 實現(xiàn)時序電路的實現(xiàn)時序電路的vhdl不同表述不同表述 library ieee ; ;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 then q1 = d ; end if; end process ; q = q1 ; end ; 西安電子科技大學(xué).process begin clk = 1 ; q = d ;end process; 2
39、.6 實現(xiàn)時序電路的實現(xiàn)時序電路的vhdl不同表述不同表述 西安電子科技大學(xué).process ()begin if then q = d ; end if; end process ; 上升沿觸發(fā)上升沿觸發(fā)dff的仿真波形:的仿真波形:2.6 實現(xiàn)時序電路的實現(xiàn)時序電路的vhdl不同表述不同表述 西安電子科技大學(xué).process (, ) begin if then q 0); -計數(shù)器復(fù)位(高有效)計數(shù)器復(fù)位(高有效) elsif (clkevent and clk = 1) then -檢測時鐘上升沿檢測時鐘上升沿 if (en=1) then -檢測是否允許計數(shù)(不完全條件語句)檢測是否
40、允許計數(shù)(不完全條件語句) if cqi 9 then cqi :=cqi+1; -允許計數(shù),且計數(shù)允許計數(shù),且計數(shù)0); -計數(shù)狀態(tài)計數(shù)狀態(tài)=9,下一狀態(tài)清零,下一狀態(tài)清零 end if; end if; end if; if cqi = 9 then co = 1; -計數(shù)狀態(tài)計數(shù)狀態(tài)=9,輸出進(jìn)位信號,輸出進(jìn)位信號 else co =0; end if; qcnt 0); -計數(shù)器復(fù)位(高有效)計數(shù)器復(fù)位(高有效) elsif (clkevent and clk = 1) then -檢測時鐘上升沿檢測時鐘上升沿 if (en=1) then -檢測是否允許計數(shù)(不完全條件語句)檢測是否
41、允許計數(shù)(不完全條件語句) if cqi 9 then cqi :=cqi+1; -允許計數(shù),且計數(shù)允許計數(shù),且計數(shù)0); -計數(shù)狀態(tài)計數(shù)狀態(tài)=9,下一狀態(tài)清零,下一狀態(tài)清零 end if; end if; end if; if cqi = 9 then co = 1; -計數(shù)狀態(tài)計數(shù)狀態(tài)=9,輸出進(jìn)位信號,輸出進(jìn)位信號 else co =0; end if; qcnt = cqi; -將計數(shù)值輸出到端口將計數(shù)值輸出到端口 end process;end behave;10進(jìn)制計數(shù)器時序波形仿真結(jié)果進(jìn)制計數(shù)器時序波形仿真結(jié)果西安電子科技大學(xué)variable cqi : std_logic_ve
42、ctor(3 downto 0) ; signal d1 : std_logic_vector(4 downto 0); variable a1 : std_logic_vector(15 downto 0); . d1 0); a1 := (others=0) ; 西安電子科技大學(xué)3.3 不同工作方式的時序電路設(shè)計不同工作方式的時序電路設(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
43、0); qb : out std_logic);end entity shifter;architecture behave of shifter is -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 reg8(6 downto 0) :=reg8 (7 downto 1); end if; end if; qb = r
44、eg8(0) ; - 串行輸出最低位串行輸出最低位 end process; end architecture behave;移位寄存器時序波形仿真結(jié)果移位寄存器時序波形仿真結(jié)果西安電子科技大學(xué)3.4 1位二進(jìn)制全加器的位二進(jìn)制全加器的vhdl描述描述 1位二進(jìn)制全加器引腳圖位二進(jìn)制全加器引腳圖1位二進(jìn)制全加器實現(xiàn)原理圖位二進(jìn)制全加器實現(xiàn)原理圖1位二進(jìn)制位二進(jìn)制半加器半加器西安電子科技大學(xué)3.4.1 半加器的半加器的vhdl描述描述 1001010110001100cosoba半加器真值表半加器真值表 coasobnotxnor2and2半加器電路圖半加器電路圖3.4 1位二進(jìn)制全加器的位二進(jìn)
45、制全加器的vhdl描述描述 so=?co=?-半加器描述半加器描述(1):布爾方程描述方法:布爾方程描述方法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
46、.1 半加器的半加器的vhdl描述描述 -半加器描述半加器描述(2):真值表描述方法(:真值表描述方法(1) -這里省略庫和實體聲明部分這里省略庫和實體聲明部分architecture fh1 of h_adder is abc : std_logic_vector(1 downto 0) ; begin process (abc) begin case abc is - when 00 so=0; co=0 ; when 01 so=1; co=0 ; when 10 so=1; co=0 ; when 11 so=0; co=1 ; when others null ; end case;
47、 end process; end architecture fh1 ; vhdl描述中的描述中的基本結(jié)構(gòu)與語法基本結(jié)構(gòu)與語法:vhdl運算符運算符 &:連接運算符:連接運算符 &連接,將兩個對象或矢量連接成維數(shù)更大連接,將兩個對象或矢量連接成維數(shù)更大的矢量的矢量, 它可給代碼書寫帶來方便。它可給代碼書寫帶來方便。 例如,為表達(dá)例如,為表達(dá)a=1 and b=0 and c=1概念概念,可定義一個變量:,可定義一個變量: vabc=a & b & c;則可用;則可用 vabc=“101”表達(dá)上述內(nèi)容。表達(dá)上述內(nèi)容。-半加器描述半加器描述(3):真值表描述方法(:
48、真值表描述方法(2) -這里省略庫和實體聲明部分這里省略庫和實體聲明部分architecture fh1 of h_adder is begin abc 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 enti
49、ty or2a;architecture one of or2a is -結(jié)構(gòu)體描述結(jié)構(gòu)體描述 begin end architecture one ; 3.4.2 “或門或門”邏輯的邏輯的vhdl描述描述 3.4.3 1位二進(jìn)制全加器的位二進(jìn)制全加器的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 o
50、f f_adder is -結(jié)構(gòu)體描述結(jié)構(gòu)體描述 signal d,e,f: std_logic; begin u1:h_adder port map(a=ain, b=bin, co=d, so=e); u2:h_adder port map(a=e, b=cin, co=f, so=sum); u3:or2a port map(a=d, b=f, c=cout); end architecture fd1;vhdl描述中的描述中的基本結(jié)構(gòu)與語法基本結(jié)構(gòu)與語法:std_logic_vector std_logic 在使用在使用std_logic_vector中,必須注明其數(shù)組寬中,必須注明其
51、數(shù)組寬度,即位寬,如:度,即位寬,如: b : out std_logic_vector ; signal a :std_logic_vector ; b = 01100011 ; - b(7)為為 0 b(4 downto 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=a
52、in, b=bin, co=d, so=e);西安電子科技大學(xué)1、狀態(tài)機(jī)分類:、狀態(tài)機(jī)分類:按輸出按輸出方式分方式分mealy型型moore型型輸出僅為當(dāng)前狀態(tài)的函輸出僅為當(dāng)前狀態(tài)的函數(shù)數(shù)輸出是當(dāng)前狀態(tài)和輸入輸出是當(dāng)前狀態(tài)和輸入的函數(shù)的函數(shù)按結(jié)按結(jié)構(gòu)分構(gòu)分單單 進(jìn)進(jìn) 程程多多 進(jìn)進(jìn) 程程主進(jìn)程和輔進(jìn)程合一主進(jìn)程和輔進(jìn)程合一分時序、組合主進(jìn)程,分時序、組合主進(jìn)程,輔助進(jìn)程輔助進(jìn)程4 有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計 4.1 一般有限狀態(tài)機(jī)的設(shè)計一般有限狀態(tài)機(jī)的設(shè)計 時序電路可以稱為有限狀態(tài)機(jī)時序電路可以稱為有限狀態(tài)機(jī)(finite state machine, fsm),以此命名的原,以此命名的原因
53、是可以使用有限數(shù)量的狀態(tài)表示時序電路的功能行為。因是可以使用有限數(shù)量的狀態(tài)表示時序電路的功能行為。西安電子科技大學(xué)按狀態(tài)按狀態(tài)表達(dá)分表達(dá)分符號狀態(tài)機(jī)符號狀態(tài)機(jī)確定編碼狀態(tài)機(jī)確定編碼狀態(tài)機(jī)s0,s1,s2,000,001,010, 按編碼按編碼方式分方式分順序編碼順序編碼一位熱碼一位熱碼二進(jìn)制順序編碼等二進(jìn)制順序編碼等00001,00010,00100, 其它編碼其它編碼格雷碼,循環(huán)碼,等格雷碼,循環(huán)碼,等4 有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計西安電子科技大學(xué)2、用戶自定義數(shù)據(jù)類型、用戶自定義數(shù)據(jù)類型4 有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計4.1 一般有限狀態(tài)機(jī)的設(shè)計一般有限狀態(tài)機(jī)的設(shè)計type 數(shù)據(jù)類型名數(shù)
54、據(jù)類型名 is 數(shù)據(jù)類型定義;數(shù)據(jù)類型定義;例如:例如:type m_state is (st0,st1,st2,st3,st4,st5);signal present_state,next_state : m_state;西安電子科技大學(xué)3、一般狀態(tài)機(jī)的設(shè)計、一般狀態(tài)機(jī)的設(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 有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計4.1 一般有限狀
55、態(tài)機(jī)的設(shè)計一般有限狀態(tài)機(jī)的設(shè)計b、主控時序進(jìn)程、主控時序進(jìn)程 該部分是在該部分是在clk控制下,進(jìn)行狀態(tài)轉(zhuǎn)換控制下,進(jìn)行狀態(tài)轉(zhuǎn)換: current_state = next_state ;c、主控組合進(jìn)程、主控組合進(jìn)程 該部分是確定該部分是確定current_state,next_state的取值,的取值,為時序進(jìn)程提供參數(shù);進(jìn)行狀態(tài)轉(zhuǎn)換條件的判定;進(jìn)為時序進(jìn)程提供參數(shù);進(jìn)行狀態(tài)轉(zhuǎn)換條件的判定;進(jìn)行輸出判定。行輸出判定。d、輔助進(jìn)程、輔助進(jìn)程 該部分是配合主控時序進(jìn)程或主控組合進(jìn)程,完該部分是配合主控時序進(jìn)程或主控組合進(jìn)程,完成某種成某種算法算法、輸出輸出數(shù)據(jù)鎖存數(shù)據(jù)鎖存等。等。西安電子科技大
56、學(xué)rsts0/5s2/12s3/14s1/80000elseelseelse1111else state_inputsstate/outputclkresetstate inputs24comb_outputs狀態(tài)機(jī)4 有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計4.2 雙進(jìn)程雙進(jìn)程moore型有限狀態(tài)機(jī)的設(shè)計型有限狀態(tài)機(jī)的設(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); com
57、b_outputs : out integer range 0 to 15); end s_machine; architecture behv of s_machine is clkresetstate inputs24comb_outputs狀態(tài)機(jī)beginreg: process (reset, clk)begin if reset =1 then current_state = s0;elsif (clkevent and clk =1 ) then current_state comb_outputs = 5; if state_inputs =“00” then next_stat
58、e = s0; else next_state comb_outputs = 8; if state_inputs =“00” then next_state = s1;else next_state comb_outputs = 12; if state_inputs =“11” then next_state = s0;else next_state comb_outputs = 14; if state_inputs =“11” then next_state = s3;else next_state = s0; end if;end process;end behv;rsts0/5s2
59、/12s3/14s1/80000elseelseelse1111else西安電子科技大學(xué)mealy型型輸出是當(dāng)前狀態(tài)和輸入的函數(shù)輸出是當(dāng)前狀態(tài)和輸入的函數(shù)例:例: “1110”序列序列檢測器設(shè)計檢測器設(shè)計0/11/01/0sa1/00/00/00/0sbscsdx/z1/04 有限狀態(tài)機(jī)設(shè)計有限狀態(tài)機(jī)設(shè)計4.3 mealy型有限狀態(tài)機(jī)的設(shè)計型有限狀態(tài)機(jī)的設(shè)計library ieee;use ieee.std_logic_1164.all;entity statem is port ( clk : in std_logic; x,reset : in std_logic; z: out std_
60、logic );end statem;0/11/01/0sa1/00/00/00/0sbscsdx/z1/0例:例: “1110”序列檢測器設(shè)計序列檢測器設(shè)計architecture behave of statem istype state_type is (sa, sb, sc,sd);signal state: state_type;begin process (clk,reset) begin if reset = 1 then state if x=1 then state = sb; else state if x=1 then state = sc; else state if x=1 then state=
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年上半年安徽省蕪湖無為縣赫店鎮(zhèn)招考15人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省滁州市來安縣政府購買崗招聘15人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年血液透析器項目資金申請報告代可行性研究報告
- 2025年上半年安徽池州金橋投資集團(tuán)限公司招聘25人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽宿州蕭縣交通投資限責(zé)任公司子公司招聘17人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波市人才服務(wù)中心招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年寧波衛(wèi)生職業(yè)技術(shù)學(xué)院招考高層次人才教師易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年Υ射線立體定向放射項目合作計劃書
- 2025年加厚漆膜改性聚酯漆包銅扁線項目可行性研究報告
- 2025年仿古藝術(shù)折疊門項目可行性研究報告
- GB/T 8897.1-2003原電池第1部分:總則
- 學(xué)雷鋒精神學(xué)習(xí)雷鋒日主題班會課件
- 劍橋少兒英語第一冊-Unit5-our-pets課件
- 《馬克思主義政治經(jīng)濟(jì)學(xué)概論》課程教學(xué)大綱
- 倉庫管理基礎(chǔ)知識培訓(xùn)模板課件
- 孤獨癥康復(fù)教育人員上崗培訓(xùn)練習(xí)題庫及答案
- 環(huán)境心理學(xué)課件
- 《質(zhì)量保證體系》情況說明
- 親人意外逝世的訃告微信群通知五篇-正式的去世訃告模板
- 中電朝陽250兆瓦智慧風(fēng)儲一體化風(fēng)電項目環(huán)評報告書
- 做一個幸福教師
評論
0/150
提交評論