【正确答案】4选1数据选择器。 ENTITY mum41 IS PORT(en,a0,a1,d0,d1,d2,d3:IN Bit; F:OUT Bit); END mux41; ARCHITECTURE bch mux41 OF mux41 IS BEGIN PROCESS(en,a1,a0,d3,d2,d1,d0) BEGIN IF(en='i')THEN IF(a1='0' AND a0='0')THEN f<=d0; ELSIF(a1='0' AND a0='i')THEN f<=d1; ELSIF(a1='i' AND a0='0')THEN f<=d2; ELSE f<=d3; ENDIF; ELSE f<='0'; ENDIF; END PROCESS; END bch_mux41;
【答案解析】
【正确答案】2线-4线译码器。 LIBRARY IEEE; USE IEEE STD_LOGIC_1164.ALL; ENTITY b0-2-4 IS PORT(en,a0,a1:IN STD LOGIC; Y0,Y1,Y2,Y3:OUT STD LOGICO); END b0-2-4; ARCHITECTURE rtl OF b0-2-4 IS SIGNAL tmp_IN:STD_LOGIC_VECTOR(IDOWNTO 0); SIGNAL tmp_OUT:STD_LOGIC_VECTOR(3DOWNTO 0); BEGIN tmp_IN<=al&a0; PROCESS(tmp_IN,en) BEGIN IF(en='0')THEN CASS tmp_IN IS WHEN "00"=>tmp_OUT<="1110"; WHEN "01"=>tmp_OUT<="1101"; WHEN "10”=>tmp_OUT<="1011"; WHEN "11"=>tmp_OUT<="0111"; WHEN OUTTHERS=>tmp_OUT<="1111"; END CASS; ELSE tmp_OUT<="1111"; END IF; YO<=tmp_OUT(0); Y1<=tmp_OUT(1); Y2<=tmp_OUT(2); Y4<=tmp OUT(3); END PROCESS; END rtl;
【答案解析】
【正确答案】时钟R-S触发器。 ENTITY R-S-FF PORT(r,s,CLK:IN Bit; q,nq:BUFFER Bit); END R-S-FF; ARCHITECTURE rsff OF R-S-FF IS BEGIN ASSERT NOT(r='1' AND s='1') REPORT "Control | error"SEVERITV Error; PROCESS(r,s,CLK) BEGIN IF CLK='1' THEN q<=s OR(NOT r AND q); nq<= NOT(s OR(NOT r AND q)); END IF; END PROCESS; END rsff;
【答案解析】
【正确答案】带复位端Clear和置位端Preset、输出延迟Tpd为20ns,响应CP下降沿的J-K触发器。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JKff IS PORT(clear,preset,CLK,J,K:INSTD_LOGIC; q,Nq:OUT STD_LOGIC); END JKff; ARCHITECTURE rl OF JKff IS PROCESS(clear,preset,CLK,J,K) BEGIN IF(clear='0')THEN q<='0'; Nq<='1'; ELSIF(preset='0')THEN q<='1'; Nq<='0'; ELSIF(CLK 'EVENT AND CLK='0')THEN IF(J='0')AND(K='1')THEN q<='0' AFTER 20ns; Nq<='1' AFTER 20ns; ELSIF(J='1')AND(K='0')THEN q<='1' AFTER 20ns; Nq<='0' AFTER 20ns; ELSIE(J='1')AND(K='1')THEN q<=NOT q AFTER 20ns; Nq<=NOT Nq AFTER 20ns; ENDIF; END PROCESS; END rtl;
【答案解析】
【正确答案】主从J-K触发器。 读者可根据主从J-K触发器特点自行编程。
【答案解析】
【正确答案】集成计数器74163。 ENTITY counter16 IS PORT(cr,ld,cp,ctt,ctp:IN Bit; d:IN Bit_VECTOR(3DOWNTO 0); q:BUFFER Bit_Vector(3DOWNTO 0); co:OUT Bit); END counter16; ARCHITECTURE behave_ctr16 OF counter16 IS BEGIN PROCESS(cp) BEGIN IF(cp='1')THEN IF er='0' THEN q<="0000"; ELSIF id='0' THEN q<=d; ELSIF(ctt='1' AND ctp='1')THEN IF q="1111" THEN q<="0000"; ELSE q<=q+1; END IF; END IF; END IF; END PROCESS; cO<='1' WHEN(q="1111" AND ctt='1')ELSE '0'; END bch_ctr16;