VHDL复习资料.docx

上传人:b****5 文档编号:6912482 上传时间:2023-01-12 格式:DOCX 页数:12 大小:19.34KB
下载 相关 举报
VHDL复习资料.docx_第1页
第1页 / 共12页
VHDL复习资料.docx_第2页
第2页 / 共12页
VHDL复习资料.docx_第3页
第3页 / 共12页
VHDL复习资料.docx_第4页
第4页 / 共12页
VHDL复习资料.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

VHDL复习资料.docx

《VHDL复习资料.docx》由会员分享,可在线阅读,更多相关《VHDL复习资料.docx(12页珍藏版)》请在冰豆网上搜索。

VHDL复习资料.docx

VHDL复习资料

一.填空(每空1分,共20分)

1.MAX+plusII是ALTERA公司自己开发的EDAEDA工具软件。

2.VHDL设计实体的基本结构由  库 库  、程序包包集合   、 实体 实体  、结构体构造体(有称结构体)、配置配置   等部分构成。

3.在VHDL中最常用的库IEEEIEEE  标准库,最常用的包集合是1164STD-LOGIC-1164。

4.在VHDL的端口声明语句中,端口方向包括输入(in)、输出(out)BUFFER(输出、可内部使用、输入|输出(inout)、缓冲

和。

5.VHDL的顺序语句只能出现在进程(Process)进程过程procedure)、函数(Function)函数、过程中,是按程序书写顺序自上而下,一条一条地执行。

6.VHDL的块块(BLOCK)语句是并行语句结构,它的内部是由并行语句构成的

7.VHDL的变量(VARIABLE)是一种局部量,只能在进程进程、函数函数

和过程过程中声明和使用。

8.MAX+plusII支持文本、原理图、波形、符号编辑等不同的编辑方式。

9.MAX+plusII工具软件有功能、时序、仿真等功能。

10.MAX—PLUSⅡ的波形编辑文件分波形输入和波形仿真,它们的文件扩展名分别是WDF和SCF。

11.VHDL的实体声明部分指定了设计单元的输入输出端口,它是设计实体对外的通信界面,是外界可以看到的部分。

12.CPLD和FPGA的含义分别是复杂可编程逻辑器件,现场可编程门阵列。

13.在VHDL中,含WAIT语句的进程Process的括号不能再加敏感量,否则是非

法的.

14.VHDL的Process(进程)语句是由顺序语句顺序语句组成的,但其本身却是并发语句结构并行语句。

15.VHDL的子程序有函数函数和过程过程两种类型。

16.在VHDL中,标准逻辑位数据有0和1种逻辑值。

17.MAX—PLUSⅡ的仿真分功能仿真和时序仿真。

18.VHDL的变量(VARIABLE)是一个功能变量,只能在进程、函数和过程中声明和使用。

19.VHDL的数据对象包括常数、变量、信号和文件。

20.实体和结构体是设计实体的基本组成部分,它们可以构成最基本的VHDL程序。

20.VHDL语言的字符是以字母的下划线括起来的数字、字母和符号。

 

二.简答题(每题6分,共30分)

1.如何用VHDL语句描述时钟的下降沿和上升沿。

时钟上升沿ifclk‘eventandclk=“1”then

下降沿ifclk‘eventandclk=“0”then答:

在VHDL中用语句CLOCK´EVEVTANDCLOCK=´0´,表示检测CLOCK的下降沿。

在VHDL中用语句CLOCK´EVEVTANDCLOCK=´1´,表示检测CLOCK的下降沿。

2.在VHDL中的IEEE标准中,预定义的标准是逻辑位数据STD-LOGIC与BIT有何区别。

只有当端口说明为BIT时该端口的信号取值只能是二进制数“0”和“1”答:

在VHDL中的IEEE标准中,预定义的标准是逻辑位数据STD-LOGIC有9种逻辑值,而BIT只有二种值。

3.VHDL的信号(SIGNAL)与变量(VARIABLE)有什么的区别。

Signal可以在实体构造体等高层次环境中说明,对整个设计实体全局有效

Variable在进程子函数等低层次环境中说明,只在说明的区域中局部有效

答:

VHDL的信号(SIGNAL)是一种数值容器,不仅可以容纳当前值,也可以保持历史值。

VHDL的变量(VARIABLE)是一种局部量,只能在进程、函数和过程中声明和使用。

在VHDL中,目标变量是用:

=赋值,目标信号的赋值符号是〈=。

 

4.叙述一个四位加法器及仿真的全过程。

5.现有两个半加器,一个两输入或门,试画出一个全加器

答:

6.在一个构造体内,其执行语句的顺序有什么特点?

7.卫式BLOCK语句中的条件和PROCESS语句中的敏感量的区别是什么(顺序),它们的执行过程如何?

Block块头主要用于信号的映射及参数的定义、process并行执行进程语句

8.为层次式电路,各层次的功能模块在存盘时要注意什么问题?

(在同一路径的文件夹内)

9.在MAX—PLUSⅡ中一般连线与总线有什么区别,在使用总线时必须注意什么问题?

10、现有一个两输入异或门,一个两输入与门,试画出半加器。

S=A⊕B

11.硬件描述语言描述硬件电路的基本构成是什么?

数字系统的结构,行为和功能;

硬件描述语言设计数字;

电路逻辑电路的过程和方法

12.解释端口方向说明,IN、OUT、INOUT、BUFFER和LINRAGE的含义?

In:

输入型,信号从该端口进入实体;

out:

输出型,信号从实体内部经该端口输出

Inout:

输入输出型,信号既可以从该端口输入也可以输出

Buffer:

缓冲型,与out类似但在结构内部可作反馈

Linrage:

无指定方向,与任何方向的信号连接

13.数据类型BIT与STD-LOGIC,BIT_VECTOR与STD_LOGIC_VECTOR其共同点与不同点是什么?

Std-logic-vector:

标准逻辑适量

Std-logic:

标准逻辑位量

Bit:

为数据类型取值只能是:

“0”和“1”

Bit-vector:

位矢量,数据类型

三.分析题(共50分)

1.读懂下列程序,指出其完成什么功能?

(20分)

(1)libraryieee;

useieee.std_logic_1164.all;

entityaaais

port(a,b,c,d:

instd_logic;

y:

outstd_logic);

endaaa;

architectureaaa1ofaaais

begin

p1:

process(a,b,c,d)

variabletmp:

std_logic_vector(3downto0);

begin

tmp:

=a&b&c&d;

casetmpis

when″0000″=>y<=′1′;

when″0001″=>y<=′1′;

when″0010″=>y<=′1′;

when″0011″=>y<=′1′;

when″0101″=>y<=′1′;

when″0110″=>y<=′1′;

when″0111″=>y<=′1′;

when″1000″=>y<=′1′;

when″1001″=>y<=′1′;

when″1010″=>y<=′1′;

when″1011″=>y<=′1′;

when″1110″=>y<=′1′;

when″1111″=>y<=′0′;

whenothers=>y<=′x′;

endcase;

endprocessp1;

endaaa1;

与非门答:

四输入与非门电路

(2)libraryieee;

useieee.ste_logic_1164.all;

entityabcis

port(clk:

instd_logic;

r:

instd_logic;

d:

instd_logic_vector(3downto0);

q:

outstd_logic_vector(3downto0);

endabc;

architecturertlofabcis

signalq_temp:

std_logic_vector(3downto0);

begin

process(clk,r)

begin

if(r=′1′)then

q_temp<=″0000″;

elseif(clk′eventandclk=′1′)then

q_temp<=d;

endif;

q<=q_temp;

endprocess;

endrtl;

寄存器

(1)ENTITYabcIS

PORT(do,d1,y:

INBIT;

q:

OUTBIT);

ENDabc;

ARCHITECTUREconnectOFabcIS

BEGIN

Cale:

BLOCK

BEGIN

Tmp1<=d0ANDy;

Tmp2<=d1AND(NOTy);

Tmp3<=tmp1ORtmp2;

q<=tmp3;

ENDBLOCKcale;

ENDconnect;

二选一电路

(2)LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYparity_checkIS

PORT(a:

INSTD_LOGIC_VECTOR(7DOWNTO0);

y:

OUTSTD_LOGIC);

ENDparity_check;

ARCHITECTURErtlOFparity_checkIS

BEGIN

PROCESS(a)

VARIABLEtmp:

STD_LOGIC;

BEGIN

tmp:

="0";

FORiIN0TO7LOOP

tmp:

=tmpXORa(i);

ENDLOOP;

y<=tmp;

ENDPROCESS;

ENDrtl奇偶效应

(1)

ENTITYabcIS

PORT(do,d1:

INBIT;

x:

INBIT;

Q:

OUTBIT);

ENDabc;

ARCHITECTUREdataflowOFabcIS

BEGIN

Q<=(d0ANDx)OR(NOTxANDd1);

ENDdataflow;二选一的数据选择器

(2)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYAAAIS

PORT

(Clock:

INSTD_LOGIC;

CLKOUT:

OUTSTD_LOGIC);

END;

ARCHITECTUREBehaviorOFAAAIS

SIGNALClk:

STD_LOGIC;

BEGIN

PROCESS(Clock)

BEGIN

IFrising_edge(Clock)THEN

CLK<=NOTClk;

ENDIF;

ENDPROCESS;

Clkout<=Clk;

END;边沿触发器

答:

D触发器

2.下列程序是一个二选一电路,有四处错误,试指出并改正。

(10分)

ENTITYmuxIS

PROT(d0,d1,sel:

INBITBIT;

q:

OUTBITBIT);

ENDmux;

ARCHITECTUREconnectOFmuxIS(mux)

BEGIN

Cale:

PROCESS(d0,d1selSEL)

VARIABLEtmp1,tmp2,tmp3:

BIT;

BEGIN

Temp1:

=d0ANDsel;

Temp2:

=d1AND(NOTsel);

Temp3:

=tmp1ORtmp2;

Q:

<=tmp3;

(<=)

ENDPROCESS;

ENDconnect;

(3)ENTITYmuxIS

PROT(d0,d1,sel:

INBIT;

q:

OUTBIT);

ENDmux;

ARCHITECTUREconnectOFmuxIS

BEGIN

Cale:

PROCESS(d0,d1,sel)

VARIABLEtmp1,tmp2,tmp3:

BIT;

BEGIN

Temp1:

=d0ANDsel;

Temp2:

=d1AND(NOTsel);

Temp3:

=tmp1ORtmp2;

Q:

<=tmp3;

ENDPROCESS;

ENDconnect;

3、下列程序是2输入“或非”门电路,在空格中填上适当的语句(10分)

LIBRARYIEEEIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYnor2IS

PORT(a,b:

INSTD-LOGICINSTD_LOGIC;

y:

OUTSTD_LOGIC);

ENDnor2;

ARCHITECTUREnor2_2OFNOR2nor2IS

BEGIN

t2:

PROCESS(a,b)

VARIABLEcomb:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

Comb:

=a&b;

CASEcombIS

WHEN″00″=>y<=′1′;

WHEN″01″=>y<=′0′;

WHEN″10″=>y<=′0′;

WHEN″11″=>y<=′0′;

ENDCASECASE;

ENDPROCESSt2;

ENDnor2_2;

(2)LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYnor2IS

PORT(a,b:

INSTD_LOGIC;

y:

OUTSTD_LOGIC);

ENDnor2;

ARCHITECTUREnor2_2OFnor2IS

BEGIN

t2:

PROCESS(a,b)

VARIABLEcomb:

STD_LOGIC_VECTOR(1DOWNTO0);

BEGIN

Comb:

=a&b;

CASEcombIS

WHEN″00″=>y<=′1′;

WHEN″01″=>y<=′0′;

WHEN″10″=>y<=′0′;

WHEN″11″=>y<=′0′;

ENDCASE;

ENDPROCESSt2;

ENDnor2_2;

2.下列程序是四选一电路,在空格中填上适当的语句。

(10分)

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYmux4IS

PORT(i0,i1,i2,i3,a,b:

INSTD-LOGIC;

Q:

OUTSTD_LOGIC);

ENDmux4;

ARCHITECTUREbehavOFmux4IS

SIGNALsel:

INTEGER;

BEGIN

WITHSSELECT

q<=i0AFTER10nsWHEN0,

i1AFTER10nsWHEN1,

i2AFTER10nsWHEN2,

i3AFTER10nsWHEN3,

′1′AFTER10nsWHENOTHERS;

sel<=0WHENa=′0′ANDb=′0′ELSE

1WHENa=′1′ANDb=′0′ELSE

2WHENa=′0′ANDb=′1′ELSE

3WHENa=′1′ANDb=′1′ELSE

4WHENOTHERS;

ENDbehav;

3.下列程序有四处错误,试指出并改正。

(10分)

ENTITYmuxIS

PROT(d0,d1,sel:

INBIT;

q:

OUTBIT);

ENDmux;

ARCHITECTUREconnectOFmuxIS

BEGIN

Cale:

PROCESS(d0,d1,sel)

VARIABLEtmp1,tmp2,tmp3:

BIT;

BEGIN

Temp1:

=d0ANDsel;

Temp2:

=d1AND(NOTsel);

Temp3:

=tmp1ORtmp2;

Q:

<=tmp3;

ENDPROCESS;

ENDconnect;

4.分析下列程序,指出其功能并说明其工作过程。

(10分)

libraryieee;

useieee.std_logic_1164.all;

entityxyzis

port(a,clk1:

instd_logic;

b:

outstd_logic);

endxyz;

architecturexyz1ofxyzis

signaltmp1:

std_logic;

begin

process(clk1,a)

variabletmp3,tmp2:

std_logic;

begin

ifclk1′eventandclk1=′0′then

tmp1<=a;

tmp2:

=tmp1;

tmp3:

=nottmp2;

endif;

b<=tmp1andtmp3andclk1;

endprocess;

endxyz1;(消除同步模块)

故当时钟脉冲下降沿到来时,变量tmp2和tmp3在赋值语句执行后立即分别得到新值:

tmp1和tmp2的非值,而输入信号a经过一定时延时赋值给信号tmp1实现消抖同步的功能

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

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1