搜索
您的当前位置:首页正文

EDA大题

来源:意榕旅游网


三、在下面横线上填上合适的 VHDL 关键词(每空2分,共10分)

1、完成 2 选 1 多路选择器的设计。 LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

1 MUX21 IS ENTITY PORT(SEL:IN STD_LOGIC; A,B:IN STD_LOGIC; Q: OUT STD_LOGIC ); END MUX21; BEGIN

2 BHV OF MUX21 IS ARCHITECTURE Q<=A WHEN SEL=’1’ ELSE B; END BHV;

2、完成 BCD­7 段 LED 显示译码器的设计。 LIBRARY IEEE ;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY BCD_7SEG IS

PORT( BCD_LED : IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDSEG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END BCD_7SEG;

ARCHITECTURE BEHAVIOR OF BCD_7SEG IS BEGIN

PROCESS(BCD_LED) 3 BEGIN

IF BCD_LED=\"0000\" THEN LEDSEG<=\"0111111\"; ELSIF BCD_LED=\"0001\" THEN LEDSEG<=\"0000110\";

ELSIF BCD_LED=\"0010\" THEN LEDSEG<= 4 ; 1011011 ELSIF BCD_LED=\"0011\" THEN LEDSEG<=\"1001111\"; ELSIF BCD_LED=\"0100\" THEN LEDSEG<=\"1100110\"; ELSIF BCD_LED=\"0101\" THEN LEDSEG<=\"1101101\"; ELSIF BCD_LED=\"0110\" THEN LEDSEG<=\"1111101\"; ELSIF BCD_LED=\"0111\" THEN LEDSEG<=\"0000111\"; ELSIF BCD_LED=\"1000\" THEN LEDSEG<=\"1111111\"; ELSIF BCD_LED=\"1001\" THEN LEDSEG<=\"1101111\"; ELSE LEDSEG<= 5 ; NULL

END IF; END PROCESS; END BEHAVIOR;

四、阅读下列 VHDL 程序,画出原理图(RTL 级)(10分)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY HAD IS

PORT ( a : IN STD_LOGIC; b : IN STD_LOGIC; c : OUT STD_LOGIC; d : OUT STD_LOGIC); END ENTITY HAD;

ARCHITECTURE fh1 OF HAD IS BEGIN

c <= NOT(a NAND b);

d <= (a OR b)AND(a NAND b); END ARCHITECTURE fh1;

五、根据以下Verilog程序代码,画出模块图,并说明该系统实现什么功能。(10分)

module MUX (C, D, E, F, S, MUX_OUT); input C, D, E, F; input [1:0] S;

output MUX_OUT; reg MUX_OUT;

always @(C or D or E or F or S) begin case (S)

2′b00 : MUX_OUT = C; 2′b01 : MUX_OUT = D; 2′b10 : MUX_OUT = E; default : MUX_OUT = F; endcase end

endmodule

答:四选一多路选择器,C、D、E、F是四个数据输入端,MUX_OUT是数据输出端,S[1:0]是选择信号输入端,s取00时,pout=c;s取01时,pout=d;s取10时,pout=e;s取其他值,pout=f;

六、设计一个JK触发器,其元件符号如图所示,其中J、K是数据输入端,CLR是复位控制输入端,当CLR=0时,触发器的状态被置为0态;CLK是时钟输入端;Q和QN是触发器的两个互补输出端。(10分)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY myjkff IS

PORT(j,k,clr:IN STD_LOGIC; clk:IN STD_LOGIC;

q,qn:BUFFER STD_LOGIC); END myjkff;

ARCHITECTURE one OF myjkff IS BEGIN

PROCESS(j,k,clr,clk)

VARIABLE jk:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN jk:=(j & k);

IF clr='0' THEN q<='0'; qn<='1'; ELSIF clk'EVENT AND clk='0' THEN CASE jk IS

WHEN \"00\" => q <=q; qn <= qn; WHEN \"01\" => q <= '0'; qn <= '1'; WHEN \"10\" => q <= '1'; qn <= '0';

WHEN \"11\" => q <= NOT q; qn <= NOT qn; WHEN OTHERS => NULL; END CASE ; END IF;

END PROCESS; END one;

七、采用状态机方法,设计一个串行数据检测器check,其输入为串行码in,在连续输入4个或4个以上的1时out输出1,否则输出0 (10分)

三、在下面横线上填上合适的语句,完成 10 位二进制加法器电路的设计。(本题10分)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ 1 .ALL; unsigned

ENTITY ADDER1 IS

PORT(A,B:IN STD_LOGIC_VECTOR(9 DOWNTO 0); COUT:OUT STD_LOGIC;

SUM:OUT STD_LOGIC_VECTOR(9 DOWNTO 0)); END;

2 JG OF ADDER1 IS ARCHITECTURE

SIGNAL ATEMP: STD_LOGIC_VECTOR(10 DOWNTO 0); SIGNAL BTEMP: STD_LOGIC_VECTOR(10 DOWNTO 0);

SIGNAL SUMTEMP: STD_LOGIC_VECTOR 3 DOWNTO 0); (10 BEGIN

ATEMP<=’0’& A; BTEMP<=’0’& B; SUMTEMP<= 4 ; (ATEMP+BTEMP)

SUM<=SUMTEMP(9 DOWNTO 0); COUT<= 5 ; (SUMTEMP(10)) END JG;

四、阅读下列Verilog HDL程序,画出原理图(RTL级)(10分)

module example_4_11(y,a,b,c); input a,b,c; output y; wire s1,s2,s3; not (s1,a); nand (s2,c,s1); nand (s3,a,b); nand (y,s2,s3); endmodule

五、阅读下列Verilog HDL源程序,画出元件符号,说明模块功能,和各管脚功能。(10分)

module cnt8(q,cout,d,load,en,clk,clr); input [7:0] input

d;

q;

load,en,clk,clr;

cout;

output reg[7:0] output reg

begin

if (clr) q= 0;

else if (load)

always @(posedge clk)

q =d;

else if (en) begin q = q+1;

if (q==255) cout = 1; else cout=0;end

end

endmodule

该模块是8位二进制加法计数器,D[7..0]是8位数据输入端,load是预置控制输入端,en是使能控制输入端,clk是时钟输入端,clr是清除输入端,q[7..0]是8位数据输出端,cout是进位输出端。

六、根据已给出的二-十(BCD)进制优先权编码器功能表,试写出其VHDL程序。(10分)

二-十(BCD)进制优先权编码器功能表 输入 I1 1 X X X X X X X X 0 I2 1 X X X X X X X 0 1 I3 1 X X X X X X 0 1 1 I4 1 X X X X X 0 1 1 1 I5 1 X X X X 0 1 1 1 1 I6 1 X X X 0 1 1 1 1 1 I7 1 X X 0 1 1 1 1 1 1 I8 1 X 0 1 1 1 1 1 1 1 I9 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 输出 Y3 Y2 Y1 Y0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 三、根据以下VHDL程序代码画出由实体unknown和结构体netlist生成系统的连接图,并说明该系统实现什么功能(可以用真值表说明)。(共20分)

library IEEE;

use IEEE.std_logic_1164.all; entity dff is

port(clk, D : in std_logic; Q : out std_logic); end dff;

architecture behave of dff is begin

if clk’event and clk=’1’ then Q<=D; end if; end behave;

library IEEE;

use IEEE.std_logic_1164.all; entity unknown is

port(clk, A : in std_logic; B : out std_logic); end shift;

architecture netlist of unknown is component dff

port(clk, D : in std_logic; Q : out std_logic); end component;

signal Z : std_logic_vector(0 to 2); begin

DFF1: dff port map (clk, A, Z(0) ); DFF2: dff port map (clk, Z(0), Z(1) ); DFF3: dff port map (clk, Z(1), Z(2) ); DFF4: dff port map (clk, Z(2), B ); end netlist;

四、判断下列程序是否有错误,如有则指出错误所在,并给出完整程序。(10分)

library ieee;

use ieee.std_logic_1164.all; ENTITY mux21 is

port(a,b,sel:in std_logic; y:out std_logic;(去掉;)); end sam2(改成mux21);

architecture one of mux21(去掉下划线) is

BEGIN

IF sel=’0’ THEN y:=a(改成y<=a); ELSE y:=b(改为y<=b); End if;

End two(改成结构体名one);

五、已知电路原理图如下,请用VHDL语言编写其程序。(10分)

解:

library ieee;

use ieee.std_logic_1164.all; ENTITY mux21 is port(a,b,s:in bit; y:out bit); end mux21;

architecture one of mux21 is single d,e:bit; begin

d<=a and (not)s; e<=b and s; y<=d or e; end one;

六、解释程序 (10分)

LIBRARY ieee; 定义元件库 USE ieee.std_logic_1164.ALL; 定义数据库 USE ieee.std_logic_arith.ALL; USE ieee.std_logic_unsigned.ALL;

ENTITY ram_8 IS 定义实体 PORT 定义端口 (A : IN std_logic; din : IN std_logic_vector(7 DOWNTO 0); din为输入端口, dout : OUT std_logic_vector(7 DOWNTO 0); adr_8 : INOUT std_logic_vector(7 DOWNTO 0));八位信号双向端口 END ram_8;

七、根据以下Verilog程序代码,说明该系统实现什么功能。(10分)

module MUX (C, D, E, F, S, MUX_OUT); input C, D, E, F; input [1:0] S;

output MUX_OUT; reg MUX_OUT;

always @(C or D or E or F or S) begin case (S)

2′b00 : MUX_OUT = C; 2′b01 : MUX_OUT = D; 2′b10 : MUX_OUT = E; default : MUX_OUT = F; endcase end

endmodule

答:四选一多路选择器,C、D、E、F是四个数据输入端,MUX_OUT是数据输出端,S[1:0]是选择信号输入端,s取00时,pout=c;s取01时,pout=d;s取10时,pout=e;s取其他值,pout=f;

因篇幅问题不能全部显示,请点此查看更多更全内容

Top