




免費預覽已結(jié)束,剩余91頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
【例3-1】 2選1多路選擇器程序。(P31)LIBRARY IEEE; -IEEE庫使用說明語句USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS -實體說明部分PORT(a,b : IN STD_LOGIC;s: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux21;ARCHITECTURE mux21a OF mux21 IS -結(jié)構(gòu)體說明部分BEGINPROCESS(a,b,s)BEGINIF s=0 THEN y=a;ELSEy=b;END IF;END PROCESS;END ARCHITECTURE mux21a;【例3-2】 有類屬說明的2輸入與非門的實體描述。(P33)ENTITY nand2 IS GENERIC ( t_rise : TIME := 2ns ;t_fall : TIME := 1ns ) PORT( a: IN BIT; b : IN BIT; s : OUT BIT);END ENTITY nand2;【例3-3】 n輸入與非門的實體描述:(P33)ENTITY nand_n IS GENERIC ( n : INTEGER ) ; PORT( a : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); s : OUT STD_LOGIC );END ENTITY nand_n;例3-4】 半加器的完整VHDL描述,其中x、y為加數(shù)與被加數(shù),s為和信號,c為進位信號。(P36)ENTITY half_adder IS PORT( x,y : IN BIT; s: IN BIT; c: OUT BIT);END ENTITY half_adder;ARCHITECTURE dataflow OF half_adder IS BEGIN s = x XOR y; c = x AND y;END ARCHITECTURE dataflow;【例3-5】 2選1多路選擇器的行為描述程序。(P37)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 ISPORT(a,b : IN STD_LOGIC;s: IN STD_LOGIC;y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE behav OF mux21 ISBEGIN PROCESS(a,b,s)BEGINIF s=0 THEN y=a;ELSEy=b;END IF;END PROCESS;END ARCHITECTURE behav;【例3-6】 2選1多路選擇器數(shù)據(jù)流描述程序。(P36)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS PORT(a,b : IN STD_LOGIC;s: IN STD_LOGIC;y: OUT STD_LOGIC);END ENTITY mux21;ARCHITECTURE dataflow OF mux21 IS BEGINy=(a AND (NOT s) OR (b AND s);END ARCHITECTURE dataflow;【例3-7】 2選1多路選擇器結(jié)構(gòu)描述程序。(P37)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY and21 IS PORT(i0,i1 : IN STD_LOGIC;q: OUT STD_LOGIC );END ENTITY and21;ARCHITECTURE one OF and21 IS BEGIN q=i0 AND i1; END ARCHITECTURE one;LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY or21 IS PORT(i0,i1 : IN STD_LOGIC;q: OUT STD_LOGIC );END ENTITY or21;ARCHITECTURE one OF or21 IS BEGIN q=i0 OR i1; END ARCHITECTURE one;LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY inv21 IS PORT(i0 : IN STD_LOGIC;q: OUT STD_LOGIC );END ENTITY inv21;ARCHITECTURE one OF inv21 IS BEGIN q= (NOT i0); END ARCHITECTURE one;LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS PORT(a,b : IN STD_LOGIC;s: IN STD_LOGIC;y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE struct OF mux21 IS COMPONENT and21PORT (i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT;COMPONENT or21PORT (i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC);END COMPONENT;COMPONENT inv21PORT (i0: IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT;SIGNAL tmp1,tmp2,tmp3:STD_LOGIC;BEGIN u1: and21 PORT MAP (b, s,tmp1); u2: inv21 PORT MAP(s,tmp2);u3: and21 PORT MAP (a,tmp2,tmp3); u4: or21 PORT MAP(tmp1,tmp3,y);END ARCHITECTURE struct;【例3-8】 半加器的混合描述程序。(P37)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor21 IS PORT(i0,i1:IN STD_LOGIC; q: OUT STD_LOGIC);END ENTITY xor21;ARCHITECTURE behav OF xor21 IS BEGIN q=i0 XOR i1; END ARCHITECTURE behav;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY half_adder IS PORT(a,b:IN STD_LOGIC; c,s: OUT STD_LOGIC);END ENTITY half_adder;ARCHITECTURE mix OF half_adder IS COMPONENT xor21 IS PORT(i0,i1:IN STD_LOGIC; q:OUT STD_LOGIC); END COMPONENT; BEGIN c = a AND b; u1: xor21 PORT MAP(a,b,s); END ARCHITECTURE mix;【例3-9】 打開一個字符文件,讀出文件中的內(nèi)容并關閉文件。(P51)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY readfile ISPORT( cs:IN STD_LOGIC; c: OUT CHARACTER);END ENTITY readfile;ARCHITECTURE read1 OF readfile ISBEGINPROCESS(cs)TYPE char_file IS FILE OF CHARACTER;FILE cfile : char_file;VARIABLE i : INTEGER :=0;BEGINIF(cs=1) THEN FILE_OPEN(cfile,f:/leifr/testfile.asc,READ_MODE); WHILE NOT ENDFILE(cfile) LOOP READ(cfile,c); i := i+1; END LOOP; FILE_CLOSE(cfile);ELSEc= - ;END IF;END PROCESS; END ARCHITECTURE read1;【例4-1】 WAIT語句示例程序。(P65)cwait1 : PROCESS BEGINy = ( a AND b ) OR ( m XOR t ) ;z = c NAND d ; WAIT ; - 無限等待 END PROCESS cwait1 ;【例4-2】 WAIT FOR語句示例程序。(65)cwait2 : PROCESS BEGIN y = ( a AND b ) OR ( m XOR t ) ; z = c NAND d ; WAIT FOR 10 * ( ct1 + ct2 ) ; - 等待由該表達式計算的時間 END PROCESS cwait2 ;【例4-3】 WAIT ON語句示例程序(二選一選擇器)。(P66)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY mux2_1 ISPORT( data0, data1 : IN STD_LOGIC ; sel : IN STD_LOGIC ; q : OUT STD_LOGIC ) ;END mux2_1 ;ARCHITECTURE behavioral OF mux2_1 ISSIGNAL temp1, temp2, temp3 : STD_LOGIC ;BEGINcwait3 : PROCESS BEGIN temp1 = data0 AND sel ; temp2 = data1 AND ( NOT sel ) ; temp3 = temp1 OR temp2 ; q = temp3 ; WAIT ON data0, data1, q ; END PROCESS cwait3 ;END behavioral ;【例4-4】 WAIT ON語句和PROCESS語句中所使用的敏感信號列表的對比。(P67)ARCHITECTURE behavioral OF mux2_1 ISSIGNAL temp1, temp2, temp3 : STD_LOGIC ;BEGINcwait4 : PROCESS ( data0, data1, q ) BEGIN temp1 = data0 AND sel ; temp2 = data1 AND ( NOT sel ) ; temp3 = temp1 OR temp2 ; q = 20 ) ; - 該表達式是布爾表達式 END PROCESS cwait5 ;END behavioral ;【例4-6】 多條件WAIT語句的示例程序。(P68)cwait6 : PROCESS BEGIN M - 多條件WAIT語句 WAIT ON data0, data1,q UNTIL(temp + 5 ) = 20) FOR 34 ns ; END PROCESS cwait6 ;【例4-7】 信號代入語句示例程序。(P68)ARCHITECTURE behavioral OF example_dairu ISSIGNAL a, b, c, d,e, f : STD_LOGIC ;SIGNAL temp0, temp1, temp2, temp3, temp4, temp5 : STD_LOGIC ;BEGINcdairu : PROCESS BEGIN temp0 = a NAND b ; - 與非 temp1 = c NOR d ; - 或非 temp2 = e XOR f AFTER 5 ns ; - 異或門延遲 temp3 = ( a NAND b ) NOR ( c NAND d ) ; temp4 = ( c OR d ) NAND ( e OR f ) ; temp5 = a XOR b XOR c XOR d XOR e XOR f ; END PROCESS cdairu ;END behavioral ;【例4-8】 變量賦值語句示例程序。(P69)ARCHITECTURE behavioral OF example_fuzhi ISCONSTANT cvolt : REAL : = 3.3 ; - 定義常數(shù)CONSTANT ccurrent : REAL : = 4.0 ;VARIABLE temp0, temp1 : REAL ; - 定義變量VARIABLE temp2, temp3 : INTEGER RANGE 0 TO 255 : = 10 ;VARIABLE temp4 : STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) ;VARIABLE temp5 : STD_LOGIC ;SIGNAL a : STD_LOGIC ; - 定義信號SIGNAL b : REAL ;SIGNAL c : INTEGER ;SIGNAL d : STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) ;BEGINcfuzhi : PROCESS BEGIN temp0 : = cvolt ; - 變量直接賦值 temp1 : = ( cvolt + 1.8 ) * ccurrent ; - 變量表達式賦值 temp2 : = c + 78 ; temp3 : = c / 5 ; - 此時c必須是5的倍數(shù) temp4 : = d ; temp5 : = temp4 ( 2 ) ; END PROCESS cfuzhi ;END behavioral ;【例4-9】 變量賦值和信號量代入的對比示例程序。(P69)ARCHITECTURE behavioral OF example_duibi ISSIGNAL d0, d1, d2, d3 : STD_LOGIC ; - 定義信號SIGNAL q0, q1 : STD_LOGIC ;BEGINcduibi_1 :PROCESS (d0, d1, d2, d3 ) BEGIN d2 = d0 ; - 信號量代入 q0 = d2 OR d3 ; d2 = d1 ; - 信號量代入 q1 = d2 OR d3 ; END PROCESS cduibi_1 ;cduibi_2 : PROCESS (d0, d1, d3 ) VARIABLE m2 : STD_LOGIC ; BEGIN m2 : = d0 ; - 變量賦值 q0 = m2 OR d3 ; m2 : = d1 ; - 變量賦值 q1 = m2 OR d3 ; END PROCESS cduibi_2 ;END behavioral ;進程cduibi_1的運行結(jié)果:q0 = d1 OR d3 并且 q1 = d1 OR d3進程cduibi_2的運行結(jié)果:q0 = d0 OR d3 而 q1 = d1 OR d3【例4-10】 采用單IF語句來描述D觸發(fā)器的示例程序。(P71)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY cdff1 ISPORT( d : IN STD_LOGIC ; clk : IN STD_LOGIC ; q : OUT STD_LOGIC ; qnot : OUT STD_LOGIC ) ;END cdff1 ;ARCHITECTURE dataflow OF cdff1 ISBEGINcdff_example : PROCESS ( clk ) BEGIN IF ( clkEVENT AND clk = 1 ) THEN - 單IF語句 q = d ; qnot = NOT d ; END IF ; END PROCESS cdff_example ;END dataflow ;【例4-11】 采用二選擇的IF語句來描述二選一選擇器的示例程序。(P72)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY mux2_2 ISPORT( a0, a1 : IN BIT ; sel : IN BIT ; q : OUT BIT ) ;END mux2_2 ;ARCHITECTURE rtl OF mux2_2 ISBEGINcmux2_2 : PROCESS (a0, a1, sel ) BEGIN IF ( sel = 1 ) THEN - 二選擇的IF語句 q = a0 ; ELSE q = a1 ; END IF ; END PROCESS cmux2_2 ;END rtl ;【例4-12】 采用多選擇的IF語句來描述4選1選擇電路的示例程序。(P73)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY mux4_1 ISPORT( a0, a1, a2, a3 : IN STD_LOGIC ; sel : IN STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; q : OUT STD_LOGIC ) ;END mux4_1 ;ARCHITECTURE rtl OF mux4_1 ISBEGINcmux4_1 : PROCESS (a0, a1, a2, a3, sel ) BEGIN IF ( sel = 00 ) THEN - 多選擇的IF語句 q = a0 ; ELSIF ( sel = 01 ) THEN q = a1 ; ELSIF ( sel = 10 ) THEN q = a2 ; ELSE q = a3 ; END IF ; END PROCESS cmux4_1 ;END rtl ;【例4-13】 采用IF語句嵌套結(jié)構(gòu)的帶復位端的四選一選擇器的示例程序。(P74)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY mux4_2 ISPORT( cdata : IN STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) ; sel : IN STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; creset : IN STD_LOGIC ; q : OUT STD_LOGIC ) ;END mux4_2 ;ARCHITECTURE rtl OF mux4_2 ISBEGINcmux4_2 : PROCESS ( cdata, sel, creset ) BEGIN IF ( creset = 1 ) THEN IF ( sel = 00 ) THEN - 多選擇的IF語句 q = cdata (0) ; ELSIF ( sel = 01 ) THEN q = cdata (1) ; ELSIF ( sel = 10 ) THEN q = cdata (2) ; ELSE q = cdata (3) ; END IF ; ELSE q = 0 ; END IF ; END PROCESS cmux4_2 ;END rtl ;【例4-14】 采用CASE語句來描述4選1選擇器的示例程序。(P76)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY mux4_3 ISPORT( cdata : IN STD_LOGIC_VECTOR ( 3 DOWNTO 0 ) ; sel : IN STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; q : OUT STD_LOGIC ) ;END mux4_3 ;ARCHITECTURE rtl_mux4 OF mux4_3 ISSIGNAL temp_sel : INTEGER RANGE 0 TO 3 ;BEGINcmux4_3 : PROCESS ( cdata, sel ) BEGIN temp_sel = 0 ; IF ( sel (0) = 1 ) THEN - 選擇控制信號的譯碼 temp_sel = temp_sel + 1 ; END IF ; IF ( sel (1) = 1 ) THEN - 選擇控制信號的譯碼 temp_sel q q q q q q q q q q q q q q = XXXXXXXX ; END CASE ; ELSE q = 11111111 ; END IF ; END PROCESS ;END ARCHITECTURE rtl_cdecoder_3_8 ; - VHDL 1993版可以這么用【例4-16】 采用FOR LOOP語句實現(xiàn)32位奇偶校驗電路的示例程序。(P78)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY cparity1 IS PORT( cdata : IN STD_LOGIC_VECTOR ( 31 DOWNTO 0 ) ; q : OUT STD_LOGIC ; qnot : OUT STD_LOGIC ) ;END ENTITY cparity1 ;ARCHITECTURE rtl_cparity OF cparity1 ISBEGINcparity_example : PROCESS ( cdata )VARIABLE temp : STD_LOGIC ; BEGIN temp : = 1 ; FOR i IN 0 TO 31 LOOP - FOR LOOP語句對32位邏輯值奇偶判斷 temp : = temp XOR cdata ( i ) ; END LOOP ; q = temp ; qnot = NOT temp ; END PROCESS cparity_example ;END ARCHITECTURE rtl_cparity ;【例4-17】 WHILE LOOP語句格式的示例程序。(79)VARIABLE sum_temp : INTEGER : = 0 ;VARIABLE i : INTEGER : = 0 ;BEGINsum_example : WHILE ( i 100 ) LOOP sum_temp : = sum_temp + i ; i : = i + 1 ; END LOOP sum_example ;END PROCESS ;【例4-18】 采用WHILE LOOP語句實現(xiàn)32位奇偶校驗電路的示例程序。(80)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY cparity2 IS PORT( cdata : IN STD_LOGIC_VECTOR ( 31 DOWNTO 0 ) ; q : OUT STD_LOGIC ; qnot : OUT STD_LOGIC ) ;END ENTITY cparity2 ;ARCHITECTURE behav_cparity1 OF cparity2 ISBEGINcparity_example : PROCESS ( cdata )VARIABLE temp : STD_LOGIC ;VARIABLE i : INTEGER ; - 必須要有,不能省略 BEGIN temp : = 0 ; i : = 0 ; - WHILE LOOP語句對32位邏輯值進行奇偶判斷 WHILE ( i 32 ) LOOP temp : = temp XOR cdata ( i ) ; i : = i + 1 ; END LOOP ; q = temp ; qnot = NOT temp ; END PROCESS cparity_example ;END ARCHITECTURE behav_cparity1 ;【例4-19】 采用外部信號控制的32位奇偶校驗電路的示例程序。(81)LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY cparity3 IS PORT( cdata : IN STD_LOGIC_VECTOR ( 31 DOWNTO 0 ) ; ccontrol : IN STD_LOGIC ; q : OUT STD_LOGIC ;qnot : OUT STD_LOGIC ) ;END ENTITY cparity3 ;ARCHITECTURE rtl_cparity OF cparity3 ISBEGINcparity_example : PROCESS ( cdata, ccontrol )VARIABLE temp : STD_LOGIC ; BEGIN temp : = 0 ; FOR i IN 0 TO 31 LOOP - FOR LOOP語句對32位邏輯值奇偶判斷 NEXT WHEN ccontrol = 0 ; - 外部信號ccontrol為邏輯低電平 temp : = temp XOR cdata ( i ) ; WAIT FOR 200 ms ; - 使得程序等待200 ms END LOOP ; q = temp ; qnot 150 THEN EXIT ; - 當條件成立則提前退出循環(huán) END IF ; END LOOP ; END PROCESS cexit_example ;END ARCHITECTURE behav_cexit ;【例4-22】 采用RETURN語句的示例程序。(P83)FUNCTION cmax21 ( d1 : INTEGER ; d2 : INTEGER ) RETURN INTEGER ISVARIABLE temp : INTEGER : = 1 ; BEGIN IF d1 d2 THEN temp : = d1 ; ELSE temp : = d2 ; END IF ; RETURN temp ; END cmax21 ;【例4-23】 采用REPORT語句的示例程序。(P84)REPORT data0 is timed out at 0 - data0在邏輯0上超時SEVERITY ERROR ;REPORT q is not at 1 - q不在邏輯1電平上SEVERITY WARNING ;【例4-24】 使用NULL語句的示例程序。(P84)ARCHITECTURE dataflow OF cnull ISSIGNAL d, q : STD_LOGIC ;SIGNAL sel : STD_LOGIC_V
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司財政資金管理制度
- 廣東省廣州市2023?2024學年高二下冊期末考試數(shù)學試卷附解析
- 2024~2025學年 浙江省四校聯(lián)考高一語文上冊10月月考試卷附答案
- 專題三 聯(lián)邦制、兩黨制、三權分立:以美國為例測試題
- 家庭大掃除工作表現(xiàn)評語
- 個人退稅申請書范文
- 金華永康市國有企業(yè)招聘筆試真題2024
- 社區(qū)社區(qū)服務設施規(guī)劃與設計管理基礎知識點歸納
- 歷史建筑群保護社區(qū)老年規(guī)劃基礎知識點歸納
- 《商業(yè)地產(chǎn)規(guī)劃設計與管控及萬達經(jīng)驗借鑒》
- 房屋市政工程生產(chǎn)安全重大事故隱患判定標準(2024版)培訓課件
- 中外航海文化知到課后答案智慧樹章節(jié)測試答案2025年春中國人民解放軍海軍大連艦艇學院
- 湖南省郴州市2024-2025學年七年級上學期期末歷史試題(含答案)
- 2024年高考英語新課標1卷讀后續(xù)寫教學設計
- 寶安區(qū)義務教育入學信用承諾書模板
- 中國音樂史與名作欣賞智慧樹知到答案章節(jié)測試2023年吉林師范大學
- 奚旦立四環(huán)境監(jiān)測物理性污染監(jiān)測PPT教案
- 智利國家英文介紹PPT精選文檔
- 測試案例附錄DTX1800使用
- 不同齡期混凝土抗氯離子滲透性試驗_圖文
- 《U9供應鏈、財務實戰(zhàn)》產(chǎn)品操作指南
評論
0/150
提交評論