EDA程序设计试题及答案讲解.doc

上传人:scccc 文档编号:11930621 上传时间:2021-11-03 格式:DOC 页数:32 大小:499KB
返回 下载 相关 举报
EDA程序设计试题及答案讲解.doc_第1页
第1页 / 共32页
EDA程序设计试题及答案讲解.doc_第2页
第2页 / 共32页
EDA程序设计试题及答案讲解.doc_第3页
第3页 / 共32页
EDA程序设计试题及答案讲解.doc_第4页
第4页 / 共32页
EDA程序设计试题及答案讲解.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《EDA程序设计试题及答案讲解.doc》由会员分享,可在线阅读,更多相关《EDA程序设计试题及答案讲解.doc(32页珍藏版)》请在三一文库上搜索。

1、1请画出下段程序的真值表,并说明该电路的功能LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY aaa ISPORT( oe,dir :INSTD_LOGIC ;a,b : INOUTSTD_LOGIC_VECTOR(7 DOWNTO 0 ) ;END aaa ;ARCHITECTUREar OF aaa IS输出x3x2x1x00001001001001000输入a00101BEGINPROCESS(oe , dir )BEGINa1IF oe=0 THEN a=”zzzzzzzz”; b= ”zzzzzzzz”;0ELSIFoe=1 THEN0I

2、Fdir= 0 THENb=a;1ELSIF dir= 1 THENa=b;1ENDIF;END IF ;END PROCESS ;END ar ;功能为:2- 4译码器.4分2请说明下段程序的功能,写出真值表,并画出输入输出波形。LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY aaa ISPORT( reset,clk: IN STD_LOGIC;q: BUFFER STD_LOGIC_VECTOR(2 DOWNTO 0)

3、);END aaa;ARCHITECTURE bd OF aaa ISBEGINPROCESS(clk,reset)BEGINIF (reset=0) THEN q=000;ELSIF (clkevent AND clk=1) THENIF (q=5) THEN q=000;ELSE q=q+1;END IF;END IF;END PROCESS; END bd;功能为:带进位借位的4位加/减法器。 .3分输入输出波形图如下:ma3.O 1XXXC-XXX)b3.Ue3.0,-zxza1. 试用VHDL语言编程实现74LS273芯片的功能。USEieee.stdo gic_1164.ALL;E

4、NTITYls273ISPORT(elr,elk :INstd_logie;dINstdogie_veetor(7 DOWNTO 0 );q);OUTstdo gie_veetor(7 DOWNTO 0 );ENDls273;丿;ARCHITECTUREloek8OFls273ISLIBRARY ieee;BEGINPROCESS ( elk )BEGINIF (CLR= THEN q= ”00000000” ;ELSEIF (elk event AND elk= THEN q=d;ELSEIF ( elk= THEN q=q;END IF;END PROCESS;END Iock8;2141

5、12313请用VHDL语言编程实现一个状态向量发生器。LIBRARYieee;USEieee.stdo gie_1164.ALL;2ENTITYstasIS1PORT(ep, rst :INstd_logie;p:BUFFER std_logie_veetor(7 DOWNTO 0 );2ENDbstas;ARCHITECTUREarstasOF stasIS1BEGINPROCESS (cp )BEGINIF(rst=”O” THEN p= ”00000000111WITHp SELECTpb THENELSIF ab THENELSE ahb=0;END IF;END PROCESS;ah

6、b= alb= ; aeb=0; ahb= 0; alb= 1; aeb=0; alb= 0; aebb100ab010a=b001(2)该电路是一个8位两输入比较器,(2)a、b是两个8位输入端;(1其余端输出为“ 0” (2ahb、alb和aeb为比较结果输出端,某种比较结果为真时,相应的输出端为1”,1 试用VHDL语言编程实现一个2-4译码器,其真表如下:输入端输出端enselecty0XX1111”1001110”1011101”1101011”1110111”2-4译码器码 参考程序如下:(答案不唯一,用 case语句、withselect语句都可以。)LIBRARY IEEE;U

7、SE IEEE.STD_LOGIC_1164.ALL;(1 )ENTITY ym24 ISPORT( en : IN STD_LOGIC;select : OUT STD_LOGIC_VECTOR(1 DOWNTO 0);y : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)(3);END ym24;ARCHITECTURE bd OF ym24 ISBEGINPROCESS(e n)(1 )IF (en= 1) THENy= ”1110”WHENselect=00 ”ELSE”1101”WHENselect =”01”ELSE”1011”WHENselect =”0”ELS

8、E”0111”WHENselect =”1”ELSE(4 A A A1111 ; ELSE yQQQQQQQ=00000000;(4)END CASE;END PROCESS;END bd;(10 分)2、已知三选一电路如图,判断下列程序是否有错误,如有则指出错误所在,并给出完整程序。library ieee;use ieee.std _lo gic_1164.all;ENTITY MAX isport(a1,a2,a3,s0,s1:in bit;outy:out bit);end max;( 2)architecture one of max iscomp onent mux21aport(

9、a,b,s:in std_logic;y:out std_logic);end component;( 2)signal temp std_logic;_ (2)beginu1:mux21a port map(a2,a3,s0,temp); (2)u2:mux21a port map(a1,temp,s1,outy); ( 2)end one;1.已知电路原理图如下,请用 VHDL语言编写其程序础肥:答:library ieee;use ieee.std_logic_1164.all;en tity mux21isport(a,b,s:in bit;y:out bit);end mux21;(

10、 4architecture one of mux21 issi ngle d,e:bit;begind=a and (no t)s;e=b and s;y=d or e;end one;2.设计一个带有异步清零功能的十进制计数器。计数器时钟clk上升沿有效、清零端CLRN、进位输出co。COUNTER10D QU CLRNco答: library ieee;use ieee.std _lo gic_1164.all;en tity coun ter10 isport(clk,CLRN:in std_logic;dout:out in teger range 0 to 9);end cou n

11、ter10;( 5 architecture behav of coun ter10 ISbeginprocess(clk)variable cn t: in teger range 0 to 9;( 3 beginIF CLRN=0 THENCNT:=0;ELSIFclk=1a nd clkeve nt the nif cn t=9 the ncnt:=O;elsecn t:=c nt+1;end if;end if;dout=c nt;end process;end behav;(73. 1)用VHDL语言编写半加器和或门器件的程序,如图所示:H-RDDERB性 ORRCB答:半加器程序:

12、library ieee;use ieee.std _lo gic_1164.all;en tity h_adder is port(a,b:in std_logic;co,so:out std_logic);end h_adder;architecture one of h_adder is beginso=no t(a xor(not b);co=a and b;end one;或门程序:library ieee;use ieee.std _lo gic_1164.all;en tity or2a isport(a,b:in std_logic;c:out std_logic);end o

13、r2a;architecture one of or2a isbeginca in ,b=b in, co=d,so=e); u2 : h_adder port map(a=e,b=ci n, co=f,so=sum); u3 : or2a port map(d,f,cout);end fd1;1.试用VHDL语言编程实现一个总线开关,其真值表如下:输入输出enselectA0A6B0B6Y0Y60xZzzzzzz ”10A11B1.总线开关的参考程序如下:LIBRARY ieee;USE ieee.std_logic_1164.all;(1)ENTITY aaa ISPORT( en, se

14、lect : IN STD_LOGIC ;A, B : IN STD_LOGIC_VECTOR(6 DOWNTO 0 ) ;Y : OUT STD_LOGIC_VECTOR(6 DOWNTO 0)END aaa ;(4)ARCHITECTURE ar OF aaa ISBEGINPROCESS(en, select )BEGINIF en= 0 THEN Y= ”ZZZZZZZ ”;ELSIF en=1 THENIF select=0 THEN Y=A;ELSIF select=1 THEN Y=B;END IF;END IF ;END PROCESS ;END ar ;(5)2. 试用 VH

15、DL 语言编程实现一个 M10 计数器,要求该计数器有一个时钟输入端clk ,一个复位端rst (低电平复位),一个使能端en (高电平时允许计数),一个“计数到”输出端cout, 个4位二进制当前计数值输出口 q; cout端仅当计数满的一个时钟周期输出高电平,其余时刻全保持低电平 2. M10 计数器参考程序:LIBRARY ieee;USE ieee.std_logic_1164.all;1)USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY aaa ISPORT(clk, rst, en : IN ST

16、D_LOGIC; cout: OUT STD_LOGIC;q: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END aaa;(4 )ARCHITECTURE bd OF aaa ISBEGINPROCESS(clk,reset,en)BEGINIF (rst=0) THEN q=0000;ELSIF (clkevent AND clk=1) THENIF en= 1 THENIF (q=9) THEN q=0000;ELSE q=q+1;END IF;END IF;END IF;END PROCESS;(10END bd;3请用VHDL语言编程,用一个状态机模型

17、实现一个七段码 LED字符发生器。该电路有一个复位输入 端RST, 个时钟输入端CP, 组七段码输出端ag。在LED上七个段的排列位置如图所示。该电路 的功能为,当复位输入端 RST为低电平时,输出端口输出全零,无显示;当 RST为高电平时,在时钟信号CP的每个上升沿,输出端依次轮流输出 5个字符HAPPY ”的七段码(共阴极接法),周而复始。3.用VHDL语言编程实现一个 LED字符发生器参考程序:LIBRARY ieee;USE ieee.stdo gic_1164.ALL;ENTITY ge nc ISPORT( rst, cp : INa,b,c,d,e,f,g:);END gene;

18、ARCHITECTURE aaSTD_LOGIC;OUT STD LOGICOF ge nc ISTYPE state IS(s0,s1, s2, s3, s4, s5 );SIGNAL pstate: state;SIGNAL dout: STD_LOGIC_VECTOR(6 DOWNTO 0 );BEGINpr1: PROCESS(cp, rst,)BEGINIF rst=0 THEN pstate pstate pstate pstate pstate pstate pstate pstate dout dout dout dout dout dout dout=0000000;- 无显

19、示END CASE;END PROCESS;(5 a=dout(6); b=dout(5); c=dout(4); d=dout(3); e=dout(2); f=dout(1); g=dout(0);END aa;(12.试用VHDL语言和进程语句,编程实现一个 3-8译码器。 该译码器的功能为,当使能信号EN为低电平时,输出端丫7丫0全为高电平(没有输出端被选中); 当EN为高电平时,每一种ABC的输入状态组合能惟一地选中一路输出(被选中的端输出低电平)。真值表如下:输入输出A BCENY7Y6Y5Y4Y3Y2Y1Y000011111111r 0 :00111111110101011111

20、1011011111r 111011r 1100111101111101111011111110110r 11111r 1111101p厂1111r 1XXX011111111LIBRARY ieee;USEieee.stdo gic_1164.ALL;2ENTITYym38IS1PORT(a, b, c, en :INstd_logic;y:OUTstdo gic_vector(7 DOWNTO 0 );3END丿;ym38;ARCHITECTUREarc38OFls273IS1BEGINPROCESS(en)1SIGNAL din :stdogic_vector(7 DOWNTO 0 );

21、1BEGINdi*=a&b&c&e n;1WITH din SELECTy= ”11111110 WHEN 0001 ”;5”11111101”WHEN0011 ”;”11111011”WHEN0101”;”11110111”WHEN0111”;”11101111”WHEN1001”;”11011111”WHEN1011”;”10111111”WHEN1101”;”01111111”WHEN1111”;”11111111”WHENOTHERSEND PROCESS;END arc38;1.试用VHDL语言编程实现一个多路开关。该电路的功能为,当选择端So和Si为不同状态组合时,如果使能信号EN

22、为电平,输出端X和Y分别与不同的输入通 道AoBo、A1B1、A2B2和A3B3接通并保持,当 EN为低电平时,X、Y输出为高阻态。真值表如下:输入输出S1S0ENA0B0A1B1A2B2A3B3XY00 11XXXXXXXXA0B01011XXXXXXXXA1B1101XXXXXXXXA2B2 I11 11XXXXXXXXA3B3 :XX0XXXXXXXXZZ1.多路开关的参考程序如下:LIBRARY ieee;2USEieee.stdo gic_1164.ALL;PORT(s0,s1,e n, a0,b0,a1,b1,a2,b2,a3,b3:IN std_logic;x, y : );OU

23、Tstdo gic_vector(7 DOWNTO 0 );3ENDmulkey;丿;architecturearmkOF mulkey ISsignalBEGINsel:std_logic_vecter (1 DOWNTO 0 )ENTITY mulkey ISsel=s1 &s0;PROCESS (en )BEGINIF (en= 0)THEN x=y= ZELSEIF (sel= ”00”)THENx=a0 ;y=b0;ELSEIF (sel= ”01”)THENx=a1 ;y=b1;ELSEIF (sel= ”10”)THENx=a2;y=b2;ELSEIF (sel= ”11”)TH

24、ENx=a3 ;y0) ; - ELSIF CLKEVENT AND CLK=1 THEN -IF EN = 1 THEN-IF CQI 0);-END IF;END IF;END IF;IF CQI = 9 THEN COUT = 1;-ELSE COUT = 0;END IF;CQ = CQI;-将计数值向端口输出END PROCESS;END behav;2. 试描述一个带进位输入、输出的 8 位全加器端口: A 、 B 为加数, CIN 为进位输入, S 为加和, COUT 为进位输出LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADD

25、ER8 ISPORT (A, B : IN STD_LOGIC_VECTOR (7 DOWNTO 0);CIN : IN STD_LOGIC;COUT : OUT STD_LOGIC;S : OUT STD_LOGIC_VECTOR (7 DOWNTO 0) );END ADDER8;ARCHITECTURE ONE OF ADDER8 ISSIGNAL TS : STD_LOGIC_VECTOR (8 DOWNTO 0);BEGINTS = ( 0& A) + (0& B) + CIN;S = TS(7 DOWNTO 0);COUT = TS(8);END ONE;七、VHDLg序设计:(2

26、0分)设计一数据选择器 MUX, 其系统模块图和功能表如下图所示。试采用下面三种方式中的两种来描述该数据选择器 MUX的结构体。SEL(1:O)SELCOUT00AIN AND BIN01AIN XOR BIN10NOT AIN11MOT BINOTHERSXX 用if语句。 (b)用case语句。 (c)用when else语句。Library ieee;Use ieee.std_logic_1164.all;En tity mymux is-选择信号输入Port ( sel : in std_logic_vector(1 dow nto 0);-数据输入Ain, Bin : in std_

27、logic_vector(1 down to 0);Cout : out std_logic_vector(1 dow nto 0); End mymu x;Architecture one of mymux isBeginProcess (sel, ain, bin)BeginIf sel =00 ” then cout = ain and bin;Elsif sel =01 ” then cout = ain xor bin;Elsif sel =“10 ” then cout = not ain;Else cout cout cout cout cout = not bin; End c

28、ase;End process;End two;Architecture three of mymux isBeginCout = ain and bin when sel =00 ” elseAin xor bin when sel =01 ” elseNot ain when sel =10 ” else not bin;End three;设计一个7段数码显示译码器,并逐行进行解释LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ;ENTITY DECL7S ISPORT ( A : IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED

29、7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ) ; END ;ARCHITECTURE one OF DECL7S IS BEGINPROCESS( A )BEGINCASE A ISLED7S = 0111111LED7S = 0000110LED7S = 1011011LED7S = 1001111LED7S = 1100110LED7S = 1101101LED7S = 1111101LED7S = 0000111LED7S = 1111111LED7S WHEN 0001 =WHEN 0010 =WHEN 0011 =WHEN 0100 =WHEN 01

30、01 =WHEN 0110 =WHEN 0111 =WHEN 1000 =WHEN 1001 =WHEN 1010 = LED7S WHEN 1100 =WHEN 1101 =WHEN 1110 =WHEN 1111 =LED7S = 1111100LED7S = 0111001LED7S = 1011110LED7S = 1111001LED7S NULL ;END CASE ;END PROCESS ;END ;关于数据选择器饿设计1、4选1多路选择器的 IF 语句描述 library ieee;use ieee.std_logic_1164.all; entity multiplexer

31、s_1 is port (a, b, c, d : in std_logic; s : in std_logic_vector (1 downto 0); o : out std_logic);end multiplexers_1;architecture archi of multiplexers_1 is beginprocess (a, b, c, d, s) beginif (s = 00) then o = a;elsif (s = 01) then o = b; elsif (s = 10) then o = c; else o = d; end if;end process; end archi;2、4选1多路选择器的CASE语句描述 library ieee;use ieee.std_logic_1164.all;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1