EDA技术期末复习题.docx
- 文档编号:6284628
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:10
- 大小:19.88KB
EDA技术期末复习题.docx
《EDA技术期末复习题.docx》由会员分享,可在线阅读,更多相关《EDA技术期末复习题.docx(10页珍藏版)》请在冰豆网上搜索。
EDA技术期末复习题
1.结构体中包含了四类功能描述语句:
语句、______________语句、子程序调用语句和语句。
(P304)
2.下列关于程序包的用法正确的是:
________(P319)
A、一个程序包中只能包含常数说明,VHDL数据类型说明,元件定义和子程序这几种结构之一或他们中的几种
B、程序包首可以独立定义和使用
C、程序包结构中,必须同时含有程序包首和程序包体
D、一个完整的程序包中,程序包首名和程序包体名可以不是同一个名字
3.参数传递说明语句以关键词引导一个类属参量表,通常在实体中的位置处于语句之前。
(P300-301)
4.下列逻辑操作符中哪个的优先级最高:
_______。
A.ANDB.ORC.NOTD.XOR
5.下列关于操作符说法不正确的是:
_______(P333)
A、关系操作符的操作对象可以是VHDL中的任何数据类型构成的操作数
B、关系操作符的返回值是布尔类型数据
C、MOD和REM的操作数数据类型只能是整数,运算操作结果也是整数。
D、SLL是左移位操作,右边跟进的位补零
6.下列说法正确的是:
_______。
(P332)
A、只有BIT型和整型数据可以参与加减运算。
B、操作符是有优先级别的,其中逻辑运算符的级别最低。
C、BIT、BOOLEAN和STD_LOGIC可以进行逻辑运算
D、anandbnandc这串运算可以不加括号
7.下列语句中,不属于并行语句的是:
________
A、进程语句B、CASE语句
C、元件例化语句D、WHEN…ELSE…语句
8.下列语句中,不属于顺序语句的是:
_______。
A.WHEN…ELSE…语句
B.IF语句
C.LOOP语句
D.CASE语句
9.以下关于VHDL中常量的声明正确的是________
A、ConstantWidth:
Integer=8;
B、ConstantWidth:
Integer:
=8;
C、VariableWidth:
Integer=8;
D、VariableWidth:
Integer:
=8;
10.下列哪个库需要在VHDL程序中明确打开并指定________
A、STDB、IEEEC、WORK D、自定义库
11.VHDL中最为常用的是库。
该库中最常用和最重要的程序包是_________________________________。
(P316)
12.在状态机的具体实现时,往往需要针对具体的器件类型来选择合适的状态机编码,对于FPGA和CPLD这两类器件:
一位热码状态机编码方式适合于_________器件。
13.VHDL综合器可以综合的数据类型是______。
(P326)
A、实数类型B、字符串类型
C、时间类型D、文件类型
14.在VHDL语言中,下列对进程(PROCESS)语句的语句结构及语法规则的描述中,不正确的是_______。
A、PROCESS为一无限循环语句;敏感信号发生更新时启动进程,执行
完成后,等待下一次进程启动。
B、敏感信号参数表中,不一定要列出进程中使用的所有输入信号;
C、进程由说明部分、结构体部分、和敏感信号三部分组成;
D、当前进程中声明的变量不可用于其他进程。
15.写出四种VHDL语言中时钟上升沿检测的描述。
clk’eventandclk=‘1’
rising_edge(clk)
clk=‘1’andclk’last_value=‘0’
Notclk’stableandclk=‘1’
16.WAIT语句有几种书写格式?
哪些格式可以进行逻辑综合?
WAIT;--第一种语句格式
WAITON信号表;--第二种语句格式
WAITUNTIL条件表达式;--第三种语句格式
WAITFOR时间表达式;--第四种语句格式,超时等待语句
只有第三种WAITUNTIL语句可以进行逻辑综合。
17.什么是元件例化语句?
它包括哪几部分?
元件例化:
就是将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引入一个新的低一级的设计层次。
元件例化语句由两部分组成:
前一部分是将一个现成的设计实体定义为一个元件的语句,即元件定义语句;第二部分则是此元件与当前设计实体中的连接说明,即元件例化语句.
18.分别写出条件信号赋值语句与选择信号赋值语句的表达方式。
条件信号赋值语句:
赋值目标<=表达式WHEN赋值条件ELSE
表达式WHEN赋值条件ELSE
...
表达式;
选择信号赋值语句:
WITH选择表达式SELECT
赋值目标信号<=表达式WHEN选择值
表达式WHEN选择值
...
表达式WHEN选择值;
19.顺序语句和并行语句有什么区别?
顺序语句:
每一条顺序语句的执行(指仿真执行)顺序是与它们书写顺序基本一致的,顺序语句只能出现在进程和子程序中。
并行语句:
在执行顺序的地位上是平等的,其执行顺序与书写的顺序无关。
20.请写出进程语句的特点。
(1)PROCESS为一无限循环语句。
(2)PROCESS中的顺序语句具有明显的顺序/并行运行双重性。
(3)进程必须由敏感信号的变化来启动。
(4)进程语句本身是并行语句。
(5)一个进程中只允许描述对应于一个时钟信号的同步时序逻辑。
VHDL程序改错题
1.ARCHITECTUREoneOFexternIS
BEGIN
VARIABLEQ1:
STD_LOGIC;
PROCESS(CLK)
BEGIN
IFrising_edge(CLK)THENQ1<=D ;ENDIF;
ENDPROCESS;
Q:
=Q1;
END;
试指出程序中所存在的错误并进行改正。
2.ENTITYmux21IS
PORT(a,b,sel:
INBIT;
c:
OUTBIT);
END;
ARCHITECTUREoneOFmux21IS
BEGIN
IFsel=’0’THENc<=a;
ELSEc<=b;
ENDIF;
END;
VHDL程序填空
1.LIBRARYIEEE; --8位分频器程序设计
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYPULSEIS
PORT( CLK:
INSTD_LOGIC;
D :
INSTD_LOGIC_VECTOR(7DOWNTO0);
FOUT :
OUTSTD_LOGIC );
END;
ARCHITECTUREoneOFPULSEIS
SIGNAL FULL:
STD_LOGIC;
BEGIN
P_REG:
PROCESS(CLK)
VARIABLECNT8:
STD_LOGIC_VECTOR(7DOWNTO0);
BEGIN
IFCLK‘EVENTANDCLK=‘1’THEN
IFCNT8="11111111"THEN
CNT8:
=D; --当CNT8计数计满时,输入数据D被同步预置给计数器CNT8
FULL<='1';--同时使溢出标志信号FULL输出为高电平
ELSE CNT8:
=CNT8+1; --否则继续作加1计数
FULL<='0'; --且输出溢出标志信号FULL为低电平
ENDIF;
ENDIF;
ENDPROCESSP_REG;
P_DIV:
PROCESS(FULL)
VARIABLECNT2:
STD_LOGIC;
BEGIN
IFFULL'EVENTANDFULL='1'THEN
CNT2<=NOTCNT2;--如果溢出标志信号FULL为上升沿,D触发器
输出取反
IFCNT2='1'THENFOUT<='1';
ELSE FOUT<='0';
ENDIF;
ENDIF;
ENDPROCESSP_DIV;
END;
2.下面程序是一个带有异步复位和同步时钟使能的十进制加法计数器的VHDL描述,试补充完整。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYCNT10IS
PORT(CLK,RST,EN:
INSTD_LOGIC;
CQ :
OUTSTD_LOGIC_VECTOR(3DOWNTO0) ;
COUT:
OUTSTD_LOGIC);
ENDCNT10;
ARCHITECTUREbehaveOFCNT10IS
BEGIN
PROCESS(CLK,RST,EN)
VARIABLECQI:
STD_LOGIC_VECTOR(3DOWNTO0) ;
BEGIN
IFRST=’1’THENCQI:
=(OTHERS=>’0’);--计数器异步复位
ELSIFCLK‘EVENTANDCLK=’1’THEN--检测时钟上升沿
IFEN=’1’THEN--检测是否允许计数(同步使能)
IFCQI<9THENCQI:
=CQI+1;--允许计数,检测是否小于9
ELSECQI:
=OTHERS=>’0’;--大于9,计数值清零
ENDIF;
ENDIF;
ENDIF;
IFCQI=9THENCOUT<=’1’;--计数大于9,输出进位信号
ELSECOUT<=’0’;
ENDIF;
CQ<=CQI;--将计数值向端口输出
ENDPROCESS;
ENDbehave;
3.下面程序是带异步复位、同步置数和移位使能的8位右移移位寄存器的VHDL描述,试补充完整。
libraryieee;
useieee.std_logic_1164.all;
entitysreg8bis
port(clk,rst:
instd_logic;
load,en:
instd_logic;
din:
in__std_logic_vector__(7downto0);
qb:
outstd_logic);
endsreg8b;
architecturebehavofsreg8bis
signalreg8:
std_logic_vector(7downto0);
begin
process(clk,rst,load,en)
begin
ifrst='1'then――异步清零
reg8<=“00000000”;
elsifclk'eventandclk='1'then――边沿检测
ifload='1'then――同步置数
reg8<=din;
elsifen='1'then――移位使能
reg8(6downto0)<=reg8(7downto1);
endif;
_endif_____;
endprocess;
qb<=_reg8(0)______;――输出最低位
endbehav;
4.下面程序是一个8位加减计数器,带有异步复位、可预置功能,计数范围为0~255。
试将程序补充完整。
Clk:
时钟信号
Reset:
异步复位信号,reset=‘1’时,复位
Load:
预置使能信号,load=‘1’时,装入数据
Dir:
加减控制信号dir=‘1’时,加;dir=‘0’时,减
Ce:
同步使能信号,ce=‘1’时,同步使能,允许计数
Din:
输入,整型,范围是0~255
Count:
输出,整型,范围是0~255
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYcounter8IS
PORT(clk,reset:
INSTD_LOGIC;
ce,load,dir:
INSTD_LOGIC;
din:
ININTEGERRANGE0TO255;
count:
OUTINTEGERRANGE0TO255);
END;
ARCHITECTUREoneOFcounter8IS
BEGIN
PROCESS(clk,reset)
VARIABLEcounter:
INTEGERRANGE0TO255;
BEGIN
IFreset='1'THENcounter:
=0;
ELSIFclk'EVENTANDclk='1'THEN
IFload='1'THEN
counter:
=din;
ELSE
IFce='1'THEN
IFdir='1'THEN
IFcounter=255THEN
counter:
=0;
ELSEcounter:
=counter+1;
ENDIF;
ELSEIFcounter=0THEN
counter:
=255;
ELSEcounter:
=counter-1;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
count<=counter;
ENDPROCESS;
END;
5.下面程序是一个D触发器。
数据宽度为8位,G是控制端,当G为高电平时,数据进入;而当G为低电平时,保持已输入的数据。
试将程序补充完整。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYLATCH8IS
PORT(G:
INSTD_LOGIC;
DIN:
INSTD_LOGIC_VECTOR(7DOWNTO0);
DOUT:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDLATCH8;
ARCHITECTUREbehavOFLATCH8IS
BEGIN
PROCESS(G,DIN)
BEGIN
IFG='1'THENDOUT<=DIN;
ENDIF;
ENDPROCESS;
ENDbehav;
6.下面程序是N输入与门的VHDL描述,试补充完整。
_library___ieee;
useieee.std_logic_1164.all;
entityandnis
_GENERIC____(n:
integer);--类属参数声明
port(a:
instd_logic_vector(_n-1_____downto0);
c:
outstd_logic);
end;
___architecture_______behavofandnis--结构体声明
begin
process(a)
__variable________int:
std_logic;--变量声明
begin
int:
='1';--变量赋初值
forIina'length–1downto0loop--循环判断
ifa(i)='0'then
int:
='0';
endif;
endloop;
c<=_int_______;--输出判断结果
endprocess;
endbehav;
7.下面程序是一个8位三态控制门电路的VHDL描述,当使能控制信号为‘1’时,8位数据输出;为‘0’时输出呈高阻态,语句中将高阻态数据“ZZZZZZZZ”向输出端口赋值。
试将程序补充完整。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYtri_sIS
PORT(enable:
INSTD_LOGIC;
datain:
INSTD_LOGIC_VECTOR(7DOWNTO0);
dataout:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
ENDtri_s;
ARCHITECTUREbhvOFtri_sIS
BEGIN
PROCESS(enable,datain)
BEGIN
IFenable='1'THENdataout<=datain;
ELSEdataout<="ZZZZZZZZ";
ENDIF;
ENDPROCESS;
ENDbhv;
.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 期末 复习题