【正文】
END CASE。 WHEN st4 = data_out =39。 WHEN st2 = data_out =39。 ?? outputs: PROCESS (pres_state) BEGIN CASE pres_state IS WHEN st0 = data_out =39。 END CASE。039。39。139。39。 END CASE。 = data_out =39。 WHEN 39。0039。 WHEN st1 = data_out =39。039。39。 WHEN OTHERS = next_state = st0。 END CASE。 END CASE。 WHEN 01= next_state = st1。 WHEN 10= next_state = st2。 IF state_inputs = 11 THEN next_state = s0。 IF state_inputs = 00 THEN next_state=s1。 IF state_inputs = 00 THEN next_state=s0。 WHEN 11= next_state = st2。 END PROCESS statereg。 ELSIF (clock’EVENT AND clock=39。 SIGNAL pres_state,next_state: state_values。 data_out: OUT STD_LOGIC。狀態(tài)機(jī)有 5個(gè)狀態(tài),復(fù)位控制信號(hào)reset有效時(shí),狀態(tài)機(jī)的狀態(tài)為 st0狀態(tài)。 ▲ 次態(tài)邏輯電路:為組合電路,次態(tài)由輸入信號(hào)和當(dāng)前狀態(tài)決定。 IF state_inputs=11 THEN next_state= s3。EVENT THEN current_state = next_state。 THEN current_state = s0。 ARCHITECTURE behv OF s_machine IS TYPE FSM_ST IS (s0, s1, s2, s3)。 ENTITY s_machine IS PORT (clk,reset: IN STD_LOGIC。 進(jìn)程間一般是 并行運(yùn)行 的,但由于敏感信號(hào)的設(shè)置不同以及電路的延遲, 在時(shí)序上,進(jìn)程間的動(dòng)作是有先后的 。 在產(chǎn)生輸出的過程中,由是否使用輸入信號(hào)可以確定狀態(tài)機(jī)的類型。 狀態(tài)譯碼器狀態(tài)寄存器輸出譯碼器狀態(tài)輸出反饋輸入組 合 邏 輯 狀態(tài)機(jī)的基本操作有兩種: (1) 狀態(tài)機(jī)內(nèi)部狀態(tài)轉(zhuǎn)換 。039。EVENT AND CLOCK=‘ 1’) THEN IF (WE=‘ 1’) THEN RAMTMP(CONV_INTEGER(WADD))=DATA; END IF; END IF; END PROCESS; PROCESS(ACLR, CLOCK) IS BEGIN IF (ACLR=‘ 0’) THEN RADD=(OTHERS=‘ 0’) ; ELSIF (CLOCK39。EVENT AND CLOCK=‘ 1’) THEN IF(WE=‘ 1’)THEN RAMTMP(CONV_INTEGER(WADD))=DATAIN; END IF; END IF; END PROCESS; PROCESS(CLOCK) IS BEGIN IF(CLOCK39。 注意:需要初始化 D O U T [ 3 . . 0 ]D O U T [ 3 . . 0 ]ENA D R [ 7 . . 0 ]A D R [ 7 . . 0 ]ENR O MLIBRARY IEEE; USE ; USE ; USE ; ENTITY ROM IS PORT(EN: IN STD_LOGIC; ADR: IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END ROM; ARCHITECTURE ART OF ROM IS SUB TYPE WORD IS STD_LOGIC_VECTOR(3 DOWNTO 0); TYPE MEMORY IS ARRAY(0 TO 255) OF WORD; SIGNA ADR_IN: INTEGER RANGE 0 TO 255; VARIABLE ROM: MEMORY; VARIABLE START_UP: BOOLEAN:=TRUE; VARIABLE L: LINE; VARIABLE J: INTEGER; FILE ROMIN: TEXT IS IN “ROMIN” ; BEGIN PROCESS(EN, ADR) IS BEGIN IF START_UP THEN FOR J IN ROM39。) THEN Q_IN=D; END IF; END PROCESS; END ART1; LIBRARY IEEE; USE ; ENTITY RPLCOUNT IS PORT(CLK, CLR: IN STD_LOGIC; COUNT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END RPLCOUNT; ARCHITECTURE ART2 OF RPLCOUNT IS SIGNA COUNT_IN: STD_LOGIC_VECTOR(4 DOWNTO 0); COMPONENT DIFFR IS PORT(CLK, CLR, D: IN STD_LOGIC; Q, QB: OUT STD_LOGIC); END COMPONENT DIFFR; BEGIN COUNT_IN(0)=CLK; GEN1: FOR I IN 0 TO 3 GENERATE U: DIFFR PORT MAP(CLK=COUNT_IN(I), CLR=CLR, D=COUNT_IN(I+1), Q=COUNT_IN(I), QB=COUNT_IN(I+1)); END GENERATE GEN1; END ART2; 存儲(chǔ)器設(shè)計(jì) 半導(dǎo)體存儲(chǔ)器從功能上可以分為只讀存儲(chǔ)器和隨機(jī)存儲(chǔ)器兩大類。EVENT AND CLK=‘ 1’)THEN IF(LOAD=‘ 1’)THEN QH=D(7 DOWNTO 4); QL=D(3 DOWNTO 0); ELSIF(CI=‘ 1’)THEN IF(QL=9)THEN QL=0000; IF(QH=5)THEN QH=0000; ELSE QH=QH+1; END IF; ELSE QL=QL+1; END IF; END IF; END IF; END PROCESS; END ART; 異步計(jì)數(shù)器 用 VHDL語言描述 異步計(jì)數(shù)器 , 與同步計(jì)數(shù)器不同之處主要表現(xiàn)在對(duì)各級(jí)時(shí)鐘的描述上 。 LIBRARY IEEE; USE ; USE ; ENTITY CNTM60 IS PORT(CI: IN STD_LOGIC; NRESET: IN STD_LOGIC; LOAD: IN STD_LOGIC; D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK: IN STD_LOGIC; CO: OUT STD_LOGIC; QH: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); QL: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END CNTM60; 同步計(jì)數(shù)器 模為 60,帶異步復(fù)位、同步置數(shù)功能的 8421BCD碼計(jì)數(shù)器。因此,移位寄存器不但可以用來寄存代碼,還可用來實(shí)現(xiàn)數(shù)據(jù)的串 /并轉(zhuǎn)換、數(shù)值的運(yùn)算以及數(shù)據(jù)處理等。 dataout=temp。 temp=‘0’ EXIT。 END CASE。shl。 WHEN “001”=temp=datain。 PORT (clk,shl,shr:IN STD_LOGIC。 LIBRARY IEEE。 通用寄存器 通用寄存器可以直接設(shè)置初始值,完成雙向移位寄存器功能,加法計(jì)數(shù)器功能、減法計(jì)數(shù)器功能。 G1:FOR i IN 3 downto 0 GENERATE Dffx:dff PORT MAP (z(i),clk,z(i+1))。 END shift。 USE 。 END PROCESS。 ARCHITECTURE sh1 OF shift is Signal q_temp:STD_LOGIC_VECTOR(7 downto 0) BEGIN PROCESS(clk,rst) BEGIN IF rst=‘1’ THEN q_temp= (others=‘0’))。 USE 。即寄存器里面存儲(chǔ)的代碼能夠在時(shí)鐘的作用下依次進(jìn)行左移或者右移。 END IF。 ENTITY reg4b IS PORT(load:IN STD_LOGIC din:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 三:寄存器 在數(shù)字系統(tǒng)中能夠用來存儲(chǔ)一組二進(jìn)制碼的同步時(shí)序邏輯電路,一般由多位觸發(fā)器連接而成。 END IF。 Q: OUT STD_LOGIC)。 ENTITY dff_ck_en IS PORT (data: IN STD_LOGIC。 END PROCESS。 D CP Q Q clk data reset set ARCHITECTURE dff OF dff_asyn IS BEG