logo资料库

EDA技术与VHDL答案.pdf

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
第 3 章 VHDL 基础 习题 3-1 如图所示 3-2 程序: IF_THEN 语句 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY mux21 S PORT ( s1,s0 : IN STD_LOGIC_VECTOR ; a,b,c,d : IN STD_LOGIC ; y : OUT STD_LOGIC ) ; END ENTITY mux21 ; ARCHITECTURE one OF mux21 IS BEGIN PROCESS ( s0,s1,a,b,c,d ) BEGIN IF s1= ELSIF s1= ELSIF s1= ELSIF s1= ELSE y<=NULL ; END IF ; END PROCESS ; END ARCHITECTURE one ; ’0’ AND s0=’0’ THEN y<=a ; ’0’ AND s0=’1’ THEN y<=b ; ’1’ AND s0=’0’ THEN y<=c ; ’1’ AND s0=’1’ THEN y<=d ;
CASE 语句 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY mux21 IS PORT ( s1,s0 : IN STD_LOGIC_VECTOR ; a,b,c,d : IN STD_LOGIC ; y : OUT STD_LOGIC ) ; END ENTITY mux21 ; ARCHITECTURE two OF mux21 IS SIGNAL s : STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; BEGIN s<=s1 & s0 ; PROCESS ( s ) BEGIN CASE s IS WHEN WHEN “00” => y<=a ; “01” => y<=b ; WHEN “10” => y<=c ; WHEN “11” => y<=d ; WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ARCHITECTURE two ; 3-3 程序: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY MUXK IS PORT ( s0,s1 : IN STD_LOGIC ; a1,a2,a3 : IN STD_LOGIC ; outy : OUT STD_LOGIC ) ; END ENTITY MUXK ; ARCHITECTURE double OF MUXK IS SIGNAL tmp : STD_LOGIC ; -- 内部连接线 BEGIN
’0’ THEN u1_y<= u1_a ; p_MUX21A_u1 : PROCESS ( u1_s, u1_a, u1_b, u1_y ) SIGNAL u1_s, u1_a, u1_b, u1_y : STD_LOGIC ; BEGIN IF u1_s= ELSIF u1_y<= u1_b ; ELSE u1_y<= NULL ; END IF ; END PROCESS p_ MUX21A_u1 ; p_ MUX21A_u2 : PROCESS ( u2_s, u2_a, u2_b, u2_y ) SIGNAL u2_s, u2_a, u2_b, u2_y : STD_LOGIC ; BEGIN IF u2_s= ELSIF u2_y<= u2_b ; ELSE u2_y<= NULL ; END IF ; END PROCESS p_ MUX21A_u2 ; u1_s<= s0 ; u1_a<= a2 ; u1_b<= a3 ; tmp<= u1_y ; u2_s<=s1 ; u2_a<= a1 ; u2_b<= tmp; outy <= u2_y ; END ARCHITECTURE double ; ’0’ THEN u2_y<= u2_a ; 3-4 程序: (1)1 位半减器
1 位半减器的设计选用(2)图,两种表达方式: 一、 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY h_suber IS PORT ( x,y : IN STD_LOGIC ; s_out ,diff : OUT STD_LOGIC ) ; END ENTITY h_suber ; ARCHITECTURE fhd1 OF h_suber IS BEGIN diff<=x XOR y ; s_out<= ( NOT a ) AND b ; END ARCHITECTURE fhd1 ; 二、 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY h_suber IS PORT ( x,y : IN STD_LOGIC ; s_out ,diff : OUT STD_LOGIC ) ; END ENTITY h_suber ; ARCHITECTURE fhd1 OF h_suber IS SIGNAL s : STD_LOGIC_VECTOR ( 1 DOWNTO 0 ) ; BEGIN s<= x & y ; PROCESS ( s )
BEGIN CASE s IS WHEN WHEN “00” => s_out <=’0’ ; diff<=’0’ ; “01” => s_out <=’1’ ; diff<=’1’ ; WHEN “10” => s_out <=’0’ ; diff<=’1’ ; WHEN “11” => s_out <=’0’ ; diff<=’0’ ; WHEN OTHERS => NULL ; END CASE ; END PROCESS ; END ARCHITECTURE fhd1 ; 或门逻辑描述: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY or IS PORT ( a,b : IN STD_LOGIC ; c : OUT STD_LOGIC ) ; END ENTITY or ; ARCHITECTURE one OF or IS BEGIN c<= a OR b ; END ARCHITECTURE one ; 1 位全减器: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY f_suber IS PORT ( x,y,sub_in : IN STD_LOGIC ; sub_out ,diffr : OUT STD_LOGIC ) ; END ENTITY f_suber ; ARCHITECTURE fhd1 OF f_suber IS COMPONENT h_suber IS PORT ( x,y : IN STD_LOGIC ; s_out ,diff : OUT STD_LOGIC ) ; END COMPONENT h_suber ; COMPONENT or IS
PORT ( a,b : IN STD_LOGIC ; c : OUT STD_LOGIC ) ; END COMPONENT or ; SIGNAL d,e,f : STD_LOGIC ; BEGIN u1 : h_suber PORT MAP ( x=>x, y=>y, diff=>d, s_out=>e ) ; u2 : h_suber PORT MAP ( x=>d, y=>sub_in, diff=>diffr, s_out=>f ) ; u3 : or PORT MAP ( a=>f, b=>e, c=>sub_out ) ; END ARCHITECTURE fhd1 ; (2)8 位减法器: x0 y0 x1 y1 x2 y2 x3 y3 sub_in x y sub_in x y sub_in x y sub_in x y a f_suber sub_out u0 f_suber sub_out u1 diffr0 diffr1 b d c f_suber sub_out u2 f_suber sub_out u3 diffr2 diffr3 x4 y4 x5 y5 x6 y6 x7 y7 sub_in x y sub_in x y sub_in x y sub_in x y e f_suber sub_out u4 f f_suber sub_out u5 g f_suber sub_out u6 f_suber sub_out u7 diffr4 diffr5 diffr6 diffr7 sub_out LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY 8f_suber IS PORT ( x0,x1,x2,x3,x4,x5,x6,x7 : IN STD_LOGIC ; y0,y1,y2,y3,y4,y5,y6,y7 : IN STD_LOGIC ; sub_in : IN STD_LOGIC ; sub_out : OUT STD_LOGIC ; diffr0,diffr1,diffr2,diffr3 : OUT STD_LOGIC ; diffr4,diffr5,diffr6,diffr7 : OUT STD_LOGIC ) ; END ENTITY 8f_suber ;
ARCHITECTURE 8fhd1 OF 8f_suber IS COMPONENT f_suber IS PORT ( x,y,sub_in : IN STD_LOGIC ; sub_out ,diffr : OUT STD_LOGIC ) ; END COMPONENT f_suber ; SIGNAL a,b,c,d,e,f,g : STD_LOGIC ; BEGIN u0 : f_suber PORT MAP ( x=>x0, y=>y0, sub_in=>, sub_out=>a, diff=>diff0 ) ; u1 : f_suber PORT MAP ( x=>x1, y=>y1, sub_in=>a, sub_out=>b, diff=>diff1 ) ; u2 : f_suber PORT MAP (x=>x2, y=>y2, sub_in=>b, sub_out=>c, diff=>diff2 ) ; u3 : f_suber PORT MAP (x=>x3, y=>y3, sub_in=>c, sub_out=>d, diff=>diff3 ) ; u4 : f_suber PORT MAP (x=>x4, y=>y4, sub_in=>d, sub_out=>e, diff=>diff4 ) ; u5 : f_suber PORT MAP (x=>x5, y=>y5, sub_in=>e, sub_out=>f, diff=>diff5 ) ; u6 : f_suber PORT MAP (x=>x6, y=>y6, sub_in=>f, sub_out=>g, diff=>diff6 ) ; u7 : f_suber PORT MAP (x=>x7, y=>y7, sub_in=>g, sub_out=> sub_out, diff=>diff7 ) ; END ARCHITECTURE 8fhd1 ; 3-5 程序: 或非门逻辑描述: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY nor IS PORT ( d,e : IN STD_LOGIC ; f : OUT STD_LOGIC ) ; END ENTITY nor ; ARCHITECTURE one OF nor IS BEGIN
f <= NOT ( d OR e ) ; END ARCHITECTURE one ; 时序电路描述: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY circuit IS PORT ( CL, CLK0 : IN STD_LOGIC ; OUT1 : OUT STD_LOGIC ) ; END ENTITY circuit ; ARCHITECTURE one OF circuit IS COMPONENT DFF1 IS PORT ( CLK : IN STD_LOGIC ; D : IN STD_LOGIC ; Q : OUT STD_LOGIC ) ; END COMPONENT DFF1 ; COMPONENT nor IS PORT ( d,e : IN STD_LOGIC ; f : OUT STD_LOGIC ) ; END COMPONENT nor ; COMPONENT not IS PORT ( g : IN STD_LOGIC ; h : OUT STD_LOGIC ) ; END COMPONENT not ; SIGNAL a,b,c : STD_LOGIC ; BEGIN u0 : nor PORT MAP ( d=>c, e=>CL, f=>a ) ; u1 : DFF1 PORT MAP ( CLK=>CLK0, D=>a, Q=>b ) ; u2 : not PORT MAP ( g=>b, g=>c, h=>OUT1 ) ; END ARCHITECTURE one ; 3-6 3-7 3-8 3-9
分享到:
收藏