最新eda技术复习汇总.docx
- 文档编号:4294982
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:28
- 大小:107.40KB
最新eda技术复习汇总.docx
《最新eda技术复习汇总.docx》由会员分享,可在线阅读,更多相关《最新eda技术复习汇总.docx(28页珍藏版)》请在冰豆网上搜索。
最新eda技术复习汇总
2012EDA技术复习
考试题型:
1选择题10分
2填空题15分
3程序阅读25分(程序改错、分析波形、程序填空各一题)
4编写程序50分(四道大题)(组合逻辑电路、时序电路、状态机、结构化设计)
语法知识---选择、填空、程序改错、程序填空—40%
VHDL语言程序的基本结构、命名规则及数据对象、基本数据类型、VHDL的运算操作符并发描述语句、顺序描述语句
一、填空:
2-1、VHDL语言的客体有信号、变量、常量。
2-3、常用的端口定义模式有IN、OUT、BUFFER、INOUT四种。
2-4、VHDL设计的最基本模块是:
设计实体。
2-1、VHDL的数据对象包括:
信号,变量,常量,文件四类。
2-9、用VHDL设计某系统时,用到一种可枚举类型的数据,它的可能取值为:
red,yellow,blue,orange,green。
用color来表示这种数据类型,试写出这种数据类型的定义:
Typecoloris(red,yellow,blue,orange,green);
2-10EDA--电子设计自动化(ElectronicDesignAutomation)
2-11CPLD--复杂可编程逻辑器件(ComplexProgammableLogicDevice)
2-12FPGA---现场可编程门阵列(FieldProgrammableGataArray)
3-1、完整VHDL语言程序包含实体、构造体、配置、包集合、库五部分。
3-2、VHDL语言设计的基本单元是设计实体;其由实体说明和构造体说明两部分组成。
3-5、VHDL语言构造体的子结构描述有block语句结构、process语句结构、子程序结构三种。
3-8、VHDL允许用三种描述方式来设计,即行为描述、结构描述和数据流描述,或者是这些方式的任意组合。
其中,肯定能够综合的是结构描述和数据流描述,可能能够综合的是行为描述。
3-27、一个完整的VHDL语言程序通常包含实体、构造体、配置、包集合和库5个部分。
它们的作用分别为:
实体用于描述所设计的系统的外部接口信号;
构造体用于描述系统内部的结构和行为功能;
包集合存放格设计模块都能共享的数据类型,常数和子程序等;
配置用于从库中选取所需要单元来组成系统设计的不同版本;
库存放已经编译的实体,构造体,包集合和配置;
3-12、在用VHDL语言进行设计时,一个基本设计单元,不管是简单的数字电路还是复杂的数字电路,其基本构成是一致的。
它们都是由实体说明和构造体两部分构成。
3-7、在用VHDL语言进行设计时,共有五种库,即:
ieee库和std库、面向ASIC库、
work库、用户自定义库。
其中,std库中standard包是总可见的,用户编译好的文件是放在work库中。
4-1、PROCESS语句有三个敏感信号,他们顺序改变一次,则PROCESS语句执行3次。
4-1、时钟上升沿的描述方式有clk'eventandclk=’1’、
clk'eventandlast_value=’0’andclk=’1’。
4-2、VHDL描述语句按执行顺序可分为顺序描述语句、并发描述语句;
他们的关系是顺序描述语句只能包含于并发描述语句中,反之不能。
4-3、在LOOP语句有两种形式,它们是for----loop和while----loop。
4-5、变量可以在进程、过程和函数中定义。
4-7、循环控制语句有NEXT和EXIT两条语句;在LOOP语句中若想跳出本次循环应
使用NEXT语句;若想结束整个循环体应使用EXIT语句。
二、判断题:
1、判断对错,在正确的描述前画勾,错误的画叉
2-
(1)一个八位总线可以用标准类型byte表示。
(×)
2-
(2)连接系统与外界的信号叫做端口。
(√)
2-(3)总线定义中位的顺序明确的指定了总线宽度。
(√)
2-(5)在一个矢量中,位的顺序是不重要的。
(×)
2-(6)内部信号的定义包括信号名、模式和类型。
(×)
2-(7)信号可被定义为信息的载体。
(√)
2-(9)总线和矢量是同一概念的不同名称。
(√)
2-(10)矢量中左边的位的序号一定比右边的小。
(×)
2-(11)每个端口都必须指定其模式。
(√)
2-(12)元件例化语句中的端口映射方式必须按照端口定义顺序。
(×)
2-(25)“+”“-”运算符只能用于整型数的运算。
(×)
2-(66)、判断下面的说法是否正确:
(a)VHDL语言中字母在任何情况下都不区分大小写。
(×)
(b)信号具有延迟、事件等特性,而变量没有。
(√)
(c)信号在进程中作为局部数据存储单元。
(×)
2-(65)信号代入语句只能用于PROCESS语句。
(×)
2-(33)变量、信号、常量称之为VHDL语言的三个客体(对象)。
(√)
2-(34)信号和常数只能在构造体的定义语句区定义。
(×)
2-(40)端口说明中的端口方向OUT、BUFFER和INOUT都可以被写。
(×)
2-(42)数据类型BIT、BIT_VECTOR是对STD_LOGIC、STD_LOGIC_VECTOR的补充。
(×)
2-(43)一个构造体中多条并发描述语句的通信由构造体内定义的变量来完成。
(×)
2-(49)如果一条语句中包含多个优先级相同的运算符,VHDL语言遵循从左往由的运算规则。
(×)
2-(50)如果在一个表达式中由多个相同的逻辑运算符组成,只有AND、OR、XOR运算符不用加括号,否则结果不唯一。
(×)
2-(54)并置运算可以用集合体的方法实现,它适用于所有情况(×)
2-55、2#1111_1110#比8#292#要小(×)
2-56、8位二进制“10011001”数位字符串可表示为16“99”。
(×)
2-2、判断下面每组表达式结果是否一致或与所给描述是否一致:
(1)a<=bandcandd;a<=(bandc)andd;a<=band(candd);(一致)
(2)a<=notborcord;a<=cor(notb)ord;(一致)
(3)a<=bnandcnandd;a<=(cnandb)nandd;(不一致)
(4)a是c与b或然后和d与的结果;a<=corbandd;(不一致)
(5)a<=borcord;a<=(borc)ord;a<=bor(cord);(一致)
(6)a<=notbandcandd;a<=cand(notb)andd;(一致)
(7)a<=NOTbANDcORa;a<=(NOTbANDc)ORa;a<=NOTbAND(cORa)(不一致)
2-3、判断下面的并置运算是否正确:
signala:
std_logic;
signalb:
std_logic;
signalc:
std_logic_vector(0to2);
signald:
std_logic_vector(0to4);
c<=a&b&b;(√)
d<=a&b&c&c;(×)
d<=(a,a,c);(×)
4、判断下面的并置运算是否正确:
signala:
std_logic;
signalb:
std_logic;
signalc:
std_logic;
signald:
std_logic_vector(0to4);
c<=a&b&b;(×)
d<=a&b&c&c&c;(√)
d<=(a,b,c,c);(√)
5、判断下面的并置运算是否正确:
signala:
std_logic;
signalb:
std_logic;
signalc:
std_logic_vector(0to2);
signald:
std_logic_vector(0to4);
c<=(a,b,b);(√)
d<=a&b&c&c;(×)
d<=(a,a,c);(×)
2-5、下面哪些是正确的用户定义的标识符?
对于每个无效的标识符,说明其错误的理由。
(1)2nd_item错误,不应以数字开头
(2)case:
错误,不应与保留字相同
(3)small_device:
正确
(4)_name_:
错误,不应以下划线开头
(5)my-name:
错误,不应包括连词号“-”
3-(8)在实体中声明的端口信号,在这个实体的所有结构体中都可见。
(√)
3-(12)一个系统的所有信号都必须在实体中声明。
(×)
3-(13)结构描述可以是层次化的。
(√)
3-(14)如果包集合与实体在同一目录下,包集合中定义的对象就可以在实体中使用。
(×)
3-(15)VHDL仅有的两种设计单元是实体和结构体。
(×)
3-(16)一个实体可以有多个结构体。
(√)
3-(17)为了使用标准standard包集合,在实体前必须有library和use语句。
(×)
3-(18)VHDL中的每个系统都是实体和结构体的集合体。
(√)
3-(19)VHDL的系统中实体最具重要性。
(√)
3-(20)结构体是针对实体定义的,一个结构体可以针对多个实体。
(×)
3-(26)进程在仿真运行中总是处于下述两种状态之一:
执行或挂起。
(√)
3-(30)如果一个信号在被实体使用的包集合中定义,那么在实体的构造体中使用这个信号也必须包含使用包集合的use语句。
(×)
3-(37)设计者描述的VHDL程序编译后都会自动存放到WORK库中。
(√)
3-(38)VHDL语言一个设计实体的最基本的组成就是实体说明和构造体说明。
(√)
3-(39)实体说明部分仅可以完成该设计实体的端口说明。
(×)
3-(41)构造体的描述方法有三种:
行为级描述、RTL级描述、结构描述;他们都能够实现逻辑综合。
(×)
3-(46)PROCESS语句是一个无限循环语句。
(×)
3-(51)在一个PROCESS语句中,信号赋值与变量赋值除运算符外,没有区别。
(×)
3-(52)原理图输入设计方法一般是一种自底向上的设计方法。
(√)
3-(53)实体提供一个系统的名称并仅仅指定其与外的连。
(×)
3-(55)行为描述明确的指出系统综合时需要的模块。
(×)
3-(56)每个实体必须至少有一个端口。
(√)
3-(58)综合是纯软件的转换过程,与硬件结构无关。
(×)
3-(63)完整的VHDL语言包含五部分:
实体说明、构造体说明、库、包集合和配置。
(√)
4-(22)LOOP语句中的NEXT语句执行时,将结束循环状态,从LOOP语句中跳出。
(×)
4-(27)顺序语句只能出现在进程或子程序中,由它定义进程或子程序所执行的算法。
(√)
4-(44)一条并发描述语句中可以包含多条顺序描述语句,反之不能。
(√)
4-(45)没有优先级的多条件控制可以分别用CASE语句、IF语句、条件信号带入语句或选择信号代入语句,他们的使用没有区别。
(×)
4-(47)FOR…LOOP语句与WHILE…LOOP语句可以直接互换。
(×)
4-(48)有两条控制循环的语句NEXT和EXIT,其中EXIT用于跳出本次循环控制,NEXT用于跳出整个循环体控制。
(×)
程序题
实验考试试题相关内容
组合逻辑电路、时序电路、状态机、结构化设计
1、数据选择器、编码器、译码器、表决器
2、数码管显示
3、计数器、分频器、序列信号发生检测器
4、例化语句-----结构化设计
5.状态机图-----VHDL程序
程序分析题:
1、阅读下面的VHDL程序代码回答问题。
libraryIEEE:
useIEEE.Std_logic_1164.all:
useIEEE.STD_LOGIC_UNSIGNED.a11:
entityseq_genis
port(CIK,RESET:
inSTD_LOGIC:
Y0:
outSTD_LOGIC):
Endseq_gen;
Architecturertlofseq_genis
SignalCNT:
STD_LOGIC_VECTOR(2downto0);
begin
process(CLK,RESET)
begin
ifRESET=’1’then
CNT<=”000”;
ElsifCLK'eventandCLK=’1’then
Ifcnt=”111”then
CNT<=”000”;
else
CNT<=CNT+’1’;
Endif;
Endif;
Endprocess;
WithCNTSelect
Y0<=’1’when”000”,
‘1’when”001”,
‘1’when”010”,
‘0’when”011”,
‘1’when”100”,
‘0’when”101”,
‘1’when”110”,
‘0’whenothers;
endrtl;
⑴根据输入波形画出CNT和Y0的仿真波形:
⑵该程序完成的是“11101010”脉冲序列发生器的功能。
2、阅读下面的VHDL程序代码回答问题。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitydivis
port(clk,RESET:
instd_logic;
Y0:
outstd_logic);
enddiv;
architecturediv_8ofdivis
signalcnt:
std_logic_vector(2downto0);
begin
process(clk)
begin
ifreset='1'then
cnt<="000";
ELSif(clk'eventandclk='1')then
ifcnt="111"then
cnt<="000";
else
cnt<=cnt+'1';
endif;
endif;
endprocess;
Y0<=cnt
(2);
enddiv_8;
解答:
⑴根据输入波形画出CNT和Y0的仿真波形;(假设CNT初始值为“000”,Y0初始态为‘0’)
⑵该程序完成的是8分频分频器的功能。
3、设计仿真波形。
设计一个8个彩灯循环点亮控制器,要求每次只点亮一个彩灯。
libraryIEEE:
useIEEE.Std_logic_1164.all:
useIEEE.STD_LOGIC_UNSIGNED.a11:
entityseq_genis
port(CIK,RESET:
inSTD_LOGIC:
Y0:
outSTD_LOGIC_vector(0to7)):
Endseq_gen;
Architecturertlofseq_genis
SignalCNT:
STD_LOGIC_VECTOR(2downto0);
begin
process(CLK,RESET)
begin
ifRESET=’1’then
CNT<=”000”;
ElsifCLK'eventandCLK=’1’then
Ifcnt=”111”then
CNT<=”000”;
else
CNT<=CNT+’1’;
Endif;
Endif;
Endprocess;
WithCNTSelect
Y0<=”00000001”when”000”,
“00000010”when”001”,
“00000100”when”010”,
“00001000”when”011”,
“00010000”when”100”,
“00100000”when”101”,
“01000000”when”110”,
“10000000”whenothers;
endrtl;
4、假设信号A,B,C,D,E的初始值为1,如果信号D的值变为2,那么下面的进程结束后,信号A,B,E的值各为多少?
5、如下是一个4-2编码器的vhdl描述,其真值表如图所示。
试用case语句代替其中的选择信号代入语句完成该功能描述。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYencoderIS
Process(a)
Begin
Caseais
WHEN"0001"=>y<=”00”;
WHEN"0010"=>y<=”01”;
WHEN"0100"=>y<=”10”;
WHEN"1000"=>y<=”11”;
WHENOTHERS=>y<=”zz”;
Endcase;
Endprocess;
PORT(A:
INSTD_LOGIC_VECTOR(3DOWNTO0);
Y:
OUTSTD_LOGIC_VECTOR(1DOWNTO0));
ENDencider;
ARCHITECTUREaaOFencoderIS
BEGIN
WithAselect
y<=“00”WHEN"0001",
“01”WHEN"0010",
“10”WHEN"0100",
“11”WHEN"1000",
“ZZ”WHENOTHERS;
ENDaa;
编程题:
1、数据选择器、编码器、译码器、表决器
2、数码管显示
3、计数器、分频器、序列信号发生检测器
1、设计一个地址译码器。
CPU送出32位的地址信号,write及read控制信号。
对CPU而言,有一个内存映射图如下图。
由于以上器件都要使用同一组数据总线,因此要用片选信号来控制器件是否要被访问,试以最少的信号产生CE0~CE3,以分别控制四组器件。
占用地址
使用器件
片选信号
读写方向
00000000H~01000000H
EEPROM
CE0
双向
10000000H~11000000H
SRAM
CE1
双向
20000000H
InputPort
CE2
输入
30000000H
OutputPort
CE3
输出
entityaddress_decoderis
port(address:
inbit_vector(31downto0);
read:
inbit;
write:
inbit;
ce0,ce1,ce2,ce3:
outbit);
endaddress_decoder;
architecturertlofaddress_decoderis
begin
ce0<='0'whenaddress(29downto28)="00"else'1';
ce1<='0'whenaddress(29downto28)="01"else'1';
ce2<='0'whenaddress(29downto28)="10"andread='0'else'1';
ce3<='0'whenaddress(29downto28)="11"andwrite='0'else'1';
endrtl;
2、用loop循环语句设计一个9人表决器。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
entityselis
port(Input:
instd_logic_vector(8downto0);
Y:
outintegerrange(0to9);
endsel;
architectureaofselis
begin
process(input)
variablenum:
integer;
begin
num:
=0;
forIinput’rangeloop
ifinput(i)=’1’thennum:
=num+1;
endif;
endloop;
y<=num;
endprocess;
enda;
3、设计一个优先编码器,其真值表如图所示。
其中A的优先权最高,D的优先权最低。
编码结果由发光二极管输出,并由一位共阴极七段数码管显示相应的输入通道号(显示A、B、C、D)。
A
B
C
D
S1
S2
1
0
0
0
X
1
0
0
X
X
1
0
X
X
X
1
0
0
1
1
0
1
0
1
4、实验考核题:
12、实验考核题:
14、实验考核题:
19
5、设计一个具有异步复位、同步预置功能,并带有计数使能的十进制可逆计数器。
libraryIEEE;
useIEEE.std_logic_1164.all;
useIEEE.STD_LOGIC_UNSIGNED.all;
entitycounteris
port(CLK,RESET,CE,LOAD:
inSTD_LOGIC;--时钟、复位、使能、装入
DIR:
inSTD_LOGIC;--加减计数控制
DIN:
inSTD_LOGIC_VECTOR(3downto0);--预置数输入
COUNT:
outSTD_LOGIC_VECTOR(3downto0));--输出
endcounter;
architecturertlofcounteris
signalCOUNT_INT:
STD_LOGIC_VECTOR(3downto0);--内部信号
process(CLK,RESET)
begin
ifRESET='1'then--异步复位
COUNT_INT<=(others
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 eda 技术 复习 汇总