VHDL复习题要点.docx
- 文档编号:29082755
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:17
- 大小:21.08KB
VHDL复习题要点.docx
《VHDL复习题要点.docx》由会员分享,可在线阅读,更多相关《VHDL复习题要点.docx(17页珍藏版)》请在冰豆网上搜索。
VHDL复习题要点
一、选择题
(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_VECTOR
C.BITD.前面三个答案都是错误的
(C)12.STD_LOGIG_1164中定义高阻的字符是:
A.XB.x
C.zD.Z
(A)13.STD_LOGIG_1164中字符H定义的是:
A.弱信号1B.弱信号0
C.没有这个定义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,则逻辑表达式(aANDb)OR(NOTbANDa)的值是:
A.0B.1
C.2D.不确定
(B)20.正确给变量X赋值的语句是:
A.X<=A+B;B.X:
=A+b;
C.X=A+B;D.前面的都不正确
()21.VHDL文本编辑中编译时出现如下的报错信息,其错误原因是:
Error:
VHDLsyntaxerror:
choicevaluelengthmustmatchselectorexpressionvaluelength
A.表达式宽度不匹配
B.错将设计文件存入了根目录,并将其设定成工程
C.设计文件的文件名与实体名不一致
D.程序中缺少关键词
(D)22.在VHDL语言中,下列对时钟边沿检测描述中,错误的是:
A.ifclk’eventandclk=‘1’thenB.iffalling_edge(clk)then
C.ifclk’eventandclk=‘0’thenD.ifclk’stableandnotclk=‘1’then
(D)23.在VHDL中,可以用以下哪条语句表示检测clock下降沿:
A.clock’eventB.clock’eventandclock=’1’(上升沿)
C.clock=’0’D.clock’eventandclock=’0’
(D)24.VHDL语言共支持四种常用库,其中哪种库是用户的VHDL设计现行工作库:
A.IEEE库B.VITAL库
C.STD库D.WORK工作库
(A)25.VHDL常用的库是:
A.IEEE B.STD
C.WORK D.PACKAGE
(B)26.下列语句中,不属于并行语句的是:
A.进程语句B.CASE语句
C.元件例化语句D.WHEN…ELSE…语句
(D)27.下面哪一个可以用作VHDL中的合法的实体名:
A.ORB.VARIABLE
C.SIGNALD.OUT1
(B)28.下列关于CASE语句的说法不正确的是:
A.条件句中的选择值或标识符所代表的值必须在表达式的取值范围内
B.CASE语句中必须要有WHENOTHERS=>NULL
C.CASE语句中的选择值只能出现一次,且不允许有相同的选择值的条件语句出现
D.CASE语句执行必须选中,且只能选中所列条件语句中的一条
(D)29.VHDL中,为目标变量赋值符号是:
A.=:
B.=
C.<=D.:
=
(B)30.VHDL语言是一种结构化设计语言,一个设计实体(电路模块)包括实体与结构体两部分,结构体描述:
A.器件外部特性B.器件的内部功能
C.器件的综合约束D.器件外部特性与内部功能。
(A)31.大规模可编程器件主要有FPGA、CPLD两类,其中CPLD通过___A__实现其逻辑功能:
A.可编程乘积项逻辑B.查找表(LUT)
C.输入缓冲D.输出缓冲
(C)32.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是:
A.FPGA是基于乘积项结构的可编程逻辑器件
B. FPGA是全称为复杂可编程逻辑器件
C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置
D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构
(D)33.大规模可编程器件主要有FPGA、CPLD两类,下列对CPLD结构与工作原理的描述中,正确的是:
A.CPLD是基于查找表结构的可编程逻辑器件;
B.CPLD即是现场可编程逻辑器件的英文简称;
C.早期的CPLD是从GAL的结构扩展而来;
D.在Xilinx公司生产的器件中,XC9500系列属CPLD结构;
(D)34.下列标识符中,哪个是不合法的标识符:
A.State0 B.9moon
C.Not_Ack_0 D.signal
(D)35.下列4个VHDL标识符中正确的是:
A.10#128#B.16#E#E1
C.74HC124D.X_16
(D)36.基于VHDL设计的仿真包括有①门级时序仿真、②行为仿真、③功能仿真和④前端功能仿真这四种,按照自顶向下的设计流程,其先后顺序应该是:
A.①②③④B.②①④③
C.④③②①D.②④③①
(B)37.基于EDA软件的FPGA/CPLD设计流程为:
原理图/HDL文本输入→_____→综合→适配→_____→编程下载→硬件测试:
①功能仿真②时序仿真③逻辑综合④配置⑤引脚锁定
A.③①B.①②
C.④⑤D.④②
()38.关于VHDL中的数字,请找出以下数字中最大的一个:
A.2#1111_1110#B.8#276#
C.10#170#D.16#E#E1
(B)39.下列语句中,不属于并行语句的是:
A.进程语句B.CASE语句
C.元件例化语句D.WHEN…ELSE…语句
(D)40.在VHDL语言中,下列对进程语句的结构及语法规则描述中,不正确的是:
A.PROCESS为一无限循环语句
B.敏感信号发生更新时启动进程,执行完成后,等待下一次进程启动
C.当前进程中声明的变量不可用于其他进程
D.进程由说明语句部分、并行语句部分和敏感信号参数表三部分组成
(C)41.进程中的信号赋值语句,其信号更新是:
A.按顺序完成B.比变量更快完成
C.在进程的最后完成D.都不对
二、名词解释题
写出下列缩写的中文(或者英文)含义
FPGA
VHDL
HDL
CPLD
PLD
GAL
LAB
CLB
LUT
EDA
RTL
ASIC
三、简答题
1.简述信号与变量的区别
2.描述VHDL语言程序的基本结构,并简述各部分的功能
3.描述可编程逻辑器件的类型,并简要描述其特点
4.比较FPGA与CPLD的异同
5.简述变量、信号和端口的区别
6.简述FPGA的系统结构
7.简述CPLD的系统结构
四、程序填空题
1.以下程序是十进制计数器的VHDL描述,试补充完整。
LIBRARYIEEE;
USEIEEE..ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDCNT10;
ARCHITECTUREbhvOFIS
SIGNALQ1:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK)
IFTHEN--边沿检测
IFQ1>10THEN
Q1<=(OTHERS=>'0');--置零
ELSE
Q1<=Q1+1;--加1
ENDIF;
ENDIF;
ENDPROCESS;
;--输出
ENDbhv;
2.以下程序是BCD码表示0~99计数器的VHDL描述,试补充完整。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USE;
ENTITYcnt100bis
port(clk,rst,en:
instd_logic;
cq:
outstd_logic_vector(7downto0);--计数输出
cout:
outstd_logic);--进位输出
ENDENTITYcnt100b;
bhvofcnt100bis
BEGIN
PROCESS(clk,rst,en)
cqi:
std_logic_vector(7downto0);
BEGIN
ifrst='1'then
cqi:
=;--计数器清零
else
ifthen--上升沿判断
ifen='1'then
ifcqi(3downto0)<"1001"then--比较低4位
;--计数加1
else
ifcqi(7downto4)<"1001"then--比较高4位
cqi:
=cqi+16;
else
cqi:
=(others=>'0');
endif;
cqi():
=“0000”;--低4位清零
endif;
endif;
;
endif;
ifcqi=“”then--判断进位输出
cout<='1';
else
cout<='0';
endif;
;
ENDPROCESS;
ENDARCHITECTUREbhv;
3.以下程序是多路选择器的VHDL描述,试补充完整。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYbmuxIS
PORT(sel:
STD_LOGIC;
A,B:
INSTD_LOGIC_VECTOR(7DOWNTO0);
Y:
STD_LOGIC_VECTOR(7DOWNTO0));
ENDbmux;
ARCHITECTUREbhvOFbmuxIS
BEGIN
y<=Awhensel='1'
;
END;
4.以下程序是10/4线优先编码器的VHDL描述,试补充完整。
LIBRARYIEEE;
USEIEEE..ALL;
ENTITYcoderIS
PORT(din:
INSTD_LOGIC_VECTOR();
output:
STD_LOGIC_VECTOR(3DOWNTO0));
ENDcoder;
ARCHITECTUREbehavOFIS
SIGNALSIN:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS()
BEGIN
IF(din(9)='0')THENSIN<="1001";
ELSIF()THENSIN<="1000";
ELSIF(din(7)='0')THENSIN<="0111";
ELSIF(din(6)='0')THENSIN<="0110";
ELSIF(din(5)='0')THENSIN<="0101";
ELSIF(din(4)='0')THENSIN<="0100";
ELSIF(din(3)='0')THENSIN<="0011";
ELSIF(din
(2)='0')THENSIN<="0010";
ELSIF(din
(1)='0')THENSIN<="0001";
ELSE;
;
ENDPROCESS;
;
ENDbehav;
五、程序分析题
1.以下程序是四选一数据选择器的VHDL描述,请分析程序并画出原理图或详述其功能
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYmulti_4vIS
PORT(S :
IN STD_LOGIC_VECTOR(1DOWNTO0);
A,B,C,D :
IN STD_LOGIC;
Y :
OUT STD_LOGIC);
ENDmulti_4v;
ARCHITECTUREaOFmulti_4vIS
BEGIN
PROCESS
BEGIN
IF(S="00")THEN
Y<=A;
ELSIF(S="01")THEN
Y<=B;
ELSIF(S="10")THEN
Y<=C;
ELSIF(S="11")THEN
Y<=D;
ENDIF;
ENDPROCESS;
ENDa;
2.下面是同步清零可逆计数器的程序,请分析程序并画出原理图或详述其功能
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYcountudIS
PORT(clk :
INSTD_LOGIC;
clr :
INSTD_LOGIC;
dire:
INSTD_LOGIC;
q:
BUFFERSTD_LOGIC_VECTOR(7DOWNTO0));
ENDcountud;
ARCHITECTUREaOFcountudIS
BEGIN
PROCESS(clk)
BEGIN
IFclk'eventANDclk='1'THEN
IFclr='0'THEN
q<="00000000";
ELSIFdire='1'THEN
q<=q+1;
ELSE
q<=q-1;
ENDIF;
ENDIF;
ENDPROCESS;
ENDa;
3.以下程序是上升沿计数器的VHDL描述,请分析程序并画出原理图或详述其功能
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYthreeIS
PORT(clk,d:
INSTD_LOGIC;
Dout:
OUTSTD_LOGIC);
END;
ARCHITECTUREbhvOFthreeIS
SIGNALtmp:
STD_LOGIC;
BEGIN
P1:
PROCESS(clk)
BEGIN
IFrising_edge(clk)THEN
Tmp<=d;
dout<=tmp;
ENDIF;
ENDPROCESSP1;
ENDbhv;
六、程序阅读理解题
1.以下程序能实现加和减功能的计数器,请在划线空白处注释该句的功能
Libraryieee;
Useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
Entityup_downis
Port(clk,rst,en,up:
instd_logic;
Sum:
outstd_logic_vector(2downto0);
Cout:
outstd_logic);
Endup_down;
Architectureaofup_downis
Signalcount:
std_logic_vector(2downto0);
Begin
Process(clk,rst)
Begin
Ifrst=’0’then
Count<=(others=>’0’);
Elsifrising_edge(clk)then
Ifen=’1’then
Caseupis
When‘1’=>count<=count+1;
Whenothers=>count<=count-1;
Endcase;
Endif;
Endif;
Endprocess;
Sum<=count;
Cout<=’1’whenen=’1’and((up=’1’andcount=7)or(up=’0’andcount=0))else‘0’;
Enda;
2.仔细阅读下列程序,回答问题
LIBRARYIEEE;--1
USEIEEE.STD_LOGIC_1164.ALL;--2
ENTITYLED7SEGIS--3
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);--4
CLK:
INSTD_LOGIC;--5
LED7S:
OUTSTD_LOGIC_VECTOR(6DOWNTO0));--6
ENDLED7SEG;--7
ARCHITECTUREoneOFLED7SEGIS--8
SIGNALTMP:
STD_LOGIC;--9
BEGIN--10
SYNC:
PROCESS(CLK,A)--11
BEGIN--12
IFCLK'EVENTANDCLK='1'THEN--13
TMP<=A;--14
ENDIF;--15
ENDPROCESS;--16
OUTLED:
PROCESS(TMP)--17
BEGIN--18
CASETMPIS--19
WHEN"0000"=>LED7S<="0111111";--20
WHEN"0001"=>LED7S<="0000110";--21
WHEN"0010"=>LED7S<="1011011";--22
WHEN"0011"=>LED7S<="1001111";--23
WHEN"0100"=>LED7S<="1100110";--24
WHEN"0101"=>LED7S<="1101101";--25
WHEN"0110"=>LED7S<="1111101";--26
WHEN"0111"=>LED7S<="0000111";--27
WHEN"100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 复习题 要点