VHDL复习题
- 格式:pdf
- 大小:1.60 MB
- 文档页数:13
VHDL 改错题VHDL复习一.改错题1.已知sel为STD_LOGIC_VECTOR(1 DOWNTO 0)类型的信号,而a、b、c、d、q均为STD_LOGIC类型的信号,请判断下面给出的CASE语句程序片段:●CASE sel IS●WHEN“00”=>q<=a;●WHEN“01”=>q<=b;●WHEN“10”=>q<=c;●WHEN“11”=>q<=d;●END CASE;●答案:CASE语句缺“WHEN OTHERS”语句。
2.已知data_in1, data_in2为STD_LOGIC_VECTOR(15 DOWNTO 0) 类型的输入端口,data_out为STD_LOGIC_VECTOR(15 DOWNTO 0)类型的输出端口,add_sub为STD_LOGIC 类型的输入端口,请判断下面给出的程序片段:●LIBRARY IEEE;●USE IEEE.STD_LOGIC_1164.ALL;●ENTITY add IS●PORT(data_in1, data_in2:IN INTEGER;●data_out:OUT INTEGER);●END add;●ARCHTECTURE add_arch OF add IS●CONSTANT a:INTEGER<=2;●BEGIN●data_out<=( data_in1+ data_in2) * a;●END addsub_arch;答案:常量声明时赋初值的“<=”符号应改用“:=”符号。
3.已知Q为STD_LOGIC类型的输出端口,请判断下面的程序片段:●ARCHITECTURE test_arch OF test IS●BEGIN●SIGNAL B:STD_LOGIC;●Q<= B;END test_arch答案:信号SIGNAL的声明语句应该放在BEGIN语句之前。
一、选择题( A )1.一个项目的输入输出端口是定义在:A. 实体中B. 结构体中C. 任何位置D. 进程体( B)2.描述项目具有逻辑功能的是:A. 实体B. 结构体C. 配置D. 进程( A )3.关键字ARCHITECTURE定义的是:A. 结构体B. 进程C. 实体D. 配置( D )4.VHDL语言中变量定义的位置是:A. 实体中中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置( D )5.VHDL语言中信号定义的位置是:A. 实体中任何位置B. 实体中特定位置C. 结构体中任何位置D. 结构体中特定位置( B )6.变量是局部量可以写在:A. 实体中B. 进程中C. 线粒体D. 种子体中( A )7.变量和信号的描述正确的是:A. 变量赋值号是:=B. 信号赋值号是:=C. 变量赋值号是<=D. 二者没有区别( B )8. 变量和信号的描述正确的是:A. 变量可以带出进程B. 信号可以带出进程C. 信号不能带出进程D. 二者没有区别( )9.对于信号和变量的说法,哪一个是不正确的:A. 信号用于作为进程中局部数据存储单元B. 变量的赋值是立即完成的C. 信号在整个结构体内的任何地方都能适用D. 变量和信号的赋值符号不一样( A )10.下列关于变量的说法正确的是:A.变量是一个局部量,它只能在进程和子程序中使用B.B. 变量的赋值不是立即发生的,它需要有一个δ延时C. 在进程的敏感信号表中,既可以使用信号,也可以使用变量D. 变量赋值的一般表达式为:目标变量名<= 表达式( C )11.可以不必声明而直接引用的数据类型是:A. STD_LOGICB. STD_LOGIC_VECTORC. BITD. 前面三个答案都是错误的( C )12.STD_LOGIG_1164中定义高阻的字符是:A. XB. xC. zD. Z( A )13.STD_LOGIG_1164中字符H定义的是:A. 弱信号1B. 弱信号0C. 没有这个定义D. 初始值( B )14.使用STD_LOGIG_1164中的数据类型时:A. 可以直接调用B. 必须在库和包集合中声明C. 必须在实体中声明D. 必须在结构体中声明( B )15.关于转化函数说法正确的是:A. 任何数据类型都可以通过转化函数相互转化B. 只有特定类型的数据类型可以转化C. 任何数据类型都不能转化D. 前面说法都是错误的( C )16.VHDL运算符优先级说法正确的是:A. 逻辑运算的优先级最高B. 关系运算的优先级最高C. 逻辑运算的优先级最低D. 关系运算的优先级最低( D )17.VHDL运算符优先级说法正确的是:A. NOT的优先级最高B. AND和NOT属于同一个优先级C. NOT的优先级最低D. 前面的说法都是错误的( D )18.VHDL运算符优先级说法正确的是:A. 括号不能改变优先级B. 不能使用括号C. 括号的优先级最低D. 括号可以改变优先级( B )19.如果a=1,b=0,则逻辑表达式(a AND b)OR(NOT b AND a)的值是:A. 0B. 1C. 2D. 不确定( B )20.正确给变量X赋值的语句是:A. X<=A+B;B. X:=A+b;C. X=A+B;D. 前面的都不正确( )21.VHDL文本编辑中编译时出现如下的报错信息,其错误原因是:Error: VHDL syntax error: choice value length must match selector expression value lengthA. 表达式宽度不匹配B. 错将设计文件存入了根目录,并将其设定成工程C. 设计文件的文件名与实体名不一致D. 程序中缺少关键词( D )22.在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’ then( D )23.在VHDL中,可以用以下哪条语句表示检测clock下降沿:A. clock’ eventB. clock’ event and clock=’1’(上升沿)C. clock=’0’D. clock’ event and clock=’0’( D )24.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:A. IEEE库B. VITAL库C. STD库D. WORK工作库( A )25.VHDL常用的库是:A. IEEEB. STDC. WORKD. PACKAGE( B )26.下列语句中,不属于并行语句的是:A. 进程语句B. CASE语句C. 元件例化语句D. WHEN…ELSE…语句( D )27.下面哪一个可以用作VHDL中的合法的实体名:A. ORB. V ARIABLEC. SIGNALD. OUT1( B )28.下列关于CASE语句的说法不正确的是:A. 条件句中的选择值或标识符所代表的值必须在表达式的取值范围内B. CASE语句中必须要有WHEN OTHERS=>NULLC. CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现D. CASE语句执行必须选中,且只能选中所列条件语句中的一条( D )29.VHDL中,为目标变量赋值符号是:A. =:B. =C. <=D. :=( B )30.VHDL语言是一种结构化设计语言,一个设计实体(电路模块)包括实体与结构体两部分,结构体描述:A. 器件外部特性B. 器件的内部功能C. 器件的综合约束D. 器件外部特性与内部功能。
百度题库VHDL复习资料1.一个完整的VHDL程序,一般有哪几部分组成,它们分别描述的是什么?答:、VHDL程序的基本结构由(库)、(程序包)、(实体)、(结构体)和(配置)组成。
2.IF THEN语句、case when语句、with select语句各是什么类型语句,顺序语句必须放在什么地方?答:IF THEN语句与case when语句是顺序语句,with select语句是并行语句,顺序语句必须放在进程中。
3.结构体中常用的功能描述方式有几种?答:1)行为描述方式 2)数据流描述方式 3)结构化描述方式4.QuartusⅡ是CPLD/FPGA集成开发软件,基于QuartusⅡ软件进行设计开发,包括几个步骤,分别是什么?答:步骤分别是:1)新建项目 2)设计输入 3)分析综合及设计编译4)时序仿真 5)引脚分配及下载配置5.1987VHDL标准中规定标识符由什么组成,有什么具体要求?答:标识符可以由英文字母,数字,下划线“-”等组成选择填空1.在VHDL语言中,下列对时钟边沿检测描述中,错误的是( D )。
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’ then2.一个项目的输入输出端口是定义在( A )。
A.实体中B.结构体中C.任何位置D.进程体3. 下列语句中,不属于并行语句的是( B )。
A.进程语句B.CASE语句C.元件例化语句D.WHEN…ELSE…语句4.描述项目具有逻辑功能的是( B )。
A.实体B.结构体C.配置D.进程5.关键字ARCHITECTURE定义的是( A)。
A.结构体B.进程C.实体D.配置6.关键字ARCHITECTURE定义的是( A )。
A.结构体B.进程C.实体D.配置7.QUARTESII中编译VHDL源程序时要求( A )。
VHDL 复习一.问答题一.问答题1信号赋值语句在什么情况下作为并行语句?在什么情况下作顺序语句?信号赋值和变量赋值符号分别是什么?两种赋值符号有什么区别?赋值符号分别是什么?两种赋值符号有什么区别?l 信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。
信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。
语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。
l 信号赋值符号为“<=”变量赋值用变量赋值用““:=”。
信号赋值符号用于信号赋值动作,信号赋值符号用于信号赋值动作,不立不立即生效。
变量,赋值符号用于变量赋值动作,立即生效。
即生效。
变量,赋值符号用于变量赋值动作,立即生效。
2进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?进程的敏感信号表指的是什么?简述敏感信号表在进程中的作用?l 进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。
当敏感信号表中的任一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。
件发生,进程再次被激活,如此循环往复。
3什么是库、程序包、子程序、过程调用和函数调用?什么是库、程序包、子程序、过程调用和函数调用?l 库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、调用。
子程序由过程和函数组成。
在子程序调用过程中,过程能返回多个变量,多个变量,函数只能返回一个变量。
函数只能返回一个变量。
函数只能返回一个变量。
若子程序调用的是一个过程,若子程序调用的是一个过程,若子程序调用的是一个过程,就称为过程调用,就称为过程调用,若子程序调用的是一个函数,则称为函数调用。
过程调用、函数调用都是子程序调用。
vhdl语言期末考试试题及答案试题:VHDL语言期末考试试题一、选择题(每题2分,共20分)1. VHDL中的实体(entity)定义了什么?A. 模块的内部结构B. 模块的接口C. 模块的测试环境D. 模块的实现方式2. 在VHDL中,下列哪个关键字用于定义信号的初始值?A. initialB. defaultC. signalD. constant3. 下列哪个不是VHDL中的并发语句?A. processB. ifC. forD. assign4. VHDL中,哪个属性可以用来获取信号的上升沿?A. 'eventB. 'last_valueC. 'rising_edgeD. 'next5. 在VHDL中,以下哪个是组合逻辑的描述方式?A. 过程(process)B. 并发信号赋值C. 时序逻辑D. 状态机6. VHDL中,哪个语句用于定义数组?A. arrayB. vectorC. recordD. type7. 下列哪个不是VHDL中的文件类型?A. textB. binaryC. waveD. memory8. VHDL中,哪个关键字用于定义一个过程?A. procedureB. processC. functionD. block9. 在VHDL中,哪个属性可以用来获取信号的当前值?A. 'delayedB. 'stableC. 'eventD. 'value10. VHDL中,哪个关键字用于定义一个函数?A. functionB. procedureC. processD. block二、简答题(每题5分,共20分)1. 简述VHDL中的并发与顺序执行的区别。
2. 解释VHDL中的信号与变量的区别。
3. 描述VHDL中时序逻辑与组合逻辑的区别。
4. 说明VHDL中文件I/O的基本操作。
三、编程题(每题15分,共30分)1. 编写一个VHDL程序,实现一个4位二进制加法器。
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)的重要性。
一、选择题( A )1.一个项目得输入输出端口就是定义在:A、实体中B、结构体中C、任何位置D、进程体( B)2.描述项目具有逻辑功能得就是:A、实体B、结构体C、配置D、进程( A )3.关键字ARCHITECTURE定义得就是:A、结构体B、进程C、实体D、配置( D )4.VHDL语言中变量定义得位置就是:A、实体中中任何位置B、实体中特定位置C、结构体中任何位置D、结构体中特定位置( D )5.VHDL语言中信号定义得位置就是:A、实体中任何位置B、实体中特定位置C、结构体中任何位置D、结构体中特定位置( B )6.变量就是局部量可以写在:A、实体中B、进程中C、线粒体D、种子体中( A )7.变量与信号得描述正确得就是:A、变量赋值号就是:=B、信号赋值号就是:=C、变量赋值号就是<=D、二者没有区别( B )8、变量与信号得描述正确得就是:A、变量可以带出进程B、信号可以带出进程C、信号不能带出进程D、二者没有区别( )9.对于信号与变量得说法,哪一个就是不正确得:A、信号用于作为进程中局部数据存储单元B、变量得赋值就是立即完成得C、信号在整个结构体内得任何地方都能适用D、变量与信号得赋值符号不一样( A )10.下列关于变量得说法正确得就是:A.变量就是一个局部量,它只能在进程与子程序中使用B.B、变量得赋值不就是立即发生得,它需要有一个δ延时C、在进程得敏感信号表中,既可以使用信号,也可以使用变量D、变量赋值得一般表达式为:目标变量名<= 表达式( C )11.可以不必声明而直接引用得数据类型就是:A、STD_LOGICB、STD_LOGIC_VECTORC、BITD、前面三个答案都就是错误得( C )12.STD_LOGIG_1164中定义高阻得字符就是:A、XB、xC、zD、Z( A )13.STD_LOGIG_1164中字符H定义得就是:A、弱信号1B、弱信号0C、没有这个定义D、初始值( B )14.使用STD_LOGIG_1164中得数据类型时:A、可以直接调用B、必须在库与包集合中声明C、必须在实体中声明D、必须在结构体中声明( B )15.关于转化函数说法正确得就是:A、任何数据类型都可以通过转化函数相互转化B、只有特定类型得数据类型可以转化C、任何数据类型都不能转化D、前面说法都就是错误得( C )16.VHDL运算符优先级说法正确得就是:A、逻辑运算得优先级最高B、关系运算得优先级最高C、逻辑运算得优先级最低D、关系运算得优先级最低( D )17.VHDL运算符优先级说法正确得就是:A、NOT得优先级最高B、AND与NOT属于同一个优先级C、NOT得优先级最低D、前面得说法都就是错误得( D )18.VHDL运算符优先级说法正确得就是:A、括号不能改变优先级B、不能使用括号C、括号得优先级最低D、括号可以改变优先级( B )19.如果a=1,b=0,则逻辑表达式(a AND b) OR( NOT b AND a)得值就是:A、0B、1C、2D、不确定( B )20.正确给变量X赋值得语句就是:A、X<=A+B;B、X:=A+b;C、X=A+B;D、前面得都不正确( )21.VHDL文本编辑中编译时出现如下得报错信息,其错误原因就是:Error: VHDL syntax error: choice value length must match selector expression value lengthA、表达式宽度不匹配B、错将设计文件存入了根目录,并将其设定成工程C、设计文件得文件名与实体名不一致D、程序中缺少关键词( D )22.在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’ then ( D )23.在VHDL中,可以用以下哪条语句表示检测clock下降沿:A、clock’ eventB、clock’ event and clock=’1’(上升沿)C、clock=’0’D、clock’ event and clock=’0’( D )24.VHDL语言共支持四种常用库,其中哪种库就是用户得VHDL设计现行工作库:A、IEEE库B、VITAL库C、STD库D、WORK工作库( A )25.VHDL常用得库就是:A、IEEEB、STDC、WORKD、PACKAGE( B )26.下列语句中,不属于并行语句得就是:A、进程语句B、CASE语句C、元件例化语句D、WHEN…ELSE…语句( D )27.下面哪一个可以用作VHDL中得合法得实体名:A、ORB、VARIABLEC、SIGNALD、OUT1( B )28.下列关于CASE语句得说法不正确得就是:A、条件句中得选择值或标识符所代表得值必须在表达式得取值范围内B、CASE语句中必须要有WHEN OTHERS=>NULLC、CASE语句中得选择值只能出现一次,且不允许有相同得选择值得条件语句出现D、CASE语句执行必须选中,且只能选中所列条件语句中得一条( D )29.VHDL中,为目标变量赋值符号就是:A、=:B、=C、<=D、:=( B )30.VHDL语言就是一种结构化设计语言,一个设计实体(电路模块)包括实体与结构体两部分,结构体描述:A、器件外部特性B、器件得内部功能C、器件得综合约束D、器件外部特性与内部功能。
Vhdl复习考试题型:单项选择题:(10*2=20分)简答题:(5*4=20分,每小题5分)判断改错题:(2*5=20分)综合题:(共50分)VHDL 大小写不敏感实体(Entity)描述此设计功能输入输出端口(Port)在层次化设计时,Port为模块之间的接口在芯片级,则代表具体芯片的管脚Entity eqcomp4 isport(a, b: in std_logic_vector(3 downto 0);equal:out std_logic);end eqcomp4;实体--端口的模式输入(Input)输出(Output)双向(Inout):可代替所有其他模式,但降低了程序的可读性,一般用于与CPU的数据总线接口缓冲(Buffer):与Output类似,但允许该管脚名作为一些逻辑的输入信号结构体(Architecture)描述实体的行为结构体有三种描述方式-行为描述(behavioral)-数据流描述(dataflow)-结构化描述(structural)结构体--行为描述结构体--数据流描述描述输入信号经过怎样的变换得到输出信号结构体--结构化描述三种描述方式的比较VHDL标识符(Identifiers)•基本标识符由字母、数字和下划线组成•第一个字符必须是字母•最后一个字符不能是下划线•不允许连续2个下划线•保留字(关键字)不能用于标识符•大小写是等效的VHDL数据对象(Data Objects)•常数(Constant)–固定值,不能在程序中被改变–增强程序的可读性,便于修改程序–在综合后,连接到电源和地–可在Library、Entity、Architecture、Process中进行定义,其有效范围也相应限定Constant data_bus_width: integer := 8;•信号(Signals)–代表连线,Port也是一种信号–没有方向性,可给它赋值,也可当作输入–在Entity中和Architecture中定义–设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。