EDA技术复习题要点.docx

上传人:b****2 文档编号:11761491 上传时间:2023-06-02 格式:DOCX 页数:41 大小:181.65KB
下载 相关 举报
EDA技术复习题要点.docx_第1页
第1页 / 共41页
EDA技术复习题要点.docx_第2页
第2页 / 共41页
EDA技术复习题要点.docx_第3页
第3页 / 共41页
EDA技术复习题要点.docx_第4页
第4页 / 共41页
EDA技术复习题要点.docx_第5页
第5页 / 共41页
EDA技术复习题要点.docx_第6页
第6页 / 共41页
EDA技术复习题要点.docx_第7页
第7页 / 共41页
EDA技术复习题要点.docx_第8页
第8页 / 共41页
EDA技术复习题要点.docx_第9页
第9页 / 共41页
EDA技术复习题要点.docx_第10页
第10页 / 共41页
EDA技术复习题要点.docx_第11页
第11页 / 共41页
EDA技术复习题要点.docx_第12页
第12页 / 共41页
EDA技术复习题要点.docx_第13页
第13页 / 共41页
EDA技术复习题要点.docx_第14页
第14页 / 共41页
EDA技术复习题要点.docx_第15页
第15页 / 共41页
EDA技术复习题要点.docx_第16页
第16页 / 共41页
EDA技术复习题要点.docx_第17页
第17页 / 共41页
EDA技术复习题要点.docx_第18页
第18页 / 共41页
EDA技术复习题要点.docx_第19页
第19页 / 共41页
EDA技术复习题要点.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EDA技术复习题要点.docx

《EDA技术复习题要点.docx》由会员分享,可在线阅读,更多相关《EDA技术复习题要点.docx(41页珍藏版)》请在冰点文库上搜索。

EDA技术复习题要点.docx

EDA技术复习题要点

这是一份vhdl的复习题,考试题大多数都来自此处,

一、EDA名词解释

1、ASIC:

专用集成电路(ApplicationSpecificIntegratedCircuits)

2、EDA:

电子设计自动化(ElectronicDesignAutomation)

3、PROM:

可编程只读存储器(ProgrammableReadMemory)

4、IP:

知识产权核(IntellectualProperty)

5、SOC:

片上系统(SystemOnChip)

6、VHDL:

超高速集成电路硬件描述语言(VHSICHardwareDescriptionLanguage)。

7、RTL:

寄存器传输级(RegisterTransportLevel)

8、SOPC:

可编程片上系统(SystemOnProgrammableChip)

9、PLD:

可编程逻辑器件(ProgrammableLogicArray)

10、GAL:

通用阵列逻辑(GeniricArrayLogic)

11、FPGA:

现场可编程门阵列(FieldProgrammableGateArray)

12、CPLD:

复杂可编程逻辑器件(ComplexProgrammableLogicDevice)

二、简答题

1、简述VHDL程序的基本结构。

库、程序包、实体、结构体、配置

2、子程序分为那两类,其结构为什么。

子程序有两种类型,即过程(PROCEDURE)和函数(FUNCTION)。

FUNCTION函数名(参数表)RETURN数据类型--函数首

FUNCTION函数名(参数表)RETURN数据类型IS--函数体

[说明部分]

BEGIN

顺序语句;

ENDFUNCTION函数名;

PROCEDURE过程名(参数表)--过程首

PROCEDURE过程名(参数表)IS--过程体

[说明部分]

BIGIN

顺序语句;

ENDPROCEDURE过程名;

3、信号与变量的赋值有何区别?

信号延时赋值,变量立即赋值;

信号的代入使用<=,变量的代入使用:

=;

信号在实际的硬件当中有对应的连线,变量没有

4、可编程器件分为哪些类?

答:

一类是集成度较低的,早期出现的PROM、PLD、PAL、GAL,可用的逻辑门数大约在500门以下,称为简单PLD。

另一类是芯片集成度较高的,如现在大量使用的CPLD和FPGA器件,称为复杂PLD。

5、CASE语句使用当中的注意事项。

(1)条件句中的选择值必在表达式的取值范围内。

(2)除非所有条件句中的选择值能完整覆盖CASE语句中表达式的取值,否则最末一个条件句中的选择必须用"OTHERS”表示,它代表己给的所有条件句中未能列出的其它可能的取值。

关键词OTHERS只能出现一次,目只能作为最后一种条件取值。

使用OTHERS的目的是为了使条件句中的所有选择值能涵盖表达式的所有取值,以免综合器会插入不必要的锁存器。

这一点对于定义为STD_LOGIC和STD_LOGIC_VECTOR数据类型的值尤为重要,因为这些数据对象的取值除了1和0以外,还可能有其它的取值,如高阻态Z、不定态X等。

(3)CASE语句中每一条件句的选择值只能出现一次,不能有相同选择值的条件语句出现。

(4)CASE语句执行中必须选中,目只能选中所列条件语句中的一条。

这表明CASE语句中至少要包含一个条件语句。

6、赋值语句分哪些类,分别写出一句赋值语句。

信号赋值语句,S<=

变量赋值语句,V≔

7、数据对象有哪些种,分别写出定义这些数据对象的一般表述格式。

Constant(常量)在程序中不可以被赋值

Variable(变量)在程序中可以被赋值(用“:

=”),赋值后立即变化为新值。

Signal(信号)在程序中可以被赋值(用“<=”),但不立即更新,当进程挂起后,才开始更新。

8、简述进程语句的使用要点?

[进程名:

]

process[(触发信号列表)]

[定义语句;]

begin

[串行处理语句sequentialstatement;]

endprocess

PROCESS...ENDPROCESS

9、写出VHDL常用的顺序语句的名称。

赋值语句

流程控制语句

等待语句

子程序调用语句

返回语句

空操作语句

10、VHDL语言中的逻辑操作符有那些?

逻辑运算符AND、OR、NAND、NOR、XOR、XNOR及NOT

11、使用原理图输入设计功能的优势何优点?

与传统的数字电路实验相比,Quartus提供原理图设计功能具有不可比拟的优势和先进性:

设计者不必具备许多诸如编程技术、硬件描述语言等知识就能迅速设计入门,完成大规模的电路系统设计

能进行任意层次的数字系统设计(传统的数字电路实验只能完成单一层次的设计);

能对系统中的任一层次,或任一元件的功能进行精确的时序仿真

通过时序仿真,能迅速定位电路系统的错误所在,并随时纠正。

能对设计方案进行随时更改,并储存设计工程中所有电路和测试文件入档;

通过编译和下载,能在FPGA或CPLD上对设计项目随时进行硬件测试验证;

如果使用FPGA和配置编程方式,将不会有损坏和损耗的问题

符合现代电子设计技术规范。

12、VHDL的操作符有那几大类?

每一类的操作符分别是什么?

每一类操作符可以对那些数据进行操作(运算)?

在VHDL中有四类操作符即逻辑操作符(LogicalOperator)、关系操作符(RelationalOperator)、算术操作符(ArithmeticOperator)和符号操作符(SignOperator)。

前三类操作符是完成逻辑和算术运算的最基本的操作符单元。

13、标准逻辑位数据类型常用的数值有哪几种?

'U'--Uninitialized未初始化的

'X'--ForcingUnknown强未知的

'0'--Forcing0强0

'1'--Forcing1强1

'Z'--HighImpedance高阻态

'W'--WeakUnknown弱未知的

'L'--Weak0弱0

'H'--Weak1弱1

'-'--Don'tcare忽略

14、在VHDL语言中常见的数据类型有那些?

VHDL中的数据类型可以分成四大类。

标量型(ScalarType)

复合类型(CompositeType)

存取类型(AccessType)

文件类型(FilesType)

15、实体部分的端口模式有四个类型。

IN模式:

IN定义的通道确定为输入端口,并规定为单向只读模式,可以通过此端口将变量(Variable)信息或信号(Signal)信息读入设计实体中。

OUT模式:

OUT定义的通道确定为输出端口,并规定为单向输出模式,可以通过此端口将信号输出设计实体,或者说可以将设计实体中的信号向此端口赋值。

INOUT模式:

INOUT定义的通道确定为输入输出双向端口,即从端口的内部看,可以对此端口进行赋值,也可以通过此端口读入外部的数据信息;而从端口的外部看,信号既可以从此端口流出,也可以向此端口输入信号。

INOUT模式包含了IN,OUT和BUFFER二种模式,因此可替代其中任何一种模式,但为了明确程序中各端口的实际任务,一般不作这种替代。

BUFFER模式:

BUFFER定义的通道确定为具有数据读入功能的输出端口,它与双向端口的区别在于只能接受一个驱动源。

16、VHDL语句中顺序描述语句有哪几种?

赋值语句

流程控制语句

等待语句

子程序调用语句

返回语句

空操作语句

17、用WAIT语句设置4种不同的条件分别是什么?

对于不同的结束挂起条件的设置,WAIT语句有以下四种不同的语句格式。

WAIT;--第一种语句格式

WAITON信号表;--第二种语句格式

WAITUNTIL条件表达式;--第三种语句格式

WAITFOR时间表达式;--第四种语句格式,超时等待语句

18、常用的if语句有哪几种?

写出其书写格式。

A.门闩

IF条件句Then--第一种IF语句结构

顺序语句

ENDIF

B.二选一

IF条件句Then--第二种IF语句结构

顺序语句

ELSE

顺序语句

ENDIF

C.多选择

IF条件句Then--第三种IF语句结构

顺序语句

ELSIF条件句Then

顺序语句

...

ELSE

顺序语句

ENDIF

D.IF的嵌套

IF条件句Then

IF条件句Then

...

ENDIF

ENDIF

19、如何描述时钟上升沿和下降沿?

时钟脉冲的上升沿的条件可以写为:

IFclock_signal=current_valueANDclock_signal’LAST_VALUEANDclock_signal’EVENT

也可以简写为:

IFclock_signal=clock_signal’EVENTANDcurrent_value

时钟脉冲的下降沿的条件可以写为:

IFclock_signal=current_valueANDclock_signal’LAST_VALUEANDclock_signal’EVENT

20、指出信号和变量有哪些区别?

简单的说,信号是全局的,用于结构体中并行语句间数据流的传递;变量则是局部的,他主要用于单个进程中中间变量的存储.

主要用于对暂时数据进行局部存储。

临时数据,没有物理意义只能在Process和Function中定义,并只在其内部有效要使其全局有效,先转换为Signal。

用:

=进行赋值

variableresult:

std_logic:

='0';

变量说明的格式:

VARIABLE变量名:

数据类型约束条件:

=表达式;

例:

VARIABLEX,Y:

INTEGER;

VARIABLEC:

INTEGERRANGE0TO255:

=10;(表示变量C的数据类型是整型,变量范围从0到255,初始值为10。

变量只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。

在仿真过程中,它不像信号那样,到了规定的仿真时间才进行赋值,变量是立即生效的。

信号是抽象的电子电路内部硬件连接。

它除了没有数据流动方向说明以外,其它性质几乎和前面所述的端口概念一致。

信号通常在构造体、包集合和实体内说明。

信号说明的格式:

SIGNAL信号名;数据类型约束条件:

=表达式;

例:

SIGNALa,b,c:

STD_LOGIC;

SIGNALCOUNT_2:

STD_LOGIC_VECTOR(1DOWNTO0);

SIGNALS_CLK:

BIT:

='0';

信号(Signals)

代表连线,Port也是一种信号。

没有方向性,可给它赋值,也可当作输入

在Entity中和Architecture中定义

设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。

用<=进行赋值。

信号和变量值的代入不仅形式不同,而且其操作过程也不同。

在变量的赋值语句中,该语句一旦被执行,其值立即被赋予变量。

在执行下一条语句时,该变量的值就为上一句新赋的值。

变量赋值符为“:

=”。

信号代入语句采用“<=”代入符,该语句即使被执行也不会使信号立即发生代入。

下一条语句执行时,仍使用原来的信号值。

由于信号代入语句是同时进行处理的,因此,实际代入过程和代入语句的处理是分开进行的。

21、信号赋值语句在什么情况下作为并行语句?

在什么情况下作顺序语句?

信号赋值和变量赋值符号分别是什么?

两种赋值符号有什么区别?

信号赋值语句在进程外作并行语句,并发执行,与语句所处的位置无关。

信号赋值语句在进程内或子程序内做顺序语句,按顺序执行,与语句所处的位置有关。

信号赋值符号为“<=”变量赋值用“:

=”。

信号赋值符号用于信号赋值动作,不立即生效。

变量,赋值符号用于变量赋值动作,立即生效。

22、进程的敏感信号表指的是什么?

简述敏感信号表在进程中的作用?

进程的“敏感信号表”也称敏感表,是进程的激活条件,可由一个或多个信号组成,各信号间以“,”号分隔。

当敏感信号表中的任一个信号有事件发生,即发生任意变化,此时,进程被激活,进程中的语句将从上到下逐句执行一遍,当最后一条语句执行完毕之后,进程即进入等待挂起状态,直到下一次敏感表中的信号有事件发生,进程再次被激活,如此循环往复。

23、什么是库、程序包、子程序、过程调用和函数调用?

库和程序包用来描述和保存元件、类型说明和子程序等,以便在其它设计中通过其目录可查询、调用。

子程序由过程和函数组成。

在子程序调用过程中,过程能返回多个变量,函数只能返回一个变量。

若子程序调用的是一个过程,就称为过程调用,若子程序调用的是一个函数,则称为函数调用。

过程调用、函数调用都是子程序调用。

24、简述WHEN_ELSE条件信号赋值语句和IF_ELSE顺序语句的异同。

答:

WHEN_ELSE条件信号赋值语句中无标点,只有最后有分号;必须成对出现;是并行语句,必须放在结构体中。

IF_ELSE顺序语句中有分号;是顺序语句,必须放在进程中。

三、综合题

1、完成

A.解释带有下划线的语句。

B.画出该程序的原理图符号。

C.说明该程序逻辑功能。

D.改用WITH_SELECT_WHEN语句编写下列程序。

Libraryieee;

Useieee.std_logic_1164.all;定义元件库

entityqk_11is

port(a,b,c,d,en:

instd_logic;

s:

instd_logic_vector(1downto0);输入信号s是两位的输入总线

op:

outstd_logic);

endqk_11;

architecturear_1ofqk_11is

signalf:

std_logic_vector(2downto0);

begin

f<=en&s;将输入信号en和s连接赋值给f

process(f)敏感信号f的变化将启动进程process

begin

casefis

when"100"=>op<=a;

when"101"=>op<=b;

when"110"=>op<=c;

whenothers=>op<=d;其他情况,将输入信号d赋值给op

endcase;

endprocess;

endar_1;

逻辑功能是:

带有使能端en的四选一数据选择器。

用WITH_SELECT_WHEN语句编写上述程序:

Libraryieee;

Useieee.std_logic_1164.all;

entityqk_11is

port(a,b,c,d,en:

instd_logic;

s:

instd_logic_vector(1downto0);

op:

outstd_logic);

endqk_11;

architecturear_1ofqk_11is

signalf:

std_logic_vector(2downto0);

begin

f<=en&s;

withfselect

op<=awhen"100",

bwhen"101",

cwhen"110",

dwhenothers;

endar_1;

2、以下是一个模为24(0~23)的8421BCD码加法计数器VHDL描述,请补充完整

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYtbIS

PORT(CLK:

INSTD_LOGIC;

SHI,GE:

OUTINTEGERRANGE0TO9);

END;

ARCHITECTUREbhvOFtbIS

SIGNALSHI1,GE1:

INTEGERRANGE0TO9;

BEGIN

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'then

IFGE1=9THEN

GE1<=0;

SHI1<=SHI1+1;

ELSIFSHI1=2ANDGE1=3THEN

SHI1<=0;

GE1<=0;

ELSE

GE1<=GE1+1;

ENDIF;

ENDIF;

ENDPROCESS;

GE<=GE1;

SHI<=SHI1;

ENDbhv;

3、下面程序是参数可定制带计数使能异步复位计数器的VHDL描述,试补充完整。

--N-bitUpCounterwithLoad,CountEnable,and

--AsynchronousReset

libraryieee;

useIEEE.std_logic_1164.all;

useIEEE.std_logic_unsigned.all;

useIEEE.std_logic_arith.all;

entitycounter_nis

generic(width:

integer:

=8);

port(data:

instd_logic_vector(width-1downto0);

load,en,clk,rst:

instd_logic;

q:

outstd_logic_vector(width-1downto0));

endcounter_n;

architecturebehaveofcounter_nis

signalcount:

std_logic_vector(width-1downto0);

begin

process(clk,rst)

begin

ifrst='1'then

count<=(others=>‘0’);――清零

elsifclk’eventandclk=‘1’then――边沿检测

ifload='1'then

count<=data;

elsifen='1'then

count<=count+1;

endif;

endif;

endprocess;

q<=count;

endbehave;

4、补全下列六进制计数器cnt6程序(10分)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYcnt6IS

PORT(reset,en,clk:

INSTD_LOGIC;

carry:

OUTSTD_LOGIC;

q:

OUTSTD_ULOGIC_VECTOR(2DOWNTO0));

ENDcnt6;

ARCHITECTURErtlOFcnt6IS

SIGNALqs:

STD_LOGIC_VECTOR(2DOWNTO0);

SIGNALca:

STD_LOGIC;

BEGIN

PROCESS(clk)

VARIABLEq6:

INTEGER;

BEGIN

IF(clk'EVENTANDclk='1')THEN

ENDIF;

qs<=CONV_STD_LOGIC_VECTOR(q6,3);

q<=TO_STDULOGICVECTOR(qs);

ENDPROCESS;

PROCESS(ca,en)

BEGIN

carry<=caANDen;

ENDPROCESS;

ENDrtl;

5、补全以下二选一VHDL程序(本题10分)

Entitymuxis

port(d0,d1,sel:

inbit;

q:

outBIT);

endmux;

architectureconnectofMUXis

signaltmp1,TMP2,tmp3:

bit;

begin

cale:

block

begin

tmp1<=d0andsel;

tmp2<=d1and(notsel)

tmp3<=tmp1andtmp2;

q<=tmp3;

endblockcale;

endCONNECT;

6、根据下表填写完成一个3-8线译码器的VHDL程序(10分)。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYdecoder_3_to_8IS

PORT(a,b,c,g1,g2a,g2b:

INSTD_LOGIC;

y:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDdecoder_3_to_8;

ARCHITECTURErtlOFdecoder_3_to_8IS

SIGNALindata:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

indata<=c&b&a;

PROCESS(indata,g1,g2a,g2b)

BEGIN

IF(g1='1'ANDg2a='0'ANDg2b='0')THEN

CASEindataIS

WHEN"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";

WHENOTHERS=>y<="XXXXXXXX";

ENDCASE;

ELSE

y<="11111111";

ENDIF;

ENDPROCESS;(16)

ENDrtl;

7、填写完成一个8-3线编码器的VHDL程序(16分)。

Libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entityeight_triis

port(

b:

instd_logic_vector(7downto0);

en:

instd_logic;

y:

outstd_logic_vector(2downto

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2