版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7章VHDL基本邏輯電路設(shè)計(jì)7.1組合邏輯電路設(shè)計(jì)7.2時(shí)序邏輯電路設(shè)計(jì)7.3輸入輸出電路設(shè)計(jì)7.4有限狀態(tài)機(jī)設(shè)計(jì)
7.1組合邏輯電路設(shè)計(jì)
7.1.1基本門電路
1.“與”門電路
在數(shù)字電路中,最簡單的“與”門電路是二輸入“與”門電路,它的邏輯表達(dá)式如下所示:
F?=?A·B
二輸入“與”門電路的邏輯符號(hào)如圖7-1所示,真值表如表7-1所示。圖7-1二輸入“與”門電路邏輯符號(hào)由于VHDL語法的多樣性和靈活性,通??梢圆捎貌煌姆绞絹韺﹂T電路的邏輯功能進(jìn)行描述。根據(jù)二輸入“與”門電路的邏輯表達(dá)式,可以采用行為描述方式,它的VHDL設(shè)計(jì)程序如例7.1所示。根據(jù)二輸入“與”門電路的真值表,也可以采用寄存器傳輸描述方式(或稱數(shù)據(jù)流描述方式),它的VHDL設(shè)計(jì)程序如例7.2所示。
【例7.1】二輸入“與”門電路的VHDL程序一。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYand_gateIS
PORT(A:INSTD_LOGIC;
B:INSTD_LOGIC;
F:OUTSTD_LOGIC);
ENDand_gate;
ARCHITECTUREbehaveOFand_gateIS
BEGIN
F<=AANDB;
ENDbehave;
【例7.2】二輸入“與”門電路的VHDL程序二。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYand_gateIS
PORT(A:INSTD_LOGIC;
B:INSTD_LOGIC;
F:OUTSTD_LOGIC);
ENDand_gate;
ARCHITECTURErtlOFand_gateIS
BEGIN
PROCESS(A,B)
VARIABLEcomb:STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
comb:=A&B;
CASEcombIS
WHEN"00"=>F<='0':
WHEN“01”=>F<=‘0’;
WHEN“10”=>F<=‘0’;
WHEN“11”=>F<=‘1’;
WHENOTHERS=>F<=‘X’;
ENDCASE;
ENDPROCESS;
ENDrtl;對二輸入“與”門電路的VHDL設(shè)計(jì)程序進(jìn)行仿真,不難得到VHDL設(shè)計(jì)程序的仿真波形如圖7-2所示。圖7-2二輸入“與”門仿真波形
2.“或”門電路
在數(shù)字電路中,最簡單的“或”門電路是二輸入“或”門電路,它的邏輯表達(dá)式如下所示:
F=A+B
二輸入“或”門電路的邏輯符號(hào)如圖7-3所示,真值表如表7-2所示。圖7-3二輸入“或”門電路邏輯符號(hào)根據(jù)二輸入“或”門電路的邏輯表達(dá)式,可以給出采用行為描述方式的VHDL設(shè)計(jì)程序,如例7.3所示;根據(jù)二輸入“或”門電路的真值表,也可以給出采用寄存器傳輸描述方式的VHDL設(shè)計(jì)程序,如例7.4所示。
【例7.3】二輸入“或”門電路的VHDL程序一。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYor_gateIS
PORT(A:INSTD_LOGIC;
B:INSTD_LOGIC;
F:OUTSTD_LOGIC);
ENDor_gate;
ARCHITECTUREbehaveOFor_gateIS
BEGIN
F<=AORB;
ENDbehave;
【例7.4】二輸入“或”門電路的VHDL程序二。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYor_gateIS
PORT(A:INSTD_LOGIC;
B:INSTD_LOGIC;
F:OUTSTD_LOGIC);
ENDand_gate;
ARCHITECTURErtlOFor_gateIS
BEGIN
PROCESS(A,B)
VARIABLEcomb:STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
comb:=A&B;
CASEcombIS
WHEN"00"=>F<='0':
WHEN“01”=>F<=‘1’;
WHEN“10”=>F<=‘1’;
WHEN“11”=>F<=‘1’;
WHENOTHERS=>F<=‘X’;
ENDCASE;
ENDPROCESS;
ENDrtl;對二輸入“或”門電路的VHDL設(shè)計(jì)程序進(jìn)行仿真,不難得到VHDL設(shè)計(jì)程序的仿真波形,如圖7-4所示。圖7-4二輸入“或”門電路仿真波形
3.“非”門電路
數(shù)字電路中,“非”門電路的邏輯表達(dá)式如下所示:
F?=A
?“非”門電路的邏輯符號(hào)如圖7-5所示,真值表如表7-3所示。圖7-5“非”門電路邏輯符號(hào)根據(jù)“非”門電路的邏輯表達(dá)式,可以給出采用行為描述方式的VHDL設(shè)計(jì)程序,如例7.5所示;根據(jù)“非”門電路的真值表,也可以給出采用寄存器傳輸描述方式的VHDL,設(shè)計(jì)程序如例7.6所示。
【例7.5】“非”門電路的VHDL程序一。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYnot_gateIS
PORT(A:INSTD_LOGIC;
F:OUTSTD_LOGIC);
ENDnot_gate;
ARCHITECTUREbehaveOFnot_gateIS
BEGIN
F<=NOTA;
ENDbehave;
【例7.6】“非”門電路的VHDL程序二。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYnot_gateIS
PORT(A:INSTD_LOGIC;
F:OUTSTD_LOGIC);
ENDnot_gate;
ARCHITECTURErtlOFnot_gateIS
BEGIN
PROCESS(A)
BEGIN
CASEAIS
WHEN‘0’=>F<=‘1’;
WHEN'1'=>F<='0';
WHENOTHERS=>F<=‘X’;
ENDCASE;
ENDPROCESS;
ENDrtl;
對“非”門電路的VHDL設(shè)計(jì)程序進(jìn)行仿真,不難得出VHDL設(shè)計(jì)程序的仿真波形,如圖7-6所示。圖7-6“非”門電路仿真波形
4.多輸入邏輯門電路
在數(shù)字電路設(shè)計(jì)的過程中,邏輯門電路的輸入往往不止一個(gè)(對于非門電路來說是一個(gè))或者兩個(gè),有時(shí)候還存在多個(gè)輸入的情況,這時(shí)就需要采用多輸入邏輯門電路來進(jìn)行相應(yīng)的設(shè)計(jì)。下面我們以8輸入“或”門為例來介紹多輸入邏輯門電路的VHDL程序設(shè)計(jì),其設(shè)計(jì)程序如例7.7所示。
【例7.7】8輸入“或”門電路程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYor8_gateIS
PORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);
F:OUTSTD_LOGIC);
ENDor8_gate;
ARCHITECTUREbehaveOFor8_gateIS
BEGIN
F<=A(7)ORA(6)ORA(5)ORA(4)ORA(3)ORA(2)ORA(1)ORA(0);
ENDbehave;7.1.2數(shù)據(jù)選擇器
數(shù)據(jù)選擇器具有2N條輸入數(shù)據(jù)線、N條地址選擇線和一條輸出數(shù)據(jù)線。下面我們以四選一數(shù)據(jù)選擇器為例來介紹數(shù)據(jù)選擇器的VHDL設(shè)計(jì)過程,它的邏輯符號(hào)如圖7-7所示,功能如表7-4所示。圖7-7四選一數(shù)據(jù)選擇器的邏輯符號(hào)由于VHDL語法的多樣性和靈活性,通??梢圆捎肐F語句、CASE語句、選擇信號(hào)賦值語句和條件信號(hào)賦值語句來描述四選一數(shù)據(jù)選擇器的邏輯功能。由于篇幅限制,下面僅給出采用IF語句描述四選一數(shù)據(jù)選擇器的VHDL程序,其他方式讀者可參照例7.8自行完成。
【例7.8】四選一數(shù)據(jù)選擇器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTlTYmux4IS
PORT(d0:INSTD_LOGIC;
d1:INSTD_LOGIC;
d2:INSTD_LOGIC;
d3:INSTD_LOGIC;
s0:INSTD_LOGIC;
s1:INSTD_LOGIC;
y:OUTSTD_LOGIC);
ENDmux4;
ARHCITECTURErtlOFmux4IS
BEGIN
PROCESS(d0,d1,d2,d3,s0,s1)
BEGIN
IFs1=‘0’ANDs0=‘0’THEN
y<=d0;
ELSIFs1=‘0’ANDs0=‘1’THEN
y<=d1;
ELSIFs1=‘1’ANDs0=‘0’THEN
y<=d2;
ELSIFs1=‘1’ANDs0=‘1’THEN
y<=d3;
ELSE
y<=‘Z’;
ENDIF;
ENDPROCESS;
ENDrtl;
對四選一數(shù)據(jù)選擇器的VHDL程序進(jìn)行仿真驗(yàn)證,不難得到相應(yīng)設(shè)計(jì)的時(shí)序仿真波形,如圖7-8所示。圖7-8四選一數(shù)據(jù)選擇器的仿真波形
【例7.9】八選一數(shù)據(jù)選擇器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmux8IS
PORT(data:INSTD_LOGIC_VECTOR(7DOWNTO0);
s0:INSTD_LOGIC;
s1:INSTD_LOGIC;
s2:INSTD_LOGIC;
y:OUTSTD_LOGIC);ENDmux8;
ARCHITECTURErtlOFmux8IS
SIGNALsel:STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
sel<=s2&s1&s0;
PROCESS(data,sel)
BEGIN
CASEselIS
WHEN"000"=>y<=data(0);
WHEN"001"=>y<=data(1);
WHEN“010”=>y<=data(2);
WHEN“011”=>y<=data(3);
WHEN“100”=>y<=data(4);
WHEN“101”=>y<=data(5);
WHEN“110”=>y<=data(6);
WHENOTHERS=>y<=data(7);
ENDCASE;
ENDPROCESS;
ENDrtl;對上述的八選一數(shù)據(jù)選擇器進(jìn)行仿真驗(yàn)證,其功能仿真波形如圖7-9所示。圖7-9八選一數(shù)據(jù)選擇器的功能仿真波形7.1.3編碼器和譯碼器
1.編碼器
在數(shù)字電路中,為了區(qū)分一系列不同的事物,將其中的每一個(gè)事物用一個(gè)二進(jìn)制代碼來表示,這就是編碼的含義。編碼器的邏輯功能就是把編碼器輸入的每一個(gè)高、低電平的信號(hào)編寫成一個(gè)對應(yīng)的二進(jìn)制信號(hào),即把2N個(gè)輸入信號(hào)轉(zhuǎn)化為N位編碼輸出。圖7-108-3編碼器的邏輯符號(hào)
1)普通編碼器
最簡單的普通編碼器是8-3編碼器,它的邏輯符號(hào)如圖
7-10所示,真值表如表7-5所示。可以看出8-3編碼器的功能是對8個(gè)輸入信號(hào)進(jìn)行編碼操作,然后以3位二進(jìn)制碼的形式輸出(這里輸入信號(hào)是低電平有效)。
【例7.10】8-3普通編碼器的VHDL程序設(shè)計(jì)。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYencoderIS
PORT(din:INSTD_LOGIC_VECTOR(7DOWNTO0);
y:OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDencoder;ARCHITECTURErtlOFencoderIS
BEGIN
PROCESS(din)
BEGIN
CASEdinIS
WHEN"01111111"=>y<="111";
WHEN"10111111"=>y<="110";
WHEN"11011111"=>y<="101";
WHEN"11101111"=>y<="100";
WHEN"11110111"=>y<="011";
WHEN“11111011”=>y<=“010”;
WHEN“11111101”=>y<=“001”;
WHEN“11111110”=>y<=“000”;
WHENOTHERS=>y<=”ZZZ”;
ENDCASE;
ENDPROCESS;
ENDrtl;對上述8-3普通編碼器的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,其仿真波形如圖7-11所示。圖7-118-3普通編碼器的仿真波形
2)優(yōu)先編碼器
在某一個(gè)給定時(shí)刻,輸入端允許同時(shí)出現(xiàn)兩個(gè)或兩個(gè)以上的輸入信號(hào),而且只對優(yōu)先級(jí)最高的輸入信號(hào)進(jìn)行編碼的編碼器稱為優(yōu)先編碼器??梢钥闯?,優(yōu)先編碼器與普通編碼器的最大不同是允許在同一時(shí)刻出現(xiàn)多個(gè)有效的輸入信號(hào),同時(shí)所有的有效輸入信號(hào)按照優(yōu)先級(jí)高低進(jìn)行排序,當(dāng)幾個(gè)輸入信號(hào)同時(shí)出現(xiàn)時(shí),只對其中優(yōu)先級(jí)最高的一個(gè)輸入信號(hào)進(jìn)行編碼。常用的簡單優(yōu)先編碼器是74LS148,它的邏輯符號(hào)如圖
7-12所示,它的功能表如表7-6所示。在功能表中,“X”代表任意項(xiàng);EI是74LS148的使能控制端,低電平有效;EO是無編碼信號(hào)輸入狀態(tài)標(biāo)志端,低電平有效;GS是有編碼信號(hào)輸入狀態(tài)標(biāo)志端,低電平有效。EO和GS兩個(gè)控制端對于編碼器的級(jí)聯(lián)是十分有用的。由74LS148的功能表可以看出,它的邏輯功能是對8個(gè)輸入信號(hào)進(jìn)行帶有優(yōu)先級(jí)的編碼操作,然后將編碼結(jié)果以3位二進(jìn)制碼的形式送到輸出端,這里輸入信號(hào)D7的優(yōu)先級(jí)最高。根據(jù)優(yōu)先編碼器74LS148的功能表來進(jìn)行相應(yīng)的VHDL設(shè)計(jì),其對應(yīng)的VHDL設(shè)計(jì)程序如例7.11所示。由于目前VHDL還不能用來描述任意項(xiàng),因此語句“WHEN“0XXXXXXX”=>
q<=“000”;”是非法的,所以在這里采用IF語句而沒有采用CASE語句來描述74LS148的功能。圖7-1274LS148的邏輯符號(hào)
【例7.11】74LS148優(yōu)先編碼器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYencoder_priorityIS
PORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);
EI:INSTD_LOGIC;
Q:OUTSTD_LOGIC_VECTOR(2DOWNTO0);
GS:OUTSTD_LOGIC;
EO:OUTSTD_LOGIC);
ENDencoder_priority;
ARCHITECTURErtlOFencoder_priorityIS
BEGIN
PROCESS(EI,D)
BEGIN
IF(EI='1')THEN
GS<='1';
EO<='1';
ELSIF(D=“11111111”ANDEI='0')THEN
Q<=“111”;
GS<='1';
EO<='0';
ELSIF(D(7)='0'ANDEI='0')THEN
Q<=“000”;
GS<='0';
EO<='1';
ELSIF(D(6)='0'ANDEI='0')THEN
Q<=“001”;
GS<='0';
EO<='1';
ELSIF(D(5)='0'ANDEI='0')THEN
Q<=“010”;
GS<='0';
EO<='1';
ELSIF(D(4)='0'ANDEI='0')THEN
Q<=“011”;
GS<='0';
EO<='1';
ELSIF(D(3)='0'ANDEI='0')THEN
Q<=“100”;
GS<='0';
EO<='1';
ELSIF(D(2)='0'ANDEI='0')THEN
Q<=“101”;
GS<='0';
EO<='1';
ELSIF(D(1)='0'ANDEI='0')THEN
Q<=“110”;
GS<='0';
EO<='1';
ELSIF(D(0)='0'ANDEI='0')THEN
Q<=“111”;
GS<='0';
EO<='1';
ELSE
Q<=“111”;
GS<='1';
EO<='0';
ENDI;
ENDPROCESS;
ENDrtl;下面對優(yōu)先編碼器74LS148的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,不難得出如圖7-13所示的仿真波形。圖7-13優(yōu)先編碼器74LS148的仿真波形
2.譯碼器
1)二進(jìn)制譯碼器
二進(jìn)制譯碼器的邏輯功能是把輸入的二進(jìn)制代碼的各種組合狀態(tài)翻譯成對應(yīng)的輸出信號(hào),有時(shí)也稱為變量譯碼器。在數(shù)字電路中,最常用的二進(jìn)制譯碼器是74LS138,它的邏輯符號(hào)如圖7-14所示,功能表如表7-7所示??梢钥闯?,譯碼器74LS138的功能是對3個(gè)輸入信號(hào)進(jìn)行譯碼以確定8個(gè)信號(hào)的輸出,因此它也稱為3-8譯碼器。圖7-1474LS138譯碼器邏輯符號(hào)
【例7.12】74LS138譯碼器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYvariable_decoderIS
PORT(A:INSTD_LOGIC;
B:INSTD_LOGIC:
C:INSTD_LOGIC;
G1:INSTD_LOGIC;
G2A:INSTD_LOGIC;
G2B:INSTD_LOGIC;
Y:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDvariable_decoder;
ARCHITECTURErtlOFvariable_decoderIS
BEGIN
PROCESS(G1,G2A,G2B,A,B,C)
VARIABLECOMB:STD_LOGIC_VECTOR(2DOWNTO0);
BEGIN
IF(G1=‘1’ANDG2A=‘0’ANDG2B=‘0’)THEN
COMB:=C&B&A;
CASECOMBIS
WHEN"000"=>Y<="11111110";WHEN"001"=>Y<="11111101";
WHEN"010"=>Y<="11111011";
WHEN"011"=>Y<="11110111";
WHEN"100"=>Y<="11101111";
WHEN"101"=>Y<="11011111";
WHEN"110"=>Y<="10111111";
WHEN"111"=>Y<="01111111";
WHENOTHERS=>Y<="XXXXXXXX";
ENDCASE;
ELSE
Y<=“11111111”;
ENDIF;
ENDPROCESS;
ENDrtl;
下面對譯碼器74LS138的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,不難得出如圖7-15所示的仿真波形。圖7-1574LS138仿真波形
2)數(shù)碼顯示譯碼器
數(shù)碼顯示譯碼器用來驅(qū)動(dòng)各種顯示器件,從而將用二進(jìn)制代碼表示的數(shù)字、文字、符號(hào)直觀地顯示出來。其結(jié)構(gòu)如圖
7-16所示,數(shù)碼顯示譯碼器的真值表如表7-8所示。圖7-16數(shù)碼顯示器的結(jié)構(gòu)
【例7.13】七段數(shù)碼管顯示譯碼電路的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYxsymIS
PORT(num:INSTD_LOGIC_VECTOR(3DOWNTO0);
dout:OUTSTD_LOGIC_VECTOR(6DOWNTO0));
ENDxsym;
ARCHITECTURErtlOFxsymIS
BEGIN
WITHNUMSELECT
dout<="1111110"WHEN"0000",--0?"0110000"WHEN"0001",--1
"1101101"WHEN"0010",--2
"1111001"WHEN"0011",--3
"0110011"WHEN"0100",--4
"1011011"WHEN"0101",--5
"1011111"WHEN"0110",--6
"1110000"WHEN"0111",--7
"1111111"WHEN"1000",--8
"1111011"WHEN"1001",--9
"0000000"WHENOTHERS;
ENDrtl;下面我們對上述的VHDL程序進(jìn)行仿真驗(yàn)證,其仿真波形如圖7-17所示。圖7-17數(shù)碼顯示譯碼電路的仿真波形7.1.4加法器
1.半加器
1位半加器有兩個(gè)輸入端,兩個(gè)輸出端。其邏輯符號(hào)如圖7-18所示,其中a、b為被加數(shù)和加數(shù)輸入端,s為和輸出端,co為進(jìn)位輸出端,其真值表如表7-9所示。圖7-18半加器邏輯符號(hào)
【例7.14】1位半加器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYhalf_adderIS
PORT(a:INSTD_LOGIC;
b:INSTD_LOGIC;
s:OUTSTD_LOGIC;
co:OUTSTD_LOGIC);
ENDhalf_adder;
ARCHITECTURErtlOFhalf_adderIS
SIGNALc,d:STD_LOGIC;
BEGIN
c<=aORb;
d<=aNANDb;
co<=NOTd;
s<=cANDd;
ENDrtl;下面對半加器的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,不難得出如圖7-19所示的仿真波形。圖7-19半加器的仿真波形
2.全加器
全加器有3個(gè)二進(jìn)制輸入端a、b和低位進(jìn)位端cin,以及1位和的輸出端s和進(jìn)位輸出端cout,其真值表如表7-10所示,邏輯功能符號(hào)如圖7-20所示。圖7-20全加器的邏輯符號(hào)根據(jù)表7-10所示的真值表,可以得到一位全加器的輸出和與進(jìn)位輸出的邏輯表達(dá)式如下所示:
【例7.15】1位全加器的VHDL程序(寄存器描述方式)。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfull_adderIS
PORT(a:INSTD_LOGIC;
b:INSTD_LOGIC;
cin:INSTD_LOGIC;
s:OUTSTD_LOGIC;
co:OUTSTD_LOGIC);
ENDfull_adder;
ARCHITECTURErtlOFfull_adderIS
SIGNALtmp1,tmp2:STD_LOGIC;
BEGIN
tmp1<=aORb;
tmp2<=tmp1ANDcin;
s<=tmp1XORcin;
co<=tmp2OR(aANDb);
ENDrtl;下面將對1位全加器的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,可以得到相應(yīng)的仿真波形如圖7-21所示。圖7-211位全加器的仿真波形在實(shí)際設(shè)計(jì)中,1位全加器通常采用2個(gè)半加器來構(gòu)成,則全加器的電路圖如圖7-22所示。圖7-22用2個(gè)半加器構(gòu)成的全加器
【例7.16】1位全加器的VHDL程序(結(jié)構(gòu)化描述方式)。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYfull_adderIS
PORT(a:INSTD_LOGIC;
b:INSTD_LOGIC;
cin:INSTD_LOGIC;
s:OUTSTD_LOGIC;
cout:OUTSTD_LOGIC);
ENDfull_adder;
ARCHITECTUREstructureOFfull_adderIS
COMPONENThalf_adder
PORT(a:INSTD_LOGIC;
b:INSTD_LOGIC;
s:INSTD_LOGIC;
co:OUTSTD_LOGIC);
ENDCOMPONENT;
SIGNALtemp1,temp2,temp3:STD_LOGIC;
BEGIN
u0:half_adderPORTMAP(a,b,temp1,temp2);
u1:half_adderPORTMAP(temp1,cin,s,temp3);
cout<=temp2ORtemp3;
ENDstructure;
對上述1位全加器的仿真驗(yàn)證波形同圖7-21,這里留給讀者自行完成。7.1.5比較器
表7-11給出了一種最簡單的1位數(shù)值比較器的功能表,可以看出它具有等于、大于和小于三種比較結(jié)果。根據(jù)表7-11可以很容易地給出描述其邏輯功能的VHDL設(shè)計(jì)程序,如例7.17所示。
【例7.17】?1位比較器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcompIS
PORT(A:INSTD_LOGIC;
B:INSTD_LOGIC;
Q:OUTSTD_LOGIC_VECTOR(2DOWNTO0));
ENDcomp;
ARCHITECTURErtlOFcompIS
BEGIN
PROCESS(A,B)
BEGIN
IF(A=B)THEN
Q<=“001”;
ELSIF(A>B)THEN
Q<=“010”;
ELSE
Q<=“100”;
ENDIF;
ENDPROCESS;
ENDrtl;
對1位數(shù)值比較器的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,可以得到如圖7-23所示的仿真波形。圖7-231位數(shù)值比較器的仿真波形實(shí)際使用中,應(yīng)用較為廣泛的數(shù)值比較器是4位數(shù)數(shù)值比較器CC14585,它的邏輯符號(hào)如圖7-24所示,功能表如表7-12所示??梢钥闯?,4位數(shù)值比較器CCl4585的具體邏輯功能如下:
(1)當(dāng)輸入數(shù)據(jù)A大于輸入數(shù)據(jù)B時(shí),有GT=l,EQ=LT=0。
(2)當(dāng)輸入數(shù)據(jù)A小于輸入數(shù)據(jù)B時(shí),有LT=1,GT=EQ=0。
(3)如果輸入數(shù)據(jù)A等于輸入數(shù)據(jù)B,則當(dāng)I1=1時(shí),GT=1,EQ=LT=0;當(dāng)I2=1時(shí),EQ=1,GT=LT=0;當(dāng)I3=1時(shí),LT=1,GT=EQ=0。圖7-24CC14585數(shù)值比較器符號(hào)圖
【例7.18】4位數(shù)值比較器CC14585的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcomp4IS
PORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);
B:INSTD_LOGIC_VECTOR(3DOWNTO0);
I1:INSTD_LOGIC;
I2:INSTD_LOGIC;
I3:INSTD_LOGIC;
GT:OUTSTD_LOGIC;
EQ:OUTSTD_LOGIC;
LT:OUTSTD_LOGIC);
ENDcomp4;
ARCHITECTURErtlOFcomp4IS
BEGIN
GT<=‘0’WHENA<BOR((A=B)ANDI2=‘1’)OR((A=B)ANDI3=‘1’)
ELSE‘1’WHENA>BOR((A=B)ANDI1=‘1’)
ELSE‘Z’;
EQ<='0'WHENA>BORA<BOR((A=B)ANDI1='1')OR((A=B)ANDI3='1')
ELSE‘1’WHEN((A=B)ANDI2=‘1’)
ELSE‘Z’;
LT<=‘0’WHENA>BOR((A=B)ANDI2=‘1’)OR((A=B)ANDI1=‘1’)
ELSE‘1’WHENA<BOR((A=B)ANDI3=‘1’)
ELSE‘Z’;
ENDrtl;對上述的4位數(shù)值比較器CC14585的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,不難得出相應(yīng)的仿真波形,如圖7-25所示。圖7-254位數(shù)值比較器CC14585的仿真波形7.1.6三態(tài)門和總線緩沖器
1.三態(tài)門
三態(tài)門電路是在普通門電路的基礎(chǔ)上附加控制電路構(gòu)成的。三態(tài)門電路的邏輯符號(hào)如圖7-26所示,真值表如表7-13所示??梢钥闯觯绻刂贫丝诘妮斎胄盘?hào)EN=1,那么輸入數(shù)據(jù)直接送到dout端口上;否則,輸出端口為高阻狀態(tài)。圖7-26三態(tài)門邏輯符號(hào)
【例7.19】三態(tài)門的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYtri_state_gateIS
PORT(din:INSTD_LOGIC;
en:INSTD_LOGIC;
dout:OUTSTD_LOGIC);
ENDtri_state_gate;
ARCHITECTUREbehaveOFtri_state_gateIS
BEGIN
PROCESS(en,din)
BEGIN
IF(en=‘1’)THEN
dout<=din;
ELSE
dout<=‘Z’;
ENDIF;
ENDPROCESS;
ENDbehave;下面我們對三態(tài)門的VHDL程序進(jìn)行驗(yàn)證,其仿真波形如圖7-27所示。圖7-27三態(tài)門仿真波形
2.總線緩沖器
1)單向總線緩沖器
典型的8位單向總線緩沖器如圖7-28所示,真值表如表
7-14所示。8位單向總線緩沖器由8個(gè)三態(tài)門組成,具有8個(gè)輸入和輸出端口。所有三態(tài)門的控制端連在一起,由一個(gè)控制輸入端en控制。圖7-288位單向總線緩沖器符號(hào)
【例7.20】8位單向總線緩沖器的VHDL設(shè)計(jì)程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYsingle_buff8IS
PORT(din:INSTD_LOGIC_VECTOR(7DOWNTO0);
en:INSTD_LOGIC;
dout:OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDsingle_buff8;
ARCHITECTUREbehaveOFsingle_buff8IS
BEGIN
PROCESS(en,din)
BEGIN
IF(en=‘1’)THEN
dout<=din;
ELSE
dout<=“ZZZZZZZZ”;
ENDIF;
ENDPROCESS;
ENDbehave;圖7-298位單向總線緩沖器仿真波形
2)雙向總線緩沖器
典型的8位雙向總線緩沖器如圖7-30所示。圖中的雙向緩沖器有兩個(gè)數(shù)據(jù)輸入輸出端a、b,一個(gè)方向控制端dir和一個(gè)選通端en。當(dāng)en=1時(shí),雙向總線緩沖器未被選通,a和b呈現(xiàn)高阻狀態(tài);當(dāng)en=0時(shí),雙向總線緩沖器被選通,如果dir=0,那么a=b,如果dir=1,那么b=a。雙向總線緩沖器的真值表如表
7-15所示。圖7-30雙向總線緩沖器
【例7.21】雙向總線緩沖器的VHDL設(shè)計(jì)程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYbi_buff8IS
PORT(a,b:INOUTSTD_LOGIC_VECTOR(7DOWNTO0);
en,dir:INSTD_LOGIC);
ENDbi_buff8;ARCHITECTUREbehaveOFbi_buff8IS
SIGNALaout,bout:STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
PROCESS(a,dir,en)
BEGIN
IF(en='0')AND(dir='1')THEN
bout<=a;
ELSE
bout<="ZZZZZZZZ";
ENDIF;
b<=bout;ENDPROCESS;
PROCESS(b,dir,en)
BEGIN
IF(en='0')AND(dir='0')THEN
aout<=b;
ELSE
aout<="ZZZZZZZZ";
ENDIF;
a<=aout;
ENDPROCESS;
ENDbehave;
從例7.21可以看出,雙向總線緩沖器由兩組三態(tài)門組成,利用信號(hào)aout和bout將兩組三態(tài)門連接起來。由于在實(shí)際工作中a、b都不可能同時(shí)出現(xiàn)“0”和“1”,故在這里沒有使用判決
函數(shù)。圖7-318位雙向總線緩沖器仿真波形7.2時(shí)序邏輯電路設(shè)計(jì)
7.2.1時(shí)鐘信號(hào)和復(fù)位信號(hào)
1.時(shí)鐘信號(hào)
(1)進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)。在這種情況下,時(shí)鐘信號(hào)應(yīng)作為敏感信號(hào),顯式地出現(xiàn)在PROCESS語句后跟的括號(hào)中,例如PROCESS(clock_signal)。時(shí)鐘信號(hào)邊沿的到來,將作為時(shí)序電路語句執(zhí)行的條件,如例7.22所示。
【例7.22】進(jìn)程的敏感信號(hào)是時(shí)鐘信號(hào)示例。
PROCESS(clk_signal)
BEGIN
IF(clock_edge_condition)THEN
signal_out<=signal_in
ENDIF;
ENDPROCESS;
(2)用進(jìn)程中的WAITON語句等待時(shí)鐘。在這種情況下,描述時(shí)序電路的進(jìn)程將沒有敏感信號(hào),而是用WAITON語句來控制進(jìn)程的執(zhí)行。也就是說,進(jìn)程通常停留在WAITON語句上,只有在時(shí)鐘信號(hào)到來且滿足邊沿條件時(shí),其余的語句才能執(zhí)行,如例7.23所示。
【例7.23】用進(jìn)程中的WAITON語句等待時(shí)鐘示例。
PROCESS
BEGIN
WAITON(clock_signal)UNTIL(clock_edge_condition)
signal_out<=signal_in
ENDPROCESS;在編寫上述程序時(shí)應(yīng)注意以下幾點(diǎn):
①無論IF語句還是WAITON語句,在時(shí)鐘邊沿說明時(shí),一定要注明是上升沿還是下降沿,僅僅說明邊沿還是不行的。
②當(dāng)時(shí)鐘信號(hào)作為進(jìn)程敏感信號(hào)時(shí),在敏感信號(hào)列表中不能出現(xiàn)一個(gè)以上的時(shí)鐘信號(hào),除時(shí)鐘信號(hào)以外,像復(fù)位信號(hào)等是可以和時(shí)鐘信號(hào)一起出現(xiàn)在敏感信號(hào)列表中的。
③WAITON語句只能放在進(jìn)程的最前面或是最后面。
(3)時(shí)鐘邊沿的描述。為了描述時(shí)鐘邊沿,一定要指定是上升沿還是下降沿,這一點(diǎn)可以使用時(shí)鐘信號(hào)的屬性描述來實(shí)現(xiàn)。也就是說,時(shí)鐘信號(hào)的值是從“0”到“1”變化,還是從“1”到“0”變化,由此可以得知是時(shí)鐘脈沖信號(hào)的上升沿還是下
降沿。
①時(shí)鐘脈沖的上升沿描述。時(shí)鐘脈沖上升沿波形與時(shí)鐘信號(hào)屬性的描述關(guān)系如圖7-32所示。從圖中可以看出,時(shí)鐘信號(hào)起始值為“0”,故其屬性值clk’LAST_VALUE=‘0’;上升沿的到來表示發(fā)生了一個(gè)事件,故用clk’EVENT表示;上升沿以后,時(shí)鐘信號(hào)的值為“1”,故其當(dāng)前值為clk=‘1’,這樣,表示上升沿到來的條件可以寫為
IFclk='1'ANDclk'LAST_VALUE='0'ANDclk'EVENT;圖7-32時(shí)鐘脈沖上升沿波形和時(shí)鐘信號(hào)屬性描述關(guān)系②時(shí)鐘脈沖下降沿描述。時(shí)鐘信號(hào)下降沿波形與時(shí)鐘信號(hào)屬性的描述關(guān)系如圖7-33所示。其關(guān)系與圖7-32類同,此時(shí)clk’LAST_VALUE=‘1’;時(shí)鐘信號(hào)當(dāng)前值為clk=‘0’;下降沿到來的事件為clk’EVENT。這樣表示下降沿到來的條件可寫為
IFclk='0'ANDclk'LAST_VALUE='0'ANDclk'EVENT;根據(jù)上面的上升沿和下降沿的描述,時(shí)鐘信號(hào)邊沿檢出條件可以統(tǒng)一描述如下:
IFclock_signal=current_valueAND
clock_signal‘LAST_VALUE=’0‘AND
clock_signal’EVENT;
實(shí)際中,經(jīng)常將邊沿檢出的條件簡寫為如下形式:
IFclock_signal=current_valueANDclock_signal'EVENT圖7-33時(shí)鐘脈沖下降沿波形和時(shí)鐘信號(hào)屬性描述關(guān)系
2.復(fù)位信號(hào)
1)同步復(fù)位
在使用VHDL語言描述時(shí),同步復(fù)位一定在以時(shí)鐘為敏感信號(hào)的進(jìn)程中定義,且用IF語句來描述必要的復(fù)位條件。下面兩個(gè)例子就是同步復(fù)位的描述實(shí)例。
【例7.24】同步復(fù)位描述方式一。
PROCESS(clock_signal)
BEGIN
IF(clock_edge_condition)THEN
IF(reset_condition)THEN
signal_out<=reset_value;
ELSE
signal_out<=signal_in;
ENDIF;
ENDIF;
ENDPROCESS;
【例7.25】同步復(fù)位描述方式二。
PROCESS
BEGIN
WAITON(clock_signal)UNTIL(clock_edge_condition)
IF(reset_condition)
ELSE
signal_out<=signal_in;
ENDIF;
ENDIF;
ENDPROCESS;
2)異步復(fù)位
異步復(fù)位在描述時(shí)與同步方式不同。首先在進(jìn)程的敏感信號(hào)中除時(shí)鐘信號(hào)以外,還應(yīng)加上復(fù)位信號(hào);其次是用IF語句描述復(fù)位條件;最后在ELSIF段描述時(shí)鐘信號(hào)邊沿的條件,并加上EVENT屬性。其描述方式如例7.26所示。
【例7.26】異步復(fù)位描述方式示例。
PROCESS(reset_signal,clock_signal)
BEGIN
IF(reset_condition)THEN
signal_out<=reset_value;
ELSIF(clock_eventANDclock_edge_condition)THEN
signal_out<=signal_in;
ENDIF;
ENDPROCESS;從例7.26可以看出,非同步時(shí)的信號(hào)和變量的代入值必須在時(shí)鐘信號(hào)邊沿有效的范圍內(nèi)進(jìn)行,如在例7.26中的ELSIF后進(jìn)行的那樣。
另外,添加clock_event是為了防止沒有時(shí)鐘信號(hào)發(fā)生時(shí)的誤操作。譬如,現(xiàn)在時(shí)鐘事件沒有發(fā)生而是發(fā)生了復(fù)位事件,這樣該進(jìn)程就得到了啟動(dòng)。7.2.2觸發(fā)器和鎖存器
1.觸發(fā)器
1)?D觸發(fā)器
D觸發(fā)器是一種應(yīng)用十分廣泛的鐘控觸發(fā)器,它是構(gòu)成各種復(fù)雜系統(tǒng)的基本單元。一個(gè)基本的D觸發(fā)器的邏輯符號(hào)如圖7-34所示,它的真值表如表7-16所示。圖7-34D觸發(fā)器邏輯符號(hào)
【例7.27】D觸發(fā)器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYdff1IS
PORT(d,cp:INSTD_LOGIC;
q:OUTSTD_LOGIC;
qb:OUTSTD_LOGIC);
ENDdff1;
ARCHITECTURErtlOFdff1IS
BEGIN
PROCESS(cp)
BEGIN
IF(cp=‘1’)AND(cp‘EVENT)THEN
q<=d;
qb<=NOTd;
ENDIF;
ENDPROCESS;
ENDrtl;下面對D觸發(fā)器的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,不難得出其設(shè)計(jì)的仿真波形如圖7-35所示。圖7-35D觸發(fā)器的時(shí)序仿真波形一般來說,實(shí)際設(shè)計(jì)中并非所有的器件在上電時(shí)都能處于復(fù)位或置位狀態(tài),因此實(shí)際應(yīng)用中的器件都會(huì)含有相應(yīng)的復(fù)位或置位控制端口。同樣,所有實(shí)用的D觸發(fā)器也都含有復(fù)位或置位控制端口。常用的異步置位/復(fù)位D觸發(fā)器的邏輯符號(hào)如圖7-36所示,它的功能表如表7-17所示。圖7-36異步置位/復(fù)位D觸發(fā)器符號(hào)
【例7.28】異步置位/復(fù)位D觸發(fā)器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYdffcsIS
PORT(d,cp,clr,set:INSTD_LOGIC;
q,qb:OUTSTD_LOGIC);
ENDdffcs;
ARCHITECTURErtlOfdffcsIS
BEGIN
PROCESS(cp,clr,set)
BEGIN
IF(clr='0')THEN
q<='0';
qb<='1';
ELSIF(set=‘0’)THEN
q<='1';
qb<='0';
ELSIF(cp‘EVENTANDcp='1')THEN
q<=d;
qb<=NOTd;
ENDIF;
ENDPROCESS;
ENDrtl;
下面對例7.28的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,其仿真波形如圖7-37所示。圖7-37異步置位/復(fù)位D觸發(fā)器的仿真波形
2)?JK觸發(fā)器
在數(shù)字電路中,JK觸發(fā)器也是一種應(yīng)用較為廣泛的觸發(fā)器。一般來說,JK觸發(fā)器的種類很多,可以用在不同目的的數(shù)字電路設(shè)計(jì)中。這里將討論一個(gè)異步置位/復(fù)位的JK觸發(fā)器的VHDL設(shè)計(jì),該觸發(fā)器的邏輯符號(hào)如圖7-38所示,它的功能表如表7-18所示。圖7-38異步置位/復(fù)位JK觸發(fā)器邏輯符號(hào)
【例7.29】用VHDL程序描述JK觸發(fā)器的功能。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYjkffIS
PORT(j,k,cp,clr,set:INSTD_LOGIC;
q,qb:OUTSTD_LOGIC);
ENDjkff;
ARCHITECTURErtlOFjkffIS
SIGNALq_s,qb_s:STD_LOGIC;
BEGIN
PROCESS(cp,clr,set,j,k)
BEGIN
IF(clr='0')AND(set=1')THEN
q_s<='0';
qb_s<='1';
ELSIF(clr='1')AND(set='0')THEN
q_s<='1';
qb_s<='0';
ELSIF(cp‘EVENTANDcp='1')THEN
IF(j='0')AND(k='1')THEN
q_s<='0';
qb_s<='1';
ELSIF(j='1')AND(k='0')THEN
q_s<='1';
qb_s<='0';
ELSIF(j='1')AND(k='1')THEN
q_s<=NOTq_s;
qb_s<=NOTqb_s;
ELSE
q_s<=q_s;
qb_s<=qb_s;
ENDIF;
q<=q_s;
qb<=qb_s;
ENDIF;
ENDPROCESS;
ENDrtl;
下面對異步置位/復(fù)位JK觸發(fā)器的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,不難得到其設(shè)計(jì)對應(yīng)的仿真波形,如圖7-39示。圖7-39異步置位/復(fù)位JK觸發(fā)器仿真波形
2.鎖存器
鎖存器是觸發(fā)器的一種應(yīng)用類型,廣泛用于計(jì)算機(jī)與數(shù)字系統(tǒng)的輸入緩沖電路,其作用是將輸入信號(hào)暫時(shí)寄存,等待處理。下面我們就對D鎖存器作以介紹,其邏輯符號(hào)如圖7-40所示,真值表如表7-19所示。圖7-40D鎖存器邏輯符號(hào)
【例7.30】?D鎖存器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYlatchIS
PROT(d,cp:INSTD_LOGIC;
q:OUTSTD_LOGIC);
ENDlatch;
ARCHITECTURErtlOFlatchIS
BEGIN
PROCESS(cp)
BEGIN
IF(cp=‘1’)THEN
q<=d;
ENDIF;
ENDPROCESS
ENDrtl;
下面我們對D鎖存器的VHDL設(shè)計(jì)程序進(jìn)行仿真驗(yàn)證,如圖7-41所示。圖7-41D鎖存器仿真波形7.2.3計(jì)數(shù)器
1.同步計(jì)數(shù)器
下面給出一個(gè)帶有異步復(fù)位、同步置數(shù)功能的8421BCD碼計(jì)數(shù)器的例子,來說明同步計(jì)數(shù)器的VHDL設(shè)計(jì)過程。8421BCD碼計(jì)數(shù)器的邏輯符號(hào)如圖7-42所示,計(jì)數(shù)器功能表如表7-20所示。圖7-428421BCD碼計(jì)數(shù)器邏輯符號(hào)
【例7.31】同步計(jì)數(shù)器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcntm60IS
PORT(ci:INSTD_LOGIC;
nreset:INSTD_LOGIC;
load:INSTD_LOGIC;
data:INSTD_LOGIC_VECTOR(7DOWNTO0);
clk:INSTD_LOGIC;
co:OUTSTD_LOGIC;
qh:OUTSTD_LOGIC_VECTOR(3DOWNTO0);
ql:OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDENTITYcntm60;
ARCHITECTUREartOFcntm60IS
SIGNALqh_tmp,ql_tmp:STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
co<=‘1’WHEN(qh_tmp=“0101”ANDql_tmp=“1001”ANDci=‘1’)ELSE‘0’; --進(jìn)位輸出
PROCESS(clk,nreset)
BEGIN
IF(nreset='0')THEN--異步復(fù)位
qh_tmp<="0000";
ql_tmp<="0000";
ELSIF(clk'EVENTANDclk='1')THEN --同步置數(shù)
IF(load='1')THEN
qh_tmp<=data(7DOWNTO4);
ql_tmp<=data(3DOWNTO0);
ELSIF(ci=‘1’)THEN --模60的實(shí)現(xiàn)
IF(ql_tmp=9)THEN
ql_tmp<=“0000”;
IF(qh_tmp=5)THEN
qh_tmp<=“0000”;
ELSE
--計(jì)數(shù)功能實(shí)現(xiàn)
qh_tmp<=qh_tmp+1;
ENDIF;
ELSE
ql_tmp<=ql_tmp+1;
ENDIF;
ENDIF;
ENDIF;
ENDPROCESS;
qh<=qh_tmp;
ql<=ql_tmp;
ENDARCHITECTUREart;下面對8421BCD碼同步計(jì)數(shù)器的VHDL程序進(jìn)行仿真驗(yàn)證,其仿真波形如圖7-43所示。圖7-438421BCD碼同步計(jì)數(shù)器仿真波形
2.異步計(jì)數(shù)器
在數(shù)字電路中,常見的一種4位異步計(jì)數(shù)器的邏輯電路如圖7-44所示。這種計(jì)數(shù)器是由4個(gè)具有異步復(fù)位控制端口的D觸發(fā)器構(gòu)成的。其中,第1個(gè)觸發(fā)器的時(shí)鐘輸入端口用來接收外來的時(shí)鐘信號(hào),而其余觸發(fā)器的時(shí)鐘信號(hào)則來自于前一個(gè)觸發(fā)器的反相輸出。圖7-444位異步計(jì)數(shù)器的邏輯電路
【例7.32】異步復(fù)位D觸發(fā)器的VHDL程序。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYdffIS
PORT(d:INSTD_LOGIC;
cp:INSTD_LOGIC;
r:INSTD_LOGIC;
q:OUTSTD_LOGIC;
qb:OUTSTD_LOGIC);
ENDENTITYdff;
ARCHITECTUREartOFdffIS
BEGIN
PROCESS(cp,r)
BEGIN
IF(r=‘0’)THEN
q<=‘0’;
qb<='1';
ELSIF(cp‘EVENTANDcp=’1‘)THEN
q<=d;
qb<=NOTd;
ENDIF
ENDPROCESS;
ENDARCHITECTUREart;
【例7.33】4位異步計(jì)數(shù)器VHDL程序。
LIBRARYIEEE;
USEIE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年《價(jià)值為綱》學(xué)習(xí)心得范例(3篇)
- 課題申報(bào)參考:接受美學(xué)視野下的卞之琳莎學(xué)研究
- 課題申報(bào)參考:教育強(qiáng)國進(jìn)程中高校繼續(xù)教育高質(zhì)量發(fā)展的保障機(jī)制和推進(jìn)路徑研究
- 2025版房地產(chǎn)銷售代理授權(quán)委托合同3篇
- 二零二五年度物流倉儲(chǔ)中心臨時(shí)搬運(yùn)工勞動(dòng)合同書4篇
- 2025版學(xué)校游泳池配套設(shè)施租賃與管理承包合同示范2篇
- 二零二五版藝術(shù)品拍賣師傭金分成合同3篇
- 個(gè)性化離婚合同與起訴狀套裝2024版版B版
- 二零二五年度健康管理與養(yǎng)老服務(wù)業(yè)合作協(xié)議3篇
- 二零二五年度圖書封面及插圖設(shè)計(jì)合同4篇
- 山東鐵投集團(tuán)招聘筆試沖刺題2025
- 真需求-打開商業(yè)世界的萬能鑰匙
- 2025年天津市政集團(tuán)公司招聘筆試參考題庫含答案解析
- GB/T 44953-2024雷電災(zāi)害調(diào)查技術(shù)規(guī)范
- 2024-2025學(xué)年度第一學(xué)期三年級(jí)語文寒假作業(yè)第三天
- 2024年列車員技能競賽理論考試題庫500題(含答案)
- 心律失常介入治療
- 6S精益實(shí)戰(zhàn)手冊
- 展會(huì)場館保潔管理服務(wù)方案
- 監(jiān)理從業(yè)水平培訓(xùn)課件
- 廣東省惠州市實(shí)驗(yàn)中學(xué)2025屆物理高二第一學(xué)期期末綜合測試試題含解析
評(píng)論
0/150
提交評(píng)論