高等電子技術(shù)(VHDL)_第1頁(yè)
高等電子技術(shù)(VHDL)_第2頁(yè)
高等電子技術(shù)(VHDL)_第3頁(yè)
高等電子技術(shù)(VHDL)_第4頁(yè)
高等電子技術(shù)(VHDL)_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1第五章第五章 VHDLVHDL語(yǔ)言語(yǔ)言 VHDL的的 基本概念基本概念 VHDL的基本結(jié)構(gòu)的基本結(jié)構(gòu) VHDL的數(shù)據(jù)類型與常用語(yǔ)句的數(shù)據(jù)類型與常用語(yǔ)句 常用電路的常用電路的VHDL描述描述 VHDL的設(shè)計(jì)舉例的設(shè)計(jì)舉例25 5.1 VHDL的的 基本概念基本概念 國(guó)際標(biāo)準(zhǔn)化的超高速集成電路硬件描述語(yǔ)言國(guó)際標(biāo)準(zhǔn)化的超高速集成電路硬件描述語(yǔ)言 Very High-speed Integrated Circuit Hardware Description Language 支持硬件的設(shè)計(jì)、驗(yàn)證、綜合和測(cè)試支持硬件的設(shè)計(jì)、驗(yàn)證、綜合和測(cè)試 電路組成的結(jié)構(gòu)描述、電路功能的行為描述電路組成的結(jié)構(gòu)描述、電

2、路功能的行為描述 支持系統(tǒng)級(jí)、算法級(jí)、寄存器傳輸級(jí)(支持系統(tǒng)級(jí)、算法級(jí)、寄存器傳輸級(jí)(RTLRTL)、)、邏輯級(jí)、開(kāi)關(guān)級(jí)邏輯級(jí)、開(kāi)關(guān)級(jí) 采用自頂向下分層描述方法采用自頂向下分層描述方法 新標(biāo)準(zhǔn)擴(kuò)展到模擬電路、數(shù)?;旌想娐沸聵?biāo)準(zhǔn)擴(kuò)展到模擬電路、數(shù)?;旌想娐?可以描述與工藝有關(guān)的信息可以描述與工藝有關(guān)的信息35、2 VHDL的基本結(jié)構(gòu)的基本結(jié)構(gòu)一、實(shí)體:關(guān)鍵詞一、實(shí)體:關(guān)鍵詞(ENTITY)實(shí)體說(shuō)明:實(shí)體名、輸入實(shí)體說(shuō)明:實(shí)體名、輸入/ /輸出端口輸出端口ENTITY rsff ISPORT(set,reset:IN BIT; q,qb:BUFFER BIT);END rsff4二、二、PORTP

3、ORT端口定義端口定義:端口信號(hào)名:唯一而不重復(fù)端口信號(hào)名:唯一而不重復(fù)端口模式:說(shuō)明信號(hào)的方向端口模式:說(shuō)明信號(hào)的方向(IN,OUT,INOUT,BUFFER)端口類型:端口信號(hào)的取值類型端口類型:端口信號(hào)的取值類型(BITBIT,BITBIT- -VECTORVECTOR,STDSTD- -LOGICLOGIC, STDSTD- -LOGICLOGIC- -VECTORVECTOR,INTEGERINTEGER,BOOLEANBOOLEAN)5BIT:位類型,位類型, 取值取值0、1, 由由STANDARD程序包程序包定義定義BIT_VECTOR:位向量類型,位向量類型, 是是BIT的組合

4、的組合STD_LOGIC:工業(yè)標(biāo)準(zhǔn)的邏輯類型,工業(yè)標(biāo)準(zhǔn)的邏輯類型, 取值取值0、 1、 X、 Z, 由由STD_LOGIC_1164程序包定義程序包定義STD_LOGIC_VECTOR:工業(yè)標(biāo)準(zhǔn)的邏輯向量類工業(yè)標(biāo)準(zhǔn)的邏輯向量類型,型, 是是STD_LOGIC的組合的組合INTEGER:整數(shù)類型,整數(shù)類型, 可用作循環(huán)的指針或常數(shù)可用作循環(huán)的指針或常數(shù), 通常不用作通常不用作I/O信號(hào)信號(hào)BOOLEAN:布爾類型,布爾類型, 取值取值FALSE、 TRUE6d d15:015:0是是1616位輸入總線;位輸入總線;clkclk、 resetreset、 oeoe是輸入信號(hào);是輸入信號(hào);q1q11

5、5:015:0是是1616位三態(tài)輸出總線;位三態(tài)輸出總線;q2q215:015:0是是1616位雙向總線;位雙向總線;intint是輸出信號(hào),是輸出信號(hào), 也反饋到內(nèi)部使用;也反饋到內(nèi)部使用;opt是三態(tài)輸出信號(hào)是三態(tài)輸出信號(hào) 7ENTITYENTITY example2 example2 ISIS PORTPORT(d: IN STD_LOGIC_VECTOR (15 DOWNTO 0);(d: IN STD_LOGIC_VECTOR (15 DOWNTO 0); clk, reset, oeclk, reset, oe: IN STD_LOGIC;: IN STD_LOGIC; q1: O

6、UT STD_LOGIC_VECTOR (15 DOWNTO 0);q1: OUT STD_LOGIC_VECTOR (15 DOWNTO 0); q2: INOUT STD_LOGIC_VECTOR (15 DOWNTO 0);q2: INOUT STD_LOGIC_VECTOR (15 DOWNTO 0); intint: BUFFER STD_LOGIC;: BUFFER STD_LOGIC; opt: OUT STD_LOGIC);opt: OUT STD_LOGIC);ENDEND example2; example2; 8三、結(jié)構(gòu)體描述三、結(jié)構(gòu)體描述實(shí)體的硬件結(jié)構(gòu),元件之間的互連關(guān)

7、系,實(shí)實(shí)體的硬件結(jié)構(gòu),元件之間的互連關(guān)系,實(shí)體所完成的邏輯功能,數(shù)據(jù)的傳輸變換體所完成的邏輯功能,數(shù)據(jù)的傳輸變換關(guān)鍵詞:關(guān)鍵詞:ARCHITECTURE,BEGIN,END;元件說(shuō)明:元件說(shuō)明:COMPONENT互連式結(jié)構(gòu)體描述(互連式結(jié)構(gòu)體描述(STRUCSTRUC):):PORT MAPPORT MAP行為式結(jié)構(gòu)體描述(行為式結(jié)構(gòu)體描述(BEHAVBEHAV):賦值語(yǔ)句):賦值語(yǔ)句= =算法式結(jié)構(gòu)體描述(算法式結(jié)構(gòu)體描述(ALGALG):進(jìn)程語(yǔ)句):進(jìn)程語(yǔ)句PROCESSPROCESS9ARCHITECTURE rs_struc OF rsffARCHITECTURE rs_struc O

8、F rsff IS ISCOMPONENT nand2COMPONENT nand2-元件說(shuō)明元件說(shuō)明 PORT (a, b: IN BIT; c: OUT BIT);PORT (a, b: IN BIT; c: OUT BIT);END COMPONENT;END COMPONENT;BEGINBEGIN u1: nand2 PORT MAP (a=set, b=qbu1: nand2 PORT MAP (a=set, b=qb, c=q);, c=q); - -元件例化語(yǔ)句元件例化語(yǔ)句 u2: nand2 PORT MAP (a=reset, b=q, c=qbu2: nand2 PORT

9、 MAP (a=reset, b=q, c=qb););END rs_struc; 1 1、互連式結(jié)構(gòu)體描述(、互連式結(jié)構(gòu)體描述(STRUCSTRUC):):PORT MAPPORT MAP10ENTITY nand2 ISENTITY nand2 IS PORT (a, b: IN BIT; c: OUT BIT);PORT (a, b: IN BIT; c: OUT BIT);END nand2; END nand2; ARCHITECTURE nand2_arc OF nand2 ISARCHITECTURE nand2_arc OF nand2 ISBEGINBEGIN C=NOT (

10、a AND b);C=NOT (a AND b);END nand2_arc; END nand2_arc; 112 2、行為式結(jié)構(gòu)體描述(、行為式結(jié)構(gòu)體描述(BEHAVBEHAV):賦值語(yǔ)句):賦值語(yǔ)句= =ARCHITECTURE rs_behav OF rsffARCHITECTURE rs_behav OF rsff IS ISBEGINBEGIN q = NOT (qbq = NOT (qb AND set); AND set); qbqb = NOT (q AND reset); = NOT (q AND reset);END rs_behavEND rs_behav; ;123

11、3、算法式結(jié)構(gòu)體描述(、算法式結(jié)構(gòu)體描述(ALGALG):進(jìn)程語(yǔ)句):進(jìn)程語(yǔ)句PROCESSPROCESSARCHITECTURE rs_alg OF rsffARCHITECTURE rs_alg OF rsff IS ISBEGINBEGIN PROCESS (set, reset) -PROCESS (set, reset) -進(jìn)程進(jìn)程 VARIABLE last_state: BIT; -VARIABLE last_state: BIT; -給輸出給輸出q q定義一個(gè)狀態(tài)定義一個(gè)狀態(tài)變量變量 BEGINBEGIN ASSERT NOT (reset=0 AND set=0) ASSER

12、T NOT (reset=0 AND set=0) REPORT Input IS 00REPORT Input IS 00 SEVERITY error;SEVERITY error; IF set =1 AND reset =1 THENIF set =1 AND reset =1 THEN last_state:=last_state last_state:=last_state ELSIF set=0 AND reset=1 THENELSIF set=0 AND reset=1 THEN last_state:=1;last_state:=1; 13 ELSIF set=1 AND

13、reset=0 THEN ELSIF set=1 AND reset=0 THEN last_state:=0;last_state:=0; END IF;END IF; q=last_state; -q=last_state; -給輸出信號(hào)賦值給輸出信號(hào)賦值 qbqb=NOT (last_state);a,y=b,z=l0);-元件例化語(yǔ)句元件例化語(yǔ)句 u2:and2 PORT MAP(x=a,y=b,z=l1); u3:xor2 PORT MAP(x=l0,y=cin,z=sum); u4:and2 PORT MAP(x=l0,y=cin,z=l2); u5:or2 PORT MAP(x=

14、l1,y=l2,z=cout); END fadd_struc;18-全加器行為式結(jié)構(gòu)體全加器行為式結(jié)構(gòu)體ARCHITECTURE fadd_behav OF fulladder ISBEGIN sum = a XOR b XOR cin; cout sum =0; cout sum =1; cout sum =0; cout sum =1; cout=1; END CASE; END PROCESS;END fadd_alg;21CONFIGURATION conf1 OF fulladder IS FOR fadd_behav; -選用的結(jié)構(gòu)體名選用的結(jié)構(gòu)體名 END FOR;END co

15、nf1;22五、程序包五、程序包 多個(gè)實(shí)體公用的數(shù)據(jù)類型、常量、子程多個(gè)實(shí)體公用的數(shù)據(jù)類型、常量、子程序在程序包中定義與說(shuō)明序在程序包中定義與說(shuō)明 VHDL提供了提供了STANDARD程序包,在程序中程序包,在程序中直接使用,無(wú)需說(shuō)明直接使用,無(wú)需說(shuō)明 VHDL提供了提供了STD-LOGIN-1164STD-LOGIN-1164程序包,在程序包,在IEEEIEEE庫(kù)中編譯過(guò),使用時(shí)要在實(shí)體說(shuō)明前加庫(kù)中編譯過(guò),使用時(shí)要在實(shí)體說(shuō)明前加上調(diào)用語(yǔ)句:上調(diào)用語(yǔ)句:LIBRARY ieeeUSE ieee、std-logic-1164、all231 1、程序包、程序包 用戶自己定義程序包:程序包說(shuō)明與程序

16、包體用戶自己定義程序包:程序包說(shuō)明與程序包體 程序包說(shuō)明(程序包說(shuō)明( PACKGEPACKGE ):數(shù)據(jù)類型():數(shù)據(jù)類型(TYPETYPE)、)、常量(常量(CONSTANTCONSTANT)、元件()、元件(COMPONENTCOMPONENT)、子)、子程序(程序(PROCEDUREPROCEDURE,F(xiàn)UNCTIONFUNCTION,RETURNRETURN) 程序包體(程序包體(PACKGE BODYPACKGE BODY):具體的子程序、:具體的子程序、延時(shí)常量的具體值延時(shí)常量的具體值 FUNCTIONFUNCTION只返回一個(gè)只返回一個(gè)ININ變量,而變量,而PROCEDURE

17、PROCEDURE可可返回多個(gè)變量(返回多個(gè)變量(ININ,OUTOUT,INOUTINOUT) 用戶自己定義的程序包也要通過(guò)調(diào)用才能使用用戶自己定義的程序包也要通過(guò)調(diào)用才能使用(USEUSE)24-程序包說(shuō)明程序包說(shuō)明PACKAGE example IS TYPE alu_op IS (add,sub,mul,div,eq,gt,lt)-枚舉類型枚舉類型 CONSTANT pi:REAL:=3.14159265; -常量常量 delay1:TIME; -延時(shí)常量延時(shí)常量 COMPONENT nand2 -元件元件 PORT(a,b:IN BIT;c : OUT BIT); END COMPO

18、NENT; FUNCTION mean(a,b,c:REAL) RETURN REAL; -具體的函數(shù)具體的函數(shù)END example;25-程序包體程序包體PACKAGE BODY example IS CONSTANT delay1: TIME:=15ns; -定義延時(shí)常量定義延時(shí)常量的值的值 FUNCTION mean (a,b,c:REAL) RETURN REAL IS -具具體的函數(shù)體的函數(shù) BEGIN RETURN(a+b+c)/3.0; -求均值求均值 END mean; END example;262 2、設(shè)計(jì)庫(kù)、設(shè)計(jì)庫(kù) 用以存放已編譯過(guò)的設(shè)計(jì)單元用以存放已編譯過(guò)的設(shè)計(jì)單元

19、可供其它設(shè)計(jì)用戶使用可供其它設(shè)計(jì)用戶使用 調(diào)用語(yǔ)句:調(diào)用語(yǔ)句:LIBRARYLIBRARY WORKWORK275.3 VHDLVHDL數(shù)據(jù)類型和常用語(yǔ)句數(shù)據(jù)類型和常用語(yǔ)句1、對(duì)象和數(shù)據(jù)類型:對(duì)象和數(shù)據(jù)類型:1 1)對(duì)象:)對(duì)象:信號(hào):信號(hào):硬件連線的一種抽象,保持變化的硬件連線的一種抽象,保持變化的 數(shù)據(jù),元件之間數(shù)據(jù)傳輸?shù)耐?;?shù)據(jù),元件之間數(shù)據(jù)傳輸?shù)耐?;變量:變量:用于暫存局部?shù)據(jù),只用于進(jìn)程和用于暫存局部數(shù)據(jù),只用于進(jìn)程和子程序內(nèi)部定義使用;子程序內(nèi)部定義使用;常量:常量:保持某一特定不變的數(shù)據(jù);保持某一特定不變的數(shù)據(jù);282 2)數(shù)據(jù)類型數(shù)據(jù)類型 標(biāo)量類型:整數(shù),實(shí)數(shù),枚舉,物理;

20、標(biāo)量類型:整數(shù),實(shí)數(shù),枚舉,物理; 復(fù)合類型:數(shù)組,記錄復(fù)合類型:數(shù)組,記錄 子類型:已定義類型的一個(gè)子集子類型:已定義類型的一個(gè)子集 文件類型文件類型 尋址類型尋址類型 類型定義的格式:類型定義的格式:TYPE TYPE 類型類型 IS IS 類型范圍類型范圍29-物理類型物理類型 電流電流 currentTYPE current IS RANGE 0 TO 1000000000;UNITS na; -基本單位基本單位 ua=1000na; -次級(jí)單位,應(yīng)為基本單位的整數(shù)倍次級(jí)單位,應(yīng)為基本單位的整數(shù)倍 ma=1000ua; -次級(jí)單位次級(jí)單位 a=1000ma; -次級(jí)單位次級(jí)單位 END

21、 UNITS;-數(shù)組類型數(shù)組類型TYPE hex IS ARRAY (8 DOWNTO 1) OF BIT; -一維數(shù)組一維數(shù)組TYPE matrix IS ARRAY(1 TO 10,1 TO 20) OF REAL;-二維數(shù)組二維數(shù)組30-枚舉類型枚舉類型TYPE optype IS (add,sub,mul,div); -定義定義“+,-,*,/”四種操四種操作作-記錄類型記錄類型TYPE instruction IS -定義一個(gè)指令記錄定義一個(gè)指令記錄RECORD opcode:optype; -操作碼操作碼 sou:INTEGER; -源操作數(shù)源操作數(shù) dst:INTEGER; -目

22、的操作數(shù)目的操作數(shù)-子類型子類型SUBTYPE int4 IS INTEGER RANGE 0 TO 3; -整數(shù)子類型,整數(shù)子類型,取值取值0-3312 2、VHDLVHDL的常用語(yǔ)句的常用語(yǔ)句1)并行語(yǔ)句:用來(lái)描述模塊之間的連接關(guān)并行語(yǔ)句:用來(lái)描述模塊之間的連接關(guān)系,當(dāng)某個(gè)信號(hào)發(fā)生變化時(shí),受此信號(hào)系,當(dāng)某個(gè)信號(hào)發(fā)生變化時(shí),受此信號(hào)觸發(fā)的所有語(yǔ)句同時(shí)執(zhí)行。觸發(fā)的所有語(yǔ)句同時(shí)執(zhí)行。 信號(hào)賦值語(yǔ)句信號(hào)賦值語(yǔ)句:C1=NOT(a ANDb) ;C2=b AND c; 條件賦值語(yǔ)句條件賦值語(yǔ)句:WITH-SELECT-WHEN 元件例化語(yǔ)句:用于調(diào)用庫(kù)單元或低一元件例化語(yǔ)句:用于調(diào)用庫(kù)單元或低一級(jí)實(shí)

23、體。級(jí)實(shí)體。32條件賦值語(yǔ)句條件賦值語(yǔ)句:WITH-SELECT-WHENENTITY mux4 IS PORT(i0,i1,i2,i3: IN BIT; s: IN BIT_VECTOR (1 DOWNTO 0); z: OUT BIT);END mux4;ARCHITECTURE behavel OF mux4 ISBEGIN WITH s SELECT -根據(jù)輸入根據(jù)輸入s的不同對(duì)的不同對(duì)z賦值賦值 z=i0 WHEN 00, i1 WHEN 01, i2 WHEN 10, i3 WHEN 11;END behavel;33RCHITECTURE behav2 OF mux4 ISBEG

24、IN z z z z zyyyyyyyyy=*;-不定狀態(tài)不定狀態(tài) END CASE; ELSE y=11111111; END IF; END PROCESS;END sequent;39PROCESS(sel,a,b,c,d)BEGIN IF(sel=00) THEN step=a; ELSIF(sel=01) THEN step=b; ELSIF( sel=10) THEN step=c; ELSE step=d; END IF;END PROCESS;405、4 常用電路的常用電路的VHDLVHDL描述描述 寄存器(寄存器(RegisterRegister)的描述()的描述(1 1)P

25、ROCESS (clkPROCESS (clk,d),d)BEGINBEGIN IF (clkEVENT AND clk IF (clkEVENT AND clk=1) THEN =1) THEN q=d; q=d; END IF;END IF;END PROCESS;END PROCESS;41寄存器(寄存器(RegisterRegister)的描述()的描述(2 2)PROCESS(clk,d)BEGIN IF RISING_EDGE(clk) THEN q=d; END IF;END PROCESS;42三態(tài)輸出鎖存器(三態(tài)輸出鎖存器(LatchLatch)RNTITY RNTITY l

26、atch IS latch IS PORT(d:IN STD_LOGIC_VECTOR(7 DOWNTO 0); PORT(d:IN STD_LOGIC_VECTOR(7 DOWNTO 0); q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); clk,oe clk,oe:IN STD_LOGIC );:IN STD_LOGIC );END latch;END latch;ARCHITECTURE ARCHITECTURE arc1 OF latch IS arc1 OF latch IS SIGNAL

27、 SIGNAL qint qint:STD_LOGIC_VECTOR(7 DOWNTO 0);:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINBEGIN 43PROCESS (clkPROCESS (clk,d),d) BEGIN BEGIN IF (clkEVENT AND clk IF (clkEVENT AND clk=1) THEN=1) THEN qint qint=d;=d; END END IF; IF; END PROCESS; END PROCESS; q=qint WHEN (oe=0) -oe q=qint WHEN (oe=0) -oe為低電平,鎖

28、存輸為低電平,鎖存輸出出 ELSE ZZZZZZZZ; -oeELSE ZZZZZZZZ; -oe為高電平,輸出呈高阻態(tài)為高電平,輸出呈高阻態(tài)END arc1;END arc1;44計(jì)數(shù)器(計(jì)數(shù)器(CounterCounter)ENTITY counter1 IS PORT(clk:IN BIT; clr:IN BIT; en:IN BIT; up_down:IN BIT; q:OUT INTEGER RANGE 0 TO 255;END counter1;45ARCHITECTURE cnt_arc OF counter1 ISBEGIN PROCESS (clk) VARIABLE cnt

29、:INTEGER RANGE 0 TO 255; VARIABLE direction: INTEGER; BEGIN IF (up_down=1) THEN direction:=1; -加加1計(jì)數(shù)計(jì)數(shù) ELSE direction:=-1; -減減1計(jì)數(shù)計(jì)數(shù) END IF; IF (clkEVENT AND clk=1) THEN -判判clk上升沿上升沿 IF clr=0 THEN cnt:=0; -清零清零 ELSE IF en=0 THEN -使能使能 IF cnt=255 THEN cnt:=0; ELSE cnt:=cnt+direction; -計(jì)數(shù)計(jì)數(shù) END IF; END

30、 IF; END IF; END IF; q=cnt; -計(jì)數(shù)輸出計(jì)數(shù)輸出 END PROCESS;46狀態(tài)機(jī)(狀態(tài)機(jī)(State MachineState Machine)LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY air_cont IS PORT(clk:IN STD_LOGIC; temp_high:IN STD_LOGIC; temp_low:IN STD_LOGIC; heat:OUT STD_LOGIC; cool:OUT STD_LOGIC );END air_cont;4748ARCHITECTURE arc1 OF air-

31、cont IS -狀態(tài)類型,枚舉三種狀態(tài)狀態(tài)類型,枚舉三種狀態(tài) TYPE state_type IS (just_right,too_cold,too_hot); SIGNAL stvar:state_type;-狀態(tài)變量狀態(tài)變量BEGIN PROCESS BEGIN WAIT ON clk UNTIL RISING _EDGE(clk);-等待等待clk上升沿上升沿 -次態(tài)邏輯次態(tài)邏輯 IF (temp_low=1) THEN stvar=too_cold; ELSIF (temp_high=1) THEN stvar=too_hot; ELSE stvarheat=0;coolheat=1

32、;coolheat=0;cool=1; -太熱,制冷太熱,制冷 END CASE; END PROCESS; END arc1;49設(shè)計(jì)舉例:移相正弦信號(hào)發(fā)生器設(shè)計(jì)移相正弦信號(hào)發(fā)生器設(shè)計(jì) 直接數(shù)字合成直接數(shù)字合成DDS的數(shù)字信號(hào)發(fā)生器。的數(shù)字信號(hào)發(fā)生器。輸出參考信號(hào)和可移相正弦波信號(hào)。輸出參考信號(hào)和可移相正弦波信號(hào)。頻率與相位步進(jìn)頻率與相位步進(jìn)508位頻率控制位頻率控制字字8位相移控制字位相移控制字10位加法器位加法器32位加法器位加法器32位寄存器位寄存器10位寄存器位寄存器存放正弦波數(shù)據(jù)存放正弦波數(shù)據(jù)的的ROM51 “FWORD” 是是8位頻率控制字,控制輸出正弦信位頻率控制字,控制輸出正

33、弦信 號(hào)的頻率;號(hào)的頻率; “PWORD”是是8位相移控制字,控制輸出正弦信位相移控制字,控制輸出正弦信號(hào)的相移量;號(hào)的相移量; ADDER32B和和ADDER10B分別為分別為32位和位和10位加位加法器;法器; SIN_ROM是存放正弦波數(shù)據(jù)的是存放正弦波數(shù)據(jù)的ROM,10位數(shù)據(jù)位數(shù)據(jù)線 ,線 , 1 0 位 地 址 線 , 其 中 的 數(shù) 據(jù) 文 件 是位 地 址 線 , 其 中 的 數(shù) 據(jù) 文 件 是LUT10X10.mif,可由,可由MATLAB直接生成;直接生成; REG32B和和REG10B分別是分別是32位和位和10位寄存器;位寄存器; POUT和和FOUT分別為分別為10位輸

34、出,可以分別與兩位輸出,可以分別與兩個(gè)高速個(gè)高速D/A相接,他們分別輸出參考信號(hào)和可移相相接,他們分別輸出參考信號(hào)和可移相正弦波信號(hào)。正弦波信號(hào)。521. 利用利用MATLABMATLAB和和DSP BuilderDSP Builder完成此項(xiàng)設(shè)計(jì),圖為此項(xiàng)完成此項(xiàng)設(shè)計(jì),圖為此項(xiàng)設(shè)計(jì)的設(shè)計(jì)的MATLABMATLAB電路模型:電路模型:53數(shù)字移相信號(hào)發(fā)生器數(shù)字移相信號(hào)發(fā)生器VHDL參考程序如下參考程序如下【1】數(shù)字移相信號(hào)發(fā)生器頂層設(shè)計(jì)文件】數(shù)字移相信號(hào)發(fā)生器頂層設(shè)計(jì)文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UN

35、SIGNED.ALL;ENTITY DDS_VHDL IS - 頂層設(shè)計(jì)頂層設(shè)計(jì) PORT ( CLK : IN STD_LOGIC; -系統(tǒng)時(shí)鐘系統(tǒng)時(shí)鐘 FWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -頻率控制字頻率控制字 PWORD : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -相位控制字相位控制字 FOUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0); -可移相正弦信號(hào)輸出可移相正弦信號(hào)輸出 POUT : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); -參考信號(hào)輸出參考信號(hào)輸

36、出 END;ARCHITECTURE one OF DDS_VHDL IS COMPONENT REG32B -32位鎖存器位鎖存器 PORT ( LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT;54 COMPONENT REG10B -10位鎖存器位鎖存器 PORT ( LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(9 DOWNTO 0); DOUT : O

37、UT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT ADDER32B -32位加法器位加法器 PORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0); B : IN STD_LOGIC_VECTOR(31 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END COMPONENT; COMPONENT ADDER10B -10位加法器位加法器 PORT ( A : IN STD_LOGIC_VECTOR(9 DOWNTO 0); B : I

38、N STD_LOGIC_VECTOR(9 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(9 DOWNTO 0) ); END COMPONENT; COMPONENT SIN_ROM -10位地址位地址10位數(shù)據(jù)正弦信號(hào)數(shù)據(jù)位數(shù)據(jù)正弦信號(hào)數(shù)據(jù)ROM PORT( address: IN STD_LOGIC_VECTOR(9 DOWNTO 0); inclock : IN STD_LOGIC ; q: OUT STD_LOGIC_VECTOR(9 DOWNTO 0); END COMPONENT; 55 SIGNAL F32B : STD_LOGIC_VECTOR(31

39、DOWNTO 0); SIGNAL D32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL DIN32B : STD_LOGIC_VECTOR(31 DOWNTO 0); SIGNAL P10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL LIN10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); SIGNAL SIN10B : STD_LOGIC_VECTOR( 9 DOWNTO 0); BEGIN F32B(27 DOWNTO 20)=FWORD ; F32B(31 DOWNTO 28)=0000;

40、F32B(19 DOWNTO 0)=00000000000000000000 ; P10B( 9 DOWNTO 2)=PWORD ; P10B( 1 DOWNTO 0)F32B,B=D32B, S=DIN32B ); u2:REG32B PORT MAP( DOUT=D32B,DIN= DIN32B, LOAD=CLK ); u3:SIN_ROM PORT MAP(address=SIN10B,q=FOUT,inclock=CLK ); u4:ADDER10B PORT MAP(A=P10B,B=D32B(31 DOWNTO 22),S=LIN10B ); u5:REG10B PORT MAP

41、( DOUT=SIN10B,DIN=LIN10B, LOAD=CLK ); u6:SIN_ROM PORT MAP( address=D32B(31 DOWNTO 22), q=POUT, inclock=CLK );END; 56【2】32位加法器,位加法器,10位加法器略去位加法器略去LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER32B IS PORT ( A : IN STD_LOGIC_VECTOR(31 DOWNTO 0); B : IN STD_LOGIC_V

42、ECTOR(31 DOWNTO 0); S : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END ADDER32B;ARCHITECTURE behav OF ADDER32B IS BEGINS = A + B;END behav; 57【3】 正弦信號(hào)數(shù)據(jù)正弦信號(hào)數(shù)據(jù)ROMLIBRARY ieee;USE ieee.std_logic_1164.all;LIBRARY altera_mf;USE altera_mf.altera_mf_components.all;ENTITY sin_rom ISPORT(address: IN STD_LOGIC_VECTOR (9 DOWNTO 0);inclock: IN STD_LOGIC ;q: OUT STD_LOGIC_VECTOR (9 DOWNTO 0);END sin_rom;ARCHITECTURE SYN

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論