VHDL试题集-徐嵩-吉林大学.docx
?一、填空题1.在 VHDL中最常用的IEEE 标准库是std_logic_1164数据包。VHDL 是一种硬件描述语言。3.可编程控制器所使用的软件主要是Alter 公司的Quartus _软件进行开发设计和仿真。4. 可编程控制器是针对 PLD 的可编程使用 HDL 语言,其中 PLD 的意思是 _ 可编程逻辑器件 _,HDL 的意思是 _硬件描述语言 _。VHDL 中,下降沿的描述语言是 _clkevent and clk=0(下降沿) clkevent and clk=1 (上升沿) _ 。6. 实体的关键字是 _Entity_ _,变量的关键字是 _Port_ 。PLA 是同时对 _与 _和“或”阵列,而PAL 只对 _与 _进行变成。8.两位逻辑变量的取值有四个,分别是_“ 00”“ 01 ”“ 10”“ 11 ”_ (要求用程序中的书写格式表示)。9. 在可 VHDL 语言中, Z 表示 _高阻抗 _状态, -表示 _忽略_ 。10.调用标准程序包的调用语句是_useieee.std_logic_1164.all_ 。process 语句中必须加上敏感信号 _列表,以 _End process;_ 结束。12. 信号的赋值用 _<=_ _,变量的赋值用 _:=_。VHDL 程序的基本结构由库、程序包、 _实体 _、 _结构体 _和配置等部分组成。14. 可编程控制器是针对 PLD 的可编程使用 HDL 语言,其中 PLD 的意思是 _可编程逻辑器件 _,HDL 的意思是 _硬件描述语言 _。15.可编程逻辑器件在编程是必须调用ieee 库, ieee 是 _Institute of ElectricalandElectronics Engineers (IEEE) 电气和电子工程师协会_的简称。16.可编程逻辑器件的程序主要包括调用程序包、_实体 _、 _结构体 _和配置四个部分。17.结 构 体 的 关 键 字 是 _architecture_ 信 号 的 关 键 字 是_signal_ 。PROM 只对 _或 _阵列编程, PAL 只对 _与 _阵列编程。19.调用标准程序包的调用语句是_useieee._std_logic_1164.all;_ 。20. 布尔变量的两个结果是 _ture_和 _false_。21. 在 VHDL 中,除了 0和 1外,还用 _ L _和 _ H _表示同样的状态。22. 上升沿的 VHDL 描述语言是 _clkevent and clk= 1 _,下降沿描述语言为 _clkevent and clk=0_ _。23. 条件判断语句必须放在 _过程 _中,而不能独立使用。process 是一个 _ 过程,他还暗含一个wait 语句。25. 变量有 _ 和 _之分。二、选择1. VHDL 常用的库是( A )标准库。A 、 IEEE ;B 、STD ;C、 WORK ;D 、 PACKAGE2.在 VHDL 的端口声明语句中,用(A)声明端口为输入方向。A 、 IN ;B 、OUT ;C、INOUT ;D、 BUFFER3. 在 VHDL 的端口声明语句中,用( C )声明端口为双向方向。A 、 IN ;B 、OUT ;C、INOUT ;D、 BUFFER4. 在 VHDL 中,为目标变量赋值的符号是(C )。A 、 =: ;B 、=;C、 :=;D、 <=5. 下列(不 )可作为信号的数据类型是。A 、 bitB、 std_logicC、 integerD、 max6下列可用作项目名称的是(C)。A. and1B.whenC.entityD.banjiaqi7.下列语句正确的是(D)。A. signala;b;c: std_logic;B. Variable ab : integer;C. Port( a : in bit;b: out bit;)D.Useieee.std_logic_1164.all;8. 下列语句不正确的是(A)。A.ifa=0theny<=b; end if;B. Q<=DwhenCP event andCP= 1;C.Q<=d;Y<= aandb;D. Library ieee;9 下列哪些关键字在相应的程序段不可缺少。( A )A EntityB. portC. andD. process三写出实现下列操作的VHDL 程序语句(只写出该操作的语句,每小题4 分,共 20分)。当时钟 cp 的上升沿到来时将信号D 赋给输出Q; 1cp“event and cp=1函数把低电平赋给信号Data;Data<= L把数字 0 赋给变量B。 B:= 0四、判断下列程序段是否有错,如果有,指出错误并写出改正后的程序1. Architecture DDD of DDD isSignalA, En: std_logic ;Process (A , En);VariableB : std_logic ;BeginIfEn = 1thenB <= A ;Endif ;End process;ArchitectureoneofoneisEN= 1VariableBegina ,b , c: std_logic ;c<= a + b ;End one;Library ieee ;Use ieee.std_logic_1164.all ;Entitymux21isPort ( a, b : in std_logic ;Sel : in std_logic ;C : out std_logic ;);End mox21 ;Architectureoneofmux21isBeginIfsel= 0thenC:= a ;ElseC:= b ;End if ;End;五, 编写程序,实现下列逻辑功能。(要求只写完整程序)1. 编写实现八选一数据选择器的VHDL 程序,项目名称用 mux81;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux81 ISPORT (A,B,C,D,E,F,G ,H:IN STD_LOGIC;S:in STD_LOGIC_vector(2 downto 0);Y: out STD_LOGIC);end mux81;ARCHITECTUREmuxOFmux81ISbeginY<= Awhen S="000" ELSEBwhen S="001" ELSECwhen S="010" ELSEDwhen S="011" ELSEEwhen S="100" ELSEFwhen S="101" ELSEGwhen S="110" ELSEH;end mux;八选一须具选择器:用CASE 语句。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmux_8_1ISPORT (A,B,C,D,E,F,G ,H,En:IN STD_LOGIC;S:in STD_LOGIC_vector(2 downto 0);Y: out STD_LOGIC);endmux_8_1;ARCHITECTUREmuxOFmux_8_1ISbeginprocess( S,A,B,C,D,E,F,G,H,En)beginif En=0 thencaseSiswhen "000" => Y<=A;when "001" => Y<=B;when "010" => Y<=C;when "011" => Y<=D;when "100" => Y<=E;when "101" => Y<=F;when "110" => Y<=G;when "111" => Y<=H;end case;end if;end process;endmux;2.编写实现三 -八译码器的VHDL 程序;1。用 CASE 语句LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITYLS138ISPORT ( S:in STD_LOGIC_vector(2 downto 0);Y: out STD_LOGIC_vector(7 downto 0);end LS138;ARCHITECTURE mux_behave OF LS138 ISbeginPROCESS(S)ISBEGINCASESISwhen "000"=>Y<=(0=>0,OTHERS=>1);when "001"=>Y<=(1=>0,OTHERS=>1);when "010"=>Y<=(2=>0,OTHERS=>1);when "011"=>Y<=(3=>0,OTHERS=>1);when "100"=>Y<=(4=>0,OTHERS=>1);when "101"=>Y<=(5=>0,OTHERS=>1);when "110"=>Y<=(6=>0,OTHERS=>1);when "111"=>Y<=(7=>0,OTHERS=>1);END CASE;END PROCESS;endmux_behave;3.编写实现全加器的输出用 Sum 和 Co;全加器 :VHDL程序,项目名称用fulladder,输入用Ain ,Bin ,Cin,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYfull_adderISPORT (Ain,Bin ,Cin :IN STD_LOGIC;Sum,Co: out STD_LOGIC);end full_adder;ARCHITECTURErtlOFfull_adderBEGINSum<=AinXorBinxorCin ;Co<= (AinandBin) or ( AinXorEND rtl;ISBin ) andCin;4.编写实现半加器的VHDL 程序。半加器 1LIBRARYUSEENTITYIEEE;IEEE.STD_LOGIC_1164.ALL;halfadderISPORT (A,B:IN STD_LOGIC;Co: out STD_LOGIC;S: out STD_LOGIC);endhalfadder;ARCHITECTURErtlOFBEGINS <=A XOR B;Co <=A AND B;END rtl;halfadderIS