VHDL试题
VHDL参考试题

一、选择题(共10分,每题2分)1.在一个VHDL设计中Idata是一个信号,数据类型为std_logic_vector,试指出下面赋值语句错误的是__ ___。
A. idata <= “00001111”;B. idata <= b”0000_1111”;C. idata <= X”AB”;D. idata <= B”21”;2.在VHDL语言中,下列对时钟边沿检测描述中,错误的是__ ___。
A. if clk’event and clk = ‘1’ thenB. if falling_edge(clk) thenC. if clk’event and clk = ‘0’ thenD. if clk’stable and not clk = ‘1’ then3.请指出Altera Cyclone系列中的EP1C6Q240C8这个器件是属于_____A. ROMB. CPLDC. FPGAD.GAL4.状态机编码方式中,其中一位热码编码占用触发器较多,但其实现比较适合_____的应用。
A. FPGAB. CPLDC. PALD.GAL5.进程中的信号赋值语句,其信号更新是_______。
a)按顺序完成;b)比变量更快完成;c)在进程的最后完成;d)都不对。
二、EDA名词解释(共10分,每题2分)1.ASIC2.FPGA3.VHDL4.EDA5.SOC三、程序补充题(共10分,每空1分)下面程序是一个10线-4线优先编码器的VHDL描述,试补充完整。
LIBRARY __________ ;USE IEEE._____________________.ALL;ENTITY coder ISPORT ( din : IN STD_LOGIC_VECTOR(____________________);output : __________ STD_LOGIC_VECTOR(3 DOWNTO 0) );END coder;ARCHITECTURE behav OF _____________ ISSIGNAL SIN : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS (___________)BEGINIF (din(9)='0') THEN SIN <= "1001" ;__________________ THEN SIN <= "1000" ;ELSIF (din(7)='0') THEN SIN <= "0111" ;ELSIF (din(6)='0') THEN SIN <= "0110" ;ELSIF (din(5)='0') THEN SIN <= "0101" ;ELSIF (din(4)='0') THEN SIN <= "0100" ;ELSIF (din(3)='0') THEN SIN <= "0011" ;ELSIF (din(2)='0') THEN SIN <= "0010" ;ELSIF (din(1)='0') THEN SIN <= "0001" ;ELSE _______________ ;________________END PROCESS ;_______________;END behav;四、程序改错题(共15分)仔细阅读下列程序,改正程序中的错误并说明该程序的功能。
VHDL程序练习题(含答案)

VHDL程序填空题(一) 在下面横线上填上合适的VHDL关键词,完成2选1多路选择器的设计。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;1 MUX21 ISPORT(SEL:IN STD_LOGIC;A,B:IN STD_LOGIC;Q: OUT STD_LOGIC );END MUX21;2 BHV OF MUX21 ISBEGINQ<=A WHEN SEL=’1’ EL SE B;END BHV;(二) 在下面横线上填上合适的语句,完成BCD-7段LED显示译码器的设计。
LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD_7SEG ISPORT( 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 ISBEGINPROCESS(BCD_LED)3IF BCD_LED="0000" THEN LEDSEG<="0111111";ELSIF BCD_LED="0001" THEN LEDSEG<="0000110";ELSIF BCD_LED="0010" THEN LEDSEG<= 4 ;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" THENLEDSEG<="1101111";ELSE LEDSEG<= 5 ;END IF;END PROCESS;END BEHAVIOR;(三) 在下面横线上填上合适的语句,完成数据选择器的设计。
EDA技术(VHDL)试卷及答案

一、单项选择题(30分) 1.以下描述错误的是 CA .QuartusII 是Altera 提供的FPGA/CPLD 集成开发环境B .Altera 是世界上最大的可编程逻辑器件供应商之一C .MAX+plusII 是Altera 前一代FPGA/CPLD 集成开发环境QuartusII 的更新换代新产品D .QuartusII 完全支持VHDL 、Verilog 的设计流程2.以下工具中属于FPGA/CPLD 开发工具中的专用综合器的是 BA .ModelSimB .Leonardo SpectrumC .Active HDLD .QuartusII 3.以下器件中属于Xilinx 公司生产的是 CA .ispLSI 系列器件B .MAX 系列器件C .XC9500系列器件D .FLEX 系列器件 4.以下关于信号和变量的描述中错误的是 BA .信号是描述硬件系统的基本数据对象,它的性质类似于连接线B .信号的定义范围是结构体、进程 1’0’1’图为某一状态机对应的状态图,试用VHDL 语言描述这一状态机。
(18分)S0S1S3S21/10011/11110/11000/0000其它/0000其它/1111其它/1100其它/1001参考程序如下: LIBRARY IEEE; USE FSM2 ISPORT ( clk,reset,in1 : IN STD_LOGIC;out1 : OUT STD_LOGIC_VECTOR(3 downto 0)); END;ARCHITECTURE bhv OF FSM2 ISTYPE state_type IS (s0, s1, s2, s3);SIGNALcurrent_ state,next_state: state_type; BEGINP1:PROCESS(clk,reset) BEGINIF reset = ‘1’ THEN current_state <= s0; ELSIF clk='1' AND clk'EVENT THENcurrent_state <=next_state; END IF;END PROCESS;P2:PROCESS(current_state) BEGINcase current_state isWHEN s0 => IF in1=‘1’THEN next_state<=s1; ELSE next_state<=s0; END IF;WHEN s1 => IF in1='0'THEN next_state<=S2;ELSE next_state<=s1; END IF;WHEN s2 => IF in1='1'THEN next_state<=S3;ELSE next_state<=s2; END IF;WHEN s3 => IF in1='0'THEN next_state<=S0;ELSE next_state<=s3; END IF; end case; END PROCESS;p3:PROCESS(current_state) BEGINcase current_state isWHEN s0 => IF in1=‘1’THEN out1<=“1001”; ELSE out1<="0000"; END IF; WHEN s1 => IF in1='0'THEN out1<="1100"; ELSE out1<="1001"; END IF; WHEN s2 => IF in1='1'THEN out1<="1111"; ELSE out1<="1001"; END IF; WHEN s3 => IF in1='1'THEN out1<="0000"; ELSE out1<="1111"; END IF; end case; END PROCESS; end bhv;。
VHDL练习题

12. VHDL语言中变量定义的位置是 D 。
A. 实体中中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置13. VHDL语言中信号定义的位置是 D 。
A. 实体中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置14. 变量是局部量可以写在 B 。
A. 实体中B. 进程中C. 线粒体D. 种子体中15. 变量和信号的描述正确的是 A 。
A. 变量赋值号是:=B. 信号赋值号是:=C. 变量赋值号是<=D. 二者没有区别16. 变量和信号的描述正确的是 B 。
A. 变量可以带出进程B. 信号可以带出进程C. 信号不能带出进程D. 二者没有区别17. 关于VHDL数据类型,正确的是 D 。
A. 数据类型不同不能进行运算B. 数据类型相同才能进行运算C. 数据类型相同或相符就可以运算D. 运算与数据类型无关18. 下面数据中属于实数的是 A 。
A. B. 3 C. ‘1’ D. “11011”19. 下面数据中属于位矢量的是 D 。
A. B. 3 C. ‘1’ D. “11011”20. 关于VHDL数据类型,正确的是。
A. 用户不能定义子类型B. 用户可以定义子类型C. 用户可以定义任何类型的数据D. 前面三个答案都是错误的21. 可以不必声明而直接引用的数据类型是 C 。
A. STD_LOGICB. STD_LOGIC_VECTORC. BITD. 前面三个答案都是错误的22. STD_LOGIG_1164中定义的高阻是字符 D 。
A. XB. xC. zD. Z23. STD_LOGIG_1164中字符H定义的是 A 。
A. 弱信号1B. 弱信号0C. 没有这个定义D. 初始值24. 使用STD_LOGIG_1164使用的数据类型时 B 。
A.可以直接调用B.必须在库和包集合中声明C.必须在实体中声明D. 必须在结构体中声明25. 关于转化函数正确的说法是。
vhdl期末考试题库及答案

vhdl期末考试题库及答案VHDL期末考试题库及答案一、选择题1. VHDL是一种用于电子设计自动化的硬件描述语言,主要用于描述什么?A. 软件程序B. 硬件电路C. 数据库D. 操作系统答案:B2. 在VHDL中,哪个关键字用于定义一个进程?A. processB. procedureC. functionD. package答案:A3. 下列哪个不是VHDL的预定义数据类型?A. bitB. integerC. realD. boolean答案:A4. VHDL中,哪个属性用于获取信号的稳定值?A. 'stable'B. 'event'C. 'quiet'D. 'transaction'答案:A5. 在VHDL中,以下哪个是合法的信号赋值语句?A. signal a : integer := 5;B. signal a : integer is 5;C. signal a <= 5;D. signal a : integer = 5;答案:C二、简答题1. 简述VHDL中的并发语句和顺序语句的区别。
答案:并发语句用于描述多个独立操作同时发生,如进程和并行块;顺序语句描述操作的顺序执行,如if语句、case语句等。
2. 解释VHDL中的时序仿真和功能仿真的区别。
答案:时序仿真考虑了信号的时序特性,如延迟和时间,用于验证设计在实际工作条件下的行为;功能仿真则不关心时序,只验证设计的功能正确性。
三、编程题1. 编写一个VHDL程序,实现一个简单的二进制加法器。
答案:```vhdlentity adder isport(A, B : in bit_vector(1 downto 0);Sum : out bit_vector(1 downto 0);Carry : out bit);end entity adder;architecture behavior of adder isbeginprocess(A, B)begincase A iswhen "00" => Sum <= "00"; Carry <= '0';when "01" => Sum <= "01"; Carry <= '0';when "10" => Sum <= "01"; Carry <= '0';when "11" => Sum <= "10"; Carry <= '1';end case;end process;end architecture behavior;```四、论述题1. 论述在VHDL中使用测试平台(testbench)的重要性。
vhdl考试题库

vhdl考试题库题目一计时秒表难度系数:1.2一、计时秒表的功能要求计时秒表是我们经常见的,在体育运动上也应用非常广的一种工具。
譬如我们在进行50米、100米短跑运动中,需要一个计时非常经准的秒表来测速。
在这里,我们需设计一个计时秒表,具有以下功能:①有启/停开关,用于开始/结束计时操作;②用四个七段数码管显示计时数;③秒表计时长度为59分59秒,超过计时长度,有溢出则报警;④设置复位开关,在任何情况下,只要按下复位开关,秒表都要无条件地进行复位清0操作。
二、发挥部分①具有暂停的功能;②秒表的计时长度可手动设置。
三、评分标准组成部分项目满分基本要求设计与总结报告:方案比较、设计分析、有关设计文件等50分实际调试完成情况50分发挥部分完成①10分完成②10分题目二彩灯控制器难度系数:1.1 一、彩灯控制器的功能基本要求要求设计一个8路彩灯控制器,能控制8路彩灯按照两种节拍、三种花型循环变化。
两种节拍分别为0.25s和0.5s。
三种花型分别是:①8路彩灯从左至右按次序渐亮,全亮后逆次序渐灭。
②从中间到两边对称的渐亮,全亮后仍由中间向两边逐次渐灭。
③8路彩灯分成两半,从左至右顺次渐亮,全亮后则全灭。
用点阵实现下载后的调试.二、发挥部分①在此三种花型循环变化的基础上,再加一种花型,譬如:8路彩灯分成两半,从左至右顺次渐亮,然后从右至左逆次渐灭。
②加一个8路彩灯,与上面的彩灯按照相同的节拍和花型循环变化。
三、评分标准组成部分项目满分基本要求设计与总结报告:方案比较、设计分析、有关设计文件等50分实际调试完成情况50分发挥部分完成①10分完成②10分题目三交通灯控制器难度系数:1.4一、任务书(1)简要说明在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。
其中,红灯(R)亮,表示该条道路禁止通行;黄灯(Y)亮,表示停车;绿灯(G)亮,表示可以通行。
倒计时显示器是用来显示允许通行和禁止通行地时间。
VHDL试卷6套

填空题(20分,每空格1 分)1、一个完整的VHDL语言程序通常包含实体(entity ) , 构造体(architecture ),酉己置 (configuration ),包集合(package)禾和库(library ) 5 各部分。
2、在一个实体的端口方向说明时,输入使用in表示,那么构造体内部不能再使用的输出是用out 表示;双向端口是用in out 表示;构造体内部可再次使用的输出是用buffer表示;3、一个构造体可以使用几个子结构,即相对比较独立的几个模块来构成。
VHDL语言可以有以下3种形式的子结构描述语句:BLOCK 语句结构;PROCESS语句结构和SUBPROGRAMS结构。
4、VHDL的客体,或称数据对象包括了常数、变量variable 和信号signal 。
5、请列出三个VHDL语言的数据类型,如实数、位等。
位矢量,字符,布尔量。
6、设D0 为'0', D1 为'0', D2为'1', D3为'0', D0 & D1 & D2 & D3 的运算结果是“ 0010”,D3 & D2 & D1 & D0 的运算结果是“ 0100 ”。
7、构造体的描述方式包括三种,分别是寄存器传输(RTL)描述方法或称数据流;构造体的结构描述方式和构造体的行为描述方式。
1、传统的系统硬件设计方法是采用自上而下(top down )的设计方法,利用硬件描述语言(HDL的硬件电路设计方法采用自下而上 (bottom up)的设计方法。
(X )传统的系统硬件设计方法是采用自下而上(bottom up)的设计方法,利用硬件描述语言(HDL 的硬件电路设计方法采用自上而下(top down )的设计方法2、VHDL可以采用层次化的设计,一个高层的结构体中可以调用低层的实体(V )3、一个VHAL程序中仅能使用一个进程(process )语句。
vhdl 试题

一、填空题1. 在VHDL中最常用的IEEE标准库是std_logic_1164数据包。
VHDL是一种硬件描述语言。
3. 可编程控制器所使用的软件主要是Alter公司的Quartus_软件进行开发设计和仿真。
4. 可编程控制器是针对PLD的可编程使用HDL语言,其中PLD的意思是_ 可编程逻辑器件_,HDL的意思是____硬件描述语言___________。
VHDL中,下降沿的描述语言是___clk'event and clk='0'(下降沿)clk'event and clk='1'(上升沿)____________。
6. 实体的关键字是___Entity________,变量的关键字是___Port____________。
PLA是同时对__与____和“或”阵列,而PAL只对__与_______进行变成。
8. 两位逻辑变量的取值有四个,分别是___“00”“01”“10”“11”__________________(要求用程序中的书写格式表示)。
9. 在可VHDL语言中,‘Z’表示______高阻抗_______状态,‘-’表示______忽略________________。
10. 调用标准程序包的调用语句是____use ieee.std_logic_1164.all_____________________________________。
process语句中必须加上敏感信号_________列表,以__End process;____________结束。
12. 信号的赋值用___<=______,变量的赋值用____:=______。
VHDL程序的基本结构由库、程序包、__实体________、__结构体______和配置等部分组成。
14. 可编程控制器是针对PLD的可编程使用HDL语言,其中PLD的意思是__可编程逻辑器件______,HDL的意思是____硬件描述语言_________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.结构体的三种描述方式:-行为描述-数据流描述-结构化描述2.一般将一个完整的VHDL程序称为设计实体3. VHDL设计实体的基本结构由库、程序包、实体、结构体和配置组成。
4.VHDL不区分大小写。
5.常用的库:library ieee ,程序包:use ieee.std_logic_1164.all6.VHDL程序的基本结构至少应包括实体、结构体和对库的引用声明。
7.在VHDL程序中使用的文字、数据对象、数据类型都需要事先声明。
8. VHDL的实体由实体声明和结构体组成。
VHDL的实体声明部分指定了设计单元的输入出端口或引脚,它是设计实体对外的一个通信界面,是外界可以看到的部分。
VHDL的结构体用来描述实体的逻辑结构和逻辑功能,它由VHDL语句构成,是外界看不到的部分。
9.端口方向模式:IN(输入)、OUT(输出<构造体内部不能再使用>)、INOUT(双向)、BUFFER (缓冲<构造体内部可再使用>)10.VHDL的标识符名必须以(字母开头),后跟若干字母、数字或单个下划线构成,但最后不能为(下划线),不能连续两个下划线相连。
11. 为信号赋初值的符号是(:=);程序中,为变量赋值的符号是(:=),为信号赋值的符号是(<=)12. VHDL的数据类型包括标量类型、复合类型、存储类型和文件类型请列出3个VHDL语言的数据类型,如实数、位等。
位矢量,字符,布尔量,整数,字符串,时间,错误等级,自然数,正整数。
13. VHDL的操作符包括逻辑、算术、关系和并置四类14.可编程逻辑器件:CPLD、FPGA、GAL、PLA、PAL(早期)CPLD(复杂可编程逻辑器件):基于乘机项技术构造的可编程逻辑器件,不需要配置外部程序寄存芯片FPGA(现场可编程门阵列):基于查找表技术构造的可编程逻辑器件,需要配置外部程序寄存芯片15.VHDL客体或数据对象:常量、信号、变量(可被多次赋值)、文件。
16.一个VHDL程序中可以使用多个进程process语句,一个设计实体可以拥有多个结构体。
17.VHDL的预算操作包括:逻辑运算符、关系运算符、乘法运算符(优先级<<<)逻辑运算符、关系运算符、加减并置运算符、正负运算符、乘法运算符、18.VHDL中std_logic类型:‘Z’表示高阻,‘X’表示不确定19.将一个信width定义为一个4位标准逻辑向量为:signal width :std_logic_vector(3 downto 0) 定义一个变量a,数据类型为4位位向量:variable a :bit_vector(3 downto 0)20.赋值语句是并行执行,IF语句是串行执行。
21.标准逻辑是一个具有九值逻辑的数据类型22.表示‘0’‘1’两值逻辑的数据类型是bit,表示‘0’‘1’‘Z’等九值逻辑的数据类型是std_logic ,表示空操作的数据类型是NULL23.<=是小于等于关系运算符,又是赋值运算操作符/=是不相等操作符,功能是在条件判断是判断操作符两端不相等。
NOT是逻辑运算符,表示取反,在所有操作符中优先级最高。
30.并置运算符 & 的功能是把多个位或位向量合并为一个位向量。
24.位类型的初始化采用字符,位矢量用字符串25.进程必须位于结构体内部,变量必须定义于进程内部26.进程执行的机制是敏感信号发生跳变27. VHDL语言可以有以下3种形式的子结构描述语句: BLOCK语句结构; PROCESS语句结构和SUBPROGRAMS结构。
29整型对象的范围约束通常用 range 关键词,位矢量用 downto/to 关键词。
31. 判断CLK信号上升沿到达的语句是 if clk’event and clk = ‘1’ then .32. IF语句各条件间具有不同的优先级。
33、任何时序电路都以时钟为驱动信号,时序电路只是在时钟信号的边沿到来时,其状态才发生改变。
34、 Moore状态机输出只依赖于器件的当前状态,与输入信号无关。
35.、IF语句根据指定的条件来确定语句执行顺序,共有3种类型:用于门闩控制的IF语句、用于二选一控制的IF语句、用于多选择控制的IF语句。
简答题:1、简述信号与变量的区别。
a.信号延时赋值,变量立即赋值b.信号的代入使用<=,变量的代入使用:=;c.信号在实际的硬件当中有对应的连线,变量没有2、简述可编程逻辑器件的优点。
a.集成度高,可以替代多至几千块通用IC芯片.极大减小电路的面积,降低功耗,提高可靠性b.具有完善先进的开发工具.提供语言、图形等设计方法,十分灵活.通过仿真工具来验证设计的正确性c.可以反复地擦除、编程,方便设计的修改和升级d.灵活地定义管脚功能,减轻设计工作量,缩短系统开发时间f.保密性好3、试比较moore状态机与mealy状态机的异同。
Moore输出只是状态机当前状态的函数. Mealy输出为有限状态机当前值和输入值的函数3、简述VHDL语言与计算机语言的差别。
a.运行的基础。
计算机语言是在CPU+RAM构建的平台上运行。
VHDL设计的结果是由具体的逻辑、触发器组成的数字电路b.执行方式.计算机语言基本上以串行的方式执行.VHDL在总体上是以并行方式工作c.验证方式.计算机语言主要关注于变量值的变化.VHDL要实现严格的时序逻辑关系4、简述实体端口的模式输入(Input):clk、reset、en、addr等输出(Output):输出信号,不能内部引用双向(Inout):可代替所有其他模式,用于设计双向总线缓冲(Buffer):与Output类似,但允许该管脚名作为一些逻辑的输入信号5、进程语句是设计人员描述结构体时使用最为频繁的语句,简述其特点。
a.它可以与其它进程并发执行,并可存取结构体或实体中所定义的信号;b.进程结构中的所有语句都是按顺序执行的c.为了启动进程,在进程结构中必须包含一个显式的敏感信号量表或者包含一个wait语句;d.进程之间的通信是通过信号量的传递来实现的6、简述如何利用计数器精确控制时序。
a.只要知道晶振频率f,即可知道周期T=1/f;b.使用一个计数器,可以通过计数值n,精确知道当计数值为n时消耗的时间t=nT;上例中以n为控制条件,可以控制其它信号在某时刻变高,某时刻变低,从而产生精确时序编程题:1.3-8译码器0LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY decoder_3_to_8 ISPORT (a,b,c,g1,g2a,g2b:IN STD_LOGIC;y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END decoder_3_to_8;ARCHITECTURE rtl OF decoder_3_to_8 ISSIGNAL indata:STD_LOGIC_VECTOR (2 DOWNTO 0);BEGINindata <= c & b & a;PROCESS (indata,g1,g2a,g2b)BEGINIF (g1 = '1' AND g2a = '0' AND g2b = '0' ) THENCASE indata ISWHEN "000"=> y <= "11111110";WHEN "001" => y <= "11111101";WHEN "010" => y <= "11111011";WHEN "011" => y <= "11110111";WHEN "100" => y <= "11101111";WHEN "101" => y <= "11011111";WHEN "110" => y <= "10111111";WHEN "111" => y <= "01111111";WHEN OTHERS=> y <= "XXXXXXXX";END CASE;ELSEy <= "11111111";END IF;END PROCESS;END rtl;3、填写完成一个3-8线译码器的真值表(5分),并写出其VHDL程序(10分)。
3-8译码器的真值表en a2a1a0 y1 000 000000011 001 000000101 010 ********1 011 000010001 100 000100001 101 001000001 110 010000001 111 100000000 xxx 00000000entity tri_eight isport(a: in std_logic_vector (2 downto 0);en: in std_logic;y: out std_logic_vector (7 downto 0));end tri_eight; (2) architecture a of tri_eight issignal sel: std_logic_vector (3 downto 0); (4) beginsel(0) <= a(0); sel(1) <= a(1); sel(2) <= a(2); sel(3) <= en; (5) with sel selecty <= "00000001" when "1000","00000010" when "1001","00000100" when "1010","00001000" when "1011","00010000" when "1100","00100000" when "1101","01000000" when "1110","10000000" when "1111","00000000" when others; (9) end a; (10) 3、根据下表填写完成一个3-8线译码器的VHDL程序(16分)。