




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第三章第三章組合電路的組合電路的VHDLVHDL設(shè)計(jì)設(shè)計(jì)3.1 3.1 多路選擇器及其多路選擇器及其VHDLVHDL描述描述圖圖3-1 mux21a實(shí)體實(shí)體用用VHDLVHDL綜合器直接綜合出綜合器直接綜合出實(shí)現(xiàn)既定功能的邏輯函數(shù)實(shí)現(xiàn)既定功能的邏輯函數(shù)電路模型或元件圖電路模型或元件圖圖圖3-2 mux21a結(jié)構(gòu)體結(jié)構(gòu)體 【例例3-13-1】ENTITY mux21a IS PORT ( a, b, s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE bhv OF mux21a IS BEGINPROCESS (a,b,s) BEGI
2、N IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE bhv ; 實(shí)體:實(shí)體:描述了電路器描述了電路器件的外部情況及各信件的外部情況及各信號端口的基本性質(zhì)號端口的基本性質(zhì)結(jié)構(gòu)體:結(jié)構(gòu)體:描述電路描述電路器件的內(nèi)部邏輯功器件的內(nèi)部邏輯功能和電路結(jié)構(gòu)能和電路結(jié)構(gòu)3.1 3.1 多路選擇器及其多路選擇器及其VHDLVHDL描述描述【例例3-1】ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTU
3、RE bhv OF mux21a ISBEGIN PROCESS (a,b,s) -進(jìn)程起始語句進(jìn)程起始語句 BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS;END ARCHITECTURE bhv ; 必須以語句必須以語句“END END IFIF;”結(jié)束結(jié)束數(shù)據(jù)類型數(shù)據(jù)類型端口模式端口模式紅色是關(guān)鍵字紅色是關(guān)鍵字不分大小寫不分大小寫標(biāo)識符,不區(qū)標(biāo)識符,不區(qū)分大小寫分大小寫3.1 3.1 多路選擇器及其多路選擇器及其VHDLVHDL描述描述注釋符注釋符敏感信號表敏感信號表當(dāng)某一敏感信號當(dāng)某一敏感信號發(fā)生變化時(shí),將啟發(fā)生
4、變化時(shí),將啟動此進(jìn)程語句動此進(jìn)程語句IN:輸入端口:輸入端口端口模式:端口模式:OUT:輸出端口:輸出端口INOUT:輸入輸出雙向端口:輸入輸出雙向端口BUFFER:緩沖端口:緩沖端口3.1 3.1 多路選擇器及其多路選擇器及其VHDLVHDL描述描述3.1 3.1 多路選擇器及其多路選擇器及其VHDLVHDL描述描述【例例】 ENTITY mux21a ISPORT ( a, b, s: IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT;BEGIN d = a AND
5、(NOT S); e = b AND s; y = d OR e;END ARCHITECTURE one; 實(shí)體實(shí)體結(jié)構(gòu)體結(jié)構(gòu)體圖圖3-3 mux21a功能時(shí)序波形功能時(shí)序波形 3.1 3.1 多路選擇器及其多路選擇器及其VHDLVHDL描述描述3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 I113coasob1001010110001100cosobanotxnor2and2【例例3-2】LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so
6、 : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so = a XOR b; co = a AND b ; END ARCHITECTURE fh1; 實(shí)體實(shí)體結(jié)構(gòu)體結(jié)構(gòu)體設(shè)計(jì)庫和程設(shè)計(jì)庫和程序包調(diào)用序包調(diào)用3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 ENTITYENTITY e_name e_name ISIS PORTPORT ( p_name : port_m data_type; ( p_name : po
7、rt_m data_type; . . p_namei : port_mi data_type ); p_namei : port_mi data_type );END ENTITYEND ENTITY e_name; e_name; 1. 1. 實(shí)體實(shí)體: : 描述電路器件的端口構(gòu)成和信號屬性描述電路器件的端口構(gòu)成和信號屬性 實(shí)體名實(shí)體名實(shí)體名實(shí)體名端口信號名端口信號名數(shù)據(jù)類型:必須預(yù)先定數(shù)據(jù)類型:必須預(yù)先定義好要使用的數(shù)據(jù)類型,義好要使用的數(shù)據(jù)類型,如如bit, std_logic, bit, std_logic, boolean, integerboolean, integer端口模式:
8、定義端口數(shù)據(jù)的流向,端口模式:定義端口數(shù)據(jù)的流向,一般可綜合的端口有四種,一般可綜合的端口有四種,ININ,OUTOUT,INOUTINOUT,BUFFERBUFFER紅色是關(guān)鍵字紅色是關(guān)鍵字不分大小寫不分大小寫必須包含實(shí)必須包含實(shí)體和結(jié)構(gòu)體體和結(jié)構(gòu)體3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 2. 2. 結(jié)構(gòu)體表達(dá)結(jié)構(gòu)體表達(dá) ARCHITECTUREARCHITECTURE arch_name arch_name OFOF e_name e_name ISIS 說明語句說明語句 BEGINBEGIN ( (功能描述語句功能描述語句) )END ARCHITECTUREEND
9、 ARCHITECTURE arch_name arch_name ; 紅色是描述結(jié)紅色是描述結(jié)構(gòu)體的關(guān)鍵字構(gòu)體的關(guān)鍵字結(jié)構(gòu)體名結(jié)構(gòu)體名實(shí)體名實(shí)體名說明和定義數(shù)據(jù)對象、說明和定義數(shù)據(jù)對象、數(shù)據(jù)類型、元件調(diào)用數(shù)據(jù)類型、元件調(diào)用聲明等,不是必需的。聲明等,不是必需的。結(jié)構(gòu)體名結(jié)構(gòu)體名3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 VHDLVHDL基本構(gòu)成基本構(gòu)成VHDL設(shè)計(jì)設(shè)計(jì)VHDL文件文件程序包(程序包(Packages)聲明在設(shè)計(jì)或?qū)嶓w中將用到的常數(shù),數(shù)據(jù)類型,聲明在設(shè)計(jì)或?qū)嶓w中將用到的常數(shù),數(shù)據(jù)類型,元件及子程序等元件及子程序等實(shí)體(實(shí)體(Entities) 聲明到其他實(shí)體及
10、其聲明到其他實(shí)體及其他設(shè)計(jì)的接口,即定義他設(shè)計(jì)的接口,即定義本設(shè)計(jì)的輸入本設(shè)計(jì)的輸入/出端口出端口結(jié)構(gòu)體結(jié)構(gòu)體(Architectures) 定義了實(shí)體的實(shí)現(xiàn)。即定義了實(shí)體的實(shí)現(xiàn)。即電路的具體描述電路的具體描述結(jié)構(gòu)體(結(jié)構(gòu)體(ArchitectureArchitecture)結(jié)構(gòu)體(結(jié)構(gòu)體(Architecture)聲明區(qū)聲明區(qū)(Declarations)信號聲明;聲明用于該結(jié)構(gòu)體的類型,信號、常數(shù),元件,子程序信號聲明;聲明用于該結(jié)構(gòu)體的類型,信號、常數(shù),元件,子程序.并發(fā)語句并發(fā)語句信號賦值信號賦值(Signal Assignments計(jì)算結(jié)果,并賦值給信號計(jì)算結(jié)果,并賦值給信號元件例化元
11、件例化(Component Instantiations)調(diào)用另一個(gè)實(shí)體所描述的電路。調(diào)用另一個(gè)實(shí)體所描述的電路。即元件調(diào)用即元件調(diào)用過程調(diào)用過程調(diào)用(Procedure Calls調(diào)調(diào)用一個(gè)預(yù)先定義好的一個(gè)算用一個(gè)預(yù)先定義好的一個(gè)算法。法。進(jìn)程進(jìn)程(Processes)定義一個(gè)新算法實(shí)現(xiàn)電路功定義一個(gè)新算法實(shí)現(xiàn)電路功能。在過程中賦值順序語句能。在過程中賦值順序語句。語句按放置的順序執(zhí)行。語句按放置的順序執(zhí)行。3. 3. 標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型 STD_LOGIC STD_LOGIC BITBIT數(shù)據(jù)類型定義:數(shù)據(jù)類型定義: TYPE BIT IS(0,1); -TYPE BIT
12、 IS(0,1); -只有兩種取值只有兩種取值STD_LOGICSTD_LOGIC數(shù)據(jù)類型定義:數(shù)據(jù)類型定義: TYPE STD_LOGIC IS TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-); -(U,X,0,1,Z,W,L,H,-); -有有9 9 - -種取值種取值 3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 強(qiáng)強(qiáng)XX“強(qiáng)強(qiáng)”未知的(綜合后為不確定值)未知的(綜合后為不確定值)0“0“強(qiáng)強(qiáng)”邏輯邏輯0 0 (綜合后為(綜合后為0 0)1“1“強(qiáng)強(qiáng)”邏輯邏輯1 1 (綜合后為(綜合后為1 1)Z Z 高阻態(tài)(綜合后為三態(tài)緩沖器)高阻態(tài)(綜合后
13、為三態(tài)緩沖器)W“W“弱弱”未知的未知的L“L“弱弱”邏輯邏輯0 0H“H“弱弱”邏輯邏輯1 1- - 忽略忽略弱弱可綜合可綜合驅(qū)動能力驅(qū)動能力驅(qū)動能力驅(qū)動能力UU 未初始化的未初始化的 其它五種不可綜合的值主要用于其它五種不可綜合的值主要用于仿真仿真。 3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 當(dāng)兩個(gè)或兩個(gè)以上數(shù)字邏輯電路的輸出端連接在同一當(dāng)兩個(gè)或兩個(gè)以上數(shù)字邏輯電路的輸出端連接在同一個(gè)節(jié)點(diǎn)上時(shí),這個(gè)節(jié)點(diǎn)上的電平應(yīng)該是什么呢?個(gè)節(jié)點(diǎn)上時(shí),這個(gè)節(jié)點(diǎn)上的電平應(yīng)該是什么呢? 既與兩者當(dāng)前的既與兩者當(dāng)前的輸出電平值輸出電平值有關(guān),也與兩者的有關(guān),也與兩者的驅(qū)動能驅(qū)動能力強(qiáng)弱力強(qiáng)弱
14、有關(guān)有關(guān) 。 X01ZWLH_X XXXXXXXX0 X0X0000X1 XX11111XZ X01ZWLHXW X01WWWWXL X01LWLWXH X01HWWHX_ XXXXXXXX【例例3-2】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 = a XOR b; co = a AND b ;
15、 END ARCHITECTURE fh1; 4.4.賦值符號和邏輯操作符賦值符號和邏輯操作符賦值符號,兩邊信號的賦值符號,兩邊信號的數(shù)據(jù)類型必須一致數(shù)據(jù)類型必須一致賦值操作并非立即發(fā)賦值操作并非立即發(fā)生,要經(jīng)歷一個(gè)模擬生,要經(jīng)歷一個(gè)模擬器的最小分辨時(shí)間器的最小分辨時(shí)間3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 操作對象的數(shù)據(jù)類型有操作對象的數(shù)據(jù)類型有BIT、BOOLEAN、STD_LOGIC 3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 賦值符號:賦值符號:邏輯操作符邏輯操作符5. 5. 設(shè)計(jì)庫和標(biāo)準(zhǔn)程序包設(shè)計(jì)庫和標(biāo)準(zhǔn)程序包 LIBRARY WORK ;LI
16、BRARY STD ;USE STD.STANDARD.ALL ; LIBRARY LIBRARY ;USE USE .ALL .ALL ; LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; 工作庫工作庫標(biāo)準(zhǔn)庫標(biāo)準(zhǔn)庫可綜合可綜合默認(rèn)打開默認(rèn)打開程序包程序包類類型定義、函數(shù)、型定義、函數(shù)、過程、常量等過程、常量等定義定義STD_LOGIC數(shù)據(jù)類型數(shù)據(jù)類型3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 6. 6. 文件取名和存盤文件取名和存盤 文件后綴擴(kuò)展名必須是文件后綴擴(kuò)展名必須是“.vhd” .vhd” 如:如:adder_f.vhd 建議:
17、程序的文件名盡可能與該程序的實(shí)建議:程序的文件名盡可能與該程序的實(shí) 體名相同。體名相同。3.2 3.2 半加器及其半加器及其VHDLVHDL描述描述 7. 7. 規(guī)范的程序書寫和存盤規(guī)范的程序書寫和存盤3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3.1 43.3.1 4選選1 1多路選擇器及多路選擇器及CASECASE語句表達(dá)方式語句表達(dá)方式LIBRARY IEEEUSE IEEE.STD_LOGIC_1164.ALL; ENTITY MUX41A IS PORT (a,b,c,d,s0,s1 : IN STD_LOGIC; y : OUT STD_
18、LOGIC); END ENTITY MUX41A; ARCHITECTURE bhv OF MUX41A is SIGNAL s : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN S y y y y NULL ; END CASE; END PROCESS; END bhv; 器件內(nèi)部節(jié)點(diǎn),不器件內(nèi)部節(jié)點(diǎn),不必定義端口模式必定義端口模式關(guān)鍵詞關(guān)鍵詞VHDL中,被定義中,被定義的標(biāo)識符必須定的標(biāo)識符必須定義為某類數(shù)據(jù)對象,義為某類數(shù)據(jù)對象,某種數(shù)據(jù)類型某種數(shù)據(jù)類型數(shù)據(jù)對象有數(shù)據(jù)對象有3 3類:信號(類:信號(SIGNALSIGNAL)、變量)、變量(VARIABLE
19、VARIABLE)、常量()、常量(CONSTANTCONSTANT)標(biāo)準(zhǔn)邏輯位與矢量標(biāo)準(zhǔn)邏輯位與矢量CASE ISWhen = ; ;When = ; ;.WHEN OTHERS = ;END CASE ; 不是操作符,它的含義相當(dāng)不是操作符,它的含義相當(dāng)于于THEN(或(或“于是于是”)3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3.2 CASE3.3.2 CASE語句語句CASE語句使用中注意以下幾點(diǎn):語句使用中注意以下幾點(diǎn): WHEN條件語句中的選擇值或標(biāo)識符所代表的條件語句中的選擇值或標(biāo)識符所代表的 值必須在表達(dá)式的取值范圍內(nèi)。值必須在表達(dá)
20、式的取值范圍內(nèi)。 除非所有條件語句中的選擇值能完全覆蓋除非所有條件語句中的選擇值能完全覆蓋 CASE語句中表達(dá)式的取值,否則最末一個(gè)條件語句中表達(dá)式的取值,否則最末一個(gè)條件 句中的選擇必須加上句中的選擇必須加上WHEN OTHERS = ; CASE語句中的選擇值只能出現(xiàn)一次,不允許語句中的選擇值只能出現(xiàn)一次,不允許 由相同選擇值的條件語句出現(xiàn)。由相同選擇值的條件語句出現(xiàn)。 CASE語句執(zhí)行中必須選中,且只能選中所列語句執(zhí)行中必須選中,且只能選中所列 條件語句中的一條。條件語句中的一條。3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 選擇值選擇值 |選擇值選
21、擇值 單個(gè)普通數(shù)值,如單個(gè)普通數(shù)值,如6。 數(shù)值選擇范圍,如數(shù)值選擇范圍,如(2 TO 4)(2 TO 4),表示取值為,表示取值為2 2、3 3或或4 4。 并列數(shù)值,如并列數(shù)值,如3 3 5 5,表示取值為,表示取值為3 3或者或者5 5。 混合方式,以上三種方式的混合?;旌戏绞剑陨先N方式的混合。 多條件選擇值的一般表達(dá)式:多條件選擇值的一般表達(dá)式:選擇值的選擇值的4 4種不同的表達(dá)式:種不同的表達(dá)式:3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3 43.3
22、4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3.3 IEEE3.3.3 IEEE庫預(yù)定義標(biāo)準(zhǔn)邏輯位與庫預(yù)定義標(biāo)準(zhǔn)邏輯位與 B = 01100010 ; - B(7)為為 0 B(4 DOWNTO 1) = 1101 ; - B(4)為為 1 B(7 DOWNTO 4) = A ; - B(6)等于等于 A(2) SIGNAL C :BIT_VECTOR(3 DOWNTO 0); B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; 或或 SIGNAL A :STD_LOGIC_VECTOR(1 TO 4) 定義在定義在STD_LOGIC_116
23、4STD_LOGIC_1164程序包中程序包中 可以表達(dá)電路中并列的多通道端口或節(jié)點(diǎn),或者總線可以表達(dá)電路中并列的多通道端口或節(jié)點(diǎn),或者總線BUSBUS 必須注明其數(shù)組寬度,即位寬必須注明其數(shù)組寬度,即位寬3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3.4 其他預(yù)定義標(biāo)準(zhǔn)數(shù)據(jù)類型其他預(yù)定義標(biāo)準(zhǔn)數(shù)據(jù)類型 無符號型無符號型(UNSIGNED)有符號型有符號型(SIGNED)小整型小整型(SMALL_INT) LIBRARY IEEE ;USE IEEE.STD_LOIGC_ARITH.ALL ; 3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其
24、VHDLVHDL描述描述 1. 無符號數(shù)據(jù)類型無符號數(shù)據(jù)類型(UNSIGNED TYPE) UNSIGNED(1000) VARIABLE var : UNSIGNED(0 TO 10) ;SIGNAL sig : UNSIGNED(5 downto 0) ; 2. 有符號數(shù)據(jù)類型有符號數(shù)據(jù)類型(SIGNED TYPE) SIGNED(0101) 代表代表 +5,5SIGNED(1011) 代表代表 5 VARIABLE var :SIGNED(0 TO 10); 3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3.6 3.3.6 并置操作符并置操作符
25、SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ;SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ;.a = 1 0 d(1) 1 ; - 元素與元素并置,并置后的數(shù)元素與元素并置,并置后的數(shù) -組長度為組長度為4.IF a d = 101011 THEN . - 在在IF條件句中可以使用并條件句中可以使用并 -置符置符 表示將操作數(shù)或是數(shù)組合并起來形成新的數(shù)組。表示將操作數(shù)或是數(shù)組合并起來形成新的數(shù)組。3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3.5 3.3.5 信號定義和數(shù)據(jù)對
26、象信號定義和數(shù)據(jù)對象練習(xí):用練習(xí):用CASECASE語句描述半加器語句描述半加器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 SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; BEGIN abc so=0; co so=1; co so=1; co so=0; co NULL ;
27、 END CASE; END PROCESS; END ARCHITECTURE fh1 ; 3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3.7 43.3.7 4選選1 1多路選擇器的多路選擇器的VHDLVHDL不同描述方式不同描述方式標(biāo)準(zhǔn)邏輯位與矢量標(biāo)準(zhǔn)邏輯位與矢量并行語句并行語句3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 1. WHEN_ELSE1. WHEN_ELSE條件信號賦值語句條件信號賦值語句 賦值目標(biāo)賦值目標(biāo) =
28、= 表達(dá)式表達(dá)式 WHEN WHEN 賦值條件賦值條件 ELSEELSE 表達(dá)式表達(dá)式 WHEN WHEN 賦值條件賦值條件 ELSEELSE . . 表達(dá)式表達(dá)式 ; z = a WHEN p1 = 1 ELSE b WHEN p2 = 1 ELSE c ; 當(dāng)當(dāng)p1p1和和p2p2同時(shí)為同時(shí)為11時(shí),時(shí),z z的賦值的賦值?a 條件信號賦值語句中的第一句具有最高賦值優(yōu)先級條件信號賦值語句中的第一句具有最高賦值優(yōu)先級3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 必須有必須有elseelse條件測試有順序性條件測試有順序性允許有條件重疊現(xiàn)象允許有條件重疊現(xiàn)
29、象練習(xí):用練習(xí):用WHEN_ELSEWHEN_ELSE條件信號賦值條件信號賦值語句描述一個(gè)二選一選擇器語句描述一個(gè)二選一選擇器 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END ARCHITECTURE one ; 3.3 43.3 4選選1 1多路選擇器及其多路選擇器及其VHDLVHDL描述描述 3. 選擇信號賦值語句選擇信號賦值語句 WITH 選擇
30、表達(dá)式選擇表達(dá)式 SELECT 賦值目標(biāo)信號賦值目標(biāo)信號 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; 3.4 3.4 全加器及其全加器及其VHDLVHDL表述表述 3.4.1 3.4.1 全加器設(shè)計(jì)及例化語句應(yīng)用全加器設(shè)計(jì)及例化語句應(yīng)用【例例3-10】 LIBRARY IEEE ; -或門邏輯描述或門邏輯描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY
31、or2a IS PORT (a, b :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c 連接端口名連接端口名,.); 聲明(定義)語句聲明(定義)語句 元件例化語句元件例化語句 端口列表將元件預(yù)定義的端口和實(shí)端口列表將元件預(yù)定義的端口和實(shí)例化時(shí)的實(shí)際端口關(guān)聯(lián)起來。例化時(shí)的實(shí)際端口關(guān)聯(lián)起來。3.4 3.4 全加器及其全加器及其VHDLVHDL表述表述 3.4.2 VHDL3.4.2 VHDL例化語句例化語句在一個(gè)設(shè)計(jì)中調(diào)用一個(gè)模為在一個(gè)設(shè)計(jì)中調(diào)用一個(gè)模為1010的計(jì)數(shù)器
32、的計(jì)數(shù)器cntm10cntm10和和一個(gè)七段譯碼器一個(gè)七段譯碼器decode47decode47構(gòu)成如下電路:構(gòu)成如下電路:元件及元件例化元件及元件例化頂層文件為頂層文件為cntvh10cntvh10 library IEEE; use IEEE.std_logic_1164.all; entity cntvh10 IS port ( Rd, ci, clk : in std_logic; co : out std_logic; qout : out std_logic_vector(6 downto 0); end cntvh10;元件及元件例化元件及元件例化ARCHITECTURE arc
33、h OF cntvh10 IS -元件聲明元件聲明 Component decode47 is port (adr : in std_logic_vector(3 downto 0); decodeout : out std_logic_vector(6 downto 0); end Component; Component cntm10 is port ( ci : IN std_logic; nreset: IN std_logic; clk : IN std_logic; co : out std_logic; qcnt: buffer std_logic_vector(3 downto
34、 0); end Component;signal qa : std_logic_vector(3 downto 0);BEGIN u1: cntm10 port map (ci, Rd, clk, co, qa); -元件例化元件例化 u2: decode47 port map (decodeout = qout, adr = qa);END arch;元件及元件例化元件及元件例化u1: cntm10 port map (ci, Rd, clk, co, qa); -元件例化元件例化 u2: decode47 port map (decodeout = qout, adr = qa);元件例
35、化時(shí)的端口列表可按元件例化時(shí)的端口列表可按位置關(guān)聯(lián)方法位置關(guān)聯(lián)方法,如,如u1u1,這種方法要求的實(shí)參(該設(shè)計(jì)中連接到端口的實(shí)際這種方法要求的實(shí)參(該設(shè)計(jì)中連接到端口的實(shí)際信號,如信號,如ci, Rdci, Rd等)所映射的形參(元件的對外接等)所映射的形參(元件的對外接口信號)的位置同元件聲明中一樣;口信號)的位置同元件聲明中一樣;元件及元件例化元件及元件例化2. 2. 元件例化時(shí)的端口列表也可按元件例化時(shí)的端口列表也可按名稱關(guān)聯(lián)方法名稱關(guān)聯(lián)方法映射實(shí)映射實(shí)參與形參,如參與形參,如u2u2。格式為(形參。格式為(形參1=1=實(shí)參實(shí)參1 1,形參,形參2=2=實(shí)參實(shí)參2 2,.)。這種方法與位
36、置無關(guān)。)。這種方法與位置無關(guān)。3.4 3.4 全加器及其全加器及其VHDLVHDL表述表述 3.4.3 83.4.3 8位加法器設(shè)計(jì)及算數(shù)操作符應(yīng)用位加法器設(shè)計(jì)及算數(shù)操作符應(yīng)用重載函數(shù)重載函數(shù)3.4 3.4 全加器及其全加器及其VHDLVHDL表述表述 3.4.3 83.4.3 8位加法器設(shè)計(jì)及算數(shù)操作符應(yīng)用位加法器設(shè)計(jì)及算數(shù)操作符應(yīng)用3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.1 3.5.1 統(tǒng)計(jì)位矢中含統(tǒng)計(jì)位矢中含1 1個(gè)數(shù)的電路模塊設(shè)計(jì)個(gè)數(shù)的電路模塊設(shè)計(jì)變量,變量, 用于用于數(shù)據(jù)的暫存數(shù)據(jù)的暫存變量賦值變量賦值循環(huán)語句循環(huán)語句沒有沒有else(1) 單個(gè)單個(gè)L
37、OOP語句,其語法格式如下:語句,其語法格式如下: LOOP標(biāo)號:標(biāo)號: LOOP 順序語句順序語句 END LOOP LOOP標(biāo)號標(biāo)號 ; . L2 : LOOP a := a+1; EXIT L2 WHEN a 10 ; - 當(dāng)當(dāng)a大于大于10時(shí)跳出循環(huán)時(shí)跳出循環(huán) END LOOP L2; .3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.2 for_loop3.5.2 for_loop循環(huán)語句用法循環(huán)語句用法LOOP標(biāo)號標(biāo)號:FOR 循環(huán)變量循環(huán)變量 IN 循環(huán)次數(shù)范圍循環(huán)次數(shù)范圍 LOOP 順序語句順序語句END LOOP LOOP標(biāo)號標(biāo)號; 是是臨時(shí)臨時(shí)變量,屬
38、變量,屬LOOPLOOP語句的語句的局部局部變量,變量,不必先定義,每不必先定義,每執(zhí)行一次執(zhí)行一次LOOPLOOP自動加自動加1 1只能作為只能作為賦值源賦值源,不能被賦值,不能被賦值,由由LOOPLOOP語句自動定義語句自動定義(2) FOR_LOOP語句,語法格式如下:語句,語法格式如下: LOOPLOOP語句范圍內(nèi)語句范圍內(nèi)不要再使用不要再使用與此循環(huán)變量與此循環(huán)變量同名同名的標(biāo)識符的標(biāo)識符LOOPLOOP循環(huán)的范圍最循環(huán)的范圍最好以好以常數(shù)常數(shù)表示表示3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.2 for_loop3.5.2 for_loop循環(huán)語句用法循環(huán)
39、語句用法3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.3 3.5.3 移位相加型乘法器的移位相加型乘法器的VHDLVHDL表述方法表述方法例例3-133-13LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY MULT4B IS GENERIC (S: INTEGER := 4);-定義參數(shù)定義參數(shù)S為整數(shù)類型為整數(shù)類型4PORT (R : OUT STD_LOGIC_VECTOR (2*S DOWNT
40、O 1); A, B : IN STD_LOGIC_VECTOR (S DOWNTO 1); END ENTITY MULT4B; 參數(shù)傳遞說明語句參數(shù)傳遞說明語句ARCHITECTURE ONE OF MULT4B is SIGNAL A0 : STD_LOGIC_VECTOR (2*S DOWNTO 1); BEGIN A0 0); FOR i IN 1 TO S LOOP IF (B(i)=1) THEN R1:= R1+TO_STDLOGICVECTOR(TO_BITVECTOR(A0) SLL (i-1); END IF; END LOOP; R = R1; END PROCESS;
41、 END ARCHITECTURE ONE ; 數(shù)據(jù)類型轉(zhuǎn)換函數(shù)數(shù)據(jù)類型轉(zhuǎn)換函數(shù)省略賦值操作符省略賦值操作符3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.4 GENERIC3.5.4 GENERIC參數(shù)定義語句參數(shù)定義語句 GENERIC( 常數(shù)名常數(shù)名 : 數(shù)據(jù)類型數(shù)據(jù)類型 := 設(shè)定值設(shè)定值 ;常數(shù)名常數(shù)名 : 數(shù)據(jù)類型數(shù)據(jù)類型 := 設(shè)定值設(shè)定值 ) ; 類屬值可由設(shè)計(jì)實(shí)類屬值可由設(shè)計(jì)實(shí)體外部提供體外部提供放在實(shí)體或塊結(jié)構(gòu)體放在實(shí)體或塊結(jié)構(gòu)體前的說明部分前的說明部分常數(shù)常數(shù)只能從設(shè)計(jì)只能從設(shè)計(jì)實(shí)體的內(nèi)部實(shí)體的內(nèi)部得到賦值,且得到賦值,且不能不能改變改變,而,而類屬
42、值類屬值可以由設(shè)計(jì)可以由設(shè)計(jì)實(shí)體外部實(shí)體外部提供。提供。 3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.5 3.5.5 整數(shù)數(shù)據(jù)類型整數(shù)數(shù)據(jù)類型Q : BUFFER NATURAL RANGE 15 DOWNTO 0; 整數(shù)包含正整數(shù)、負(fù)整數(shù)和零。整數(shù)包含正整數(shù)、負(fù)整數(shù)和零。 在在VHDLVHDL中,整數(shù)用中,整數(shù)用3232位有符號數(shù)表示。位有符號數(shù)表示。 通常通常VHDLVHDL仿真器將整數(shù)類型作為有符號數(shù)處理,仿真器將整數(shù)類型作為有符號數(shù)處理, 而而VHDLVHDL綜合器則將整數(shù)作為無符號數(shù)處理。綜合器則將整數(shù)作為無符號數(shù)處理。 在使用整數(shù)時(shí),在使用整數(shù)時(shí),VHDL
43、VHDL綜合器要求必須使用綜合器要求必須使用RANGERANGE 子句所定義的數(shù)限定范圍。子句所定義的數(shù)限定范圍。 自然數(shù)類型自然數(shù)類型NATURALNATURAL是整數(shù)類型的一個(gè)子類型。是整數(shù)類型的一個(gè)子類型。 Q : BUFFER INTEGER RANGE 15 DOWNTO 0; 3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.6 3.5.6 省略賦值操作符省略賦值操作符 SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0); a
44、1 := (OTHERS=0) ; d1 e(3),3=e(5), OTHERS=e(1) ); f = e(1) & e(5) & e(1) & e(3) & e(1) ; d1 1,4=1, OTHERS=0 ); 3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.7 3.5.7 移位操作符移位操作符SLL、SRL、SLA、SRA、ROL、ROR 標(biāo)識符標(biāo)識符 移位操作符移位操作符 移位位數(shù)移位位數(shù) ; 必須是必須是BITBIT、BIT_VECTORBIT_VECTOR、BOOLEANBOOLEAN邏輯移位,補(bǔ)邏輯移位,補(bǔ)0算術(shù)移位,補(bǔ)首
45、位算術(shù)移位,補(bǔ)首位循環(huán)移位循環(huán)移位3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.7 3.5.7 移位操作符移位操作符3.5 3.5 乘法器及其乘法器及其VHDLVHDL表述表述 3.5.8 3.5.8 各類運(yùn)算操作對數(shù)據(jù)類型的要求各類運(yùn)算操作對數(shù)據(jù)類型的要求對于乘法操作,操作數(shù)是對于乘法操作,操作數(shù)是STD_LOGIC_VECTORSTD_LOGIC_VECTOR時(shí),時(shí),必須指定是無符號還是有符號。必須指定是無符號還是有符號。對于加法操作,操作數(shù)是對于加法操作,操作數(shù)是STD_LOGIC_VECTORSTD_LOGIC_VECTOR時(shí),時(shí),總是認(rèn)定為無符號??偸钦J(rèn)定為無符號。同同3-153-15同同3-163-16類類 型型操作符操作符功功 能能操作數(shù)數(shù)據(jù)類型操作數(shù)數(shù)據(jù)類型算術(shù)操作符算術(shù)操作符 + +加加 整數(shù)整數(shù) 減減 整數(shù)整數(shù) & &并置并置 一維數(shù)組一維數(shù)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 運(yùn)行庫改造施工方案
- 高速公路標(biāo)志桿施工方案
- 化糞池混凝土施工方案
- 平遠(yuǎn)縣改門改窗施工方案
- 海南靚綠生物科技有限公司年產(chǎn)建設(shè)項(xiàng)目1000噸水溶肥建設(shè)項(xiàng)目環(huán)評報(bào)告表
- 2025年鉆孔應(yīng)變儀項(xiàng)目合作計(jì)劃書
- 置換強(qiáng)夯的施工方案
- 園路及鋪裝施工方案
- 山西造浪游泳池施工方案
- 寧夏工程電纜線槽施工方案
- 制度經(jīng)濟(jì)學(xué):05團(tuán)隊(duì)生產(chǎn)理論
- 作文格子紙(1000字)
- 刻度尺讀數(shù)練習(xí)(自制)課件
- 四年級下冊美術(shù)課件 4紙卷魔術(shù)|蘇少版
- 七年級數(shù)學(xué)蘇科版下冊 101 二元一次方程 課件
- ZL50裝載機(jī)工作裝置設(shè)計(jì)
- 2021年6月浙江省高考讀后續(xù)寫課件-高考英語復(fù)習(xí)備考
- 小學(xué)古詩詞80首(硬筆書法田字格)
- 時(shí)間單位換算表
- 《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)》第1章計(jì)算機(jī)網(wǎng)絡(luò)概論
- DTSD342-9N說明書(精編版)
評論
0/150
提交評論