1 pld期末复习题试题Word下载.docx

上传人:b****2 文档编号:3041962 上传时间:2023-05-01 格式:DOCX 页数:18 大小:25.89KB
下载 相关 举报
1 pld期末复习题试题Word下载.docx_第1页
第1页 / 共18页
1 pld期末复习题试题Word下载.docx_第2页
第2页 / 共18页
1 pld期末复习题试题Word下载.docx_第3页
第3页 / 共18页
1 pld期末复习题试题Word下载.docx_第4页
第4页 / 共18页
1 pld期末复习题试题Word下载.docx_第5页
第5页 / 共18页
1 pld期末复习题试题Word下载.docx_第6页
第6页 / 共18页
1 pld期末复习题试题Word下载.docx_第7页
第7页 / 共18页
1 pld期末复习题试题Word下载.docx_第8页
第8页 / 共18页
1 pld期末复习题试题Word下载.docx_第9页
第9页 / 共18页
1 pld期末复习题试题Word下载.docx_第10页
第10页 / 共18页
1 pld期末复习题试题Word下载.docx_第11页
第11页 / 共18页
1 pld期末复习题试题Word下载.docx_第12页
第12页 / 共18页
1 pld期末复习题试题Word下载.docx_第13页
第13页 / 共18页
1 pld期末复习题试题Word下载.docx_第14页
第14页 / 共18页
1 pld期末复习题试题Word下载.docx_第15页
第15页 / 共18页
1 pld期末复习题试题Word下载.docx_第16页
第16页 / 共18页
1 pld期末复习题试题Word下载.docx_第17页
第17页 / 共18页
1 pld期末复习题试题Word下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

1 pld期末复习题试题Word下载.docx

《1 pld期末复习题试题Word下载.docx》由会员分享,可在线阅读,更多相关《1 pld期末复习题试题Word下载.docx(18页珍藏版)》请在冰点文库上搜索。

1 pld期末复习题试题Word下载.docx

BUFFER是输出并向内部反馈。

也是实体的输出信号,但作输入用时,信号不是由

外部驱动,而是从反馈得到。

26.进程如何激活,敏感信号有何要求(注意事项)

当一个进程的敏感信号值发生变化时,该进程被激活。

或当无敏感信号列表时,可通过满足条件的WAIT语句来启动进程语句进程的敏感信号A:

是该进程描述的模块的输入信号。

B:

使用了敏感信号表的进程中不能含有任何等待语句。

27、何为函数与过程重载?

VHDL允许以相同的函数名定义函数,但要求函数中定义的操作数具有不同的数据类型,以便调用时用以分辨不同功能的同名函数。

同样名称的函数可以用不同的数据类型作为此函数的参数定义多次,此函数称为重载函数。

两个或两个以上具有相同的过程名和互不相同的参数及参数类型的过程称为重载过程。

28、什么是基于乘积项的可编程逻辑结构?

什么是基于查找表的可编程逻辑结构?

GAL、CPLD之类都是基于乘积项的可编程结构;

即包含有可编程与阵列和固定的或阵列的PAL(可编程阵列逻辑)器件构成。

FPGA(现场可编程门阵列)是基于查找表的可编程逻辑结构。

FPGA(Cyclone/CycloneII)系列器件主要由逻辑阵列块LAB、嵌入式存储器块(EAB)、I/O单元、嵌入式硬件乘法器和PLL等模块构成;

二、解释与分析程序(注:

些类题要求A、解释带有下划线的语句;

B、说明该程序逻辑功能;

C、回答部分问题,所以一定看懂程序每一句意思,弄清程序功能)

1、程序如下:

要求:

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

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

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

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)进程,敏感信号为clkrst

Ifrst=’0’then

Count<

=(others=>

’0’);

异步清零

Elsifrising_edge(clk)then上升沿

Ifen=’1’then计数控制端EN=1

Caseupis

When‘1’=>

count<

=count+1;

UP=1加法计数

Whenothers=>

count<

=count-1;

UP=0减法计数

Endcase;

Endif

Endif;

Endprocess;

Sum<

=count;

Cout<

=’1’whenen=’1’and((up=’1’andcount=7)or(up=’0’andcount=0))

else‘0’;

进位信号

Enda;

程序功能:

异步清零,同步计数的三位二进制可逆计数

补题:

3-5设计含有异步清零和计数使能的16位二进制加减可控计数器。

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT16IS

PORT(CLK,RST,EN:

INSTD_LOGIC;

CHOOSE:

INBIT;

SETDATA:

BUFFERINTEGERRANCE65535DOWNTO0;

COUT:

BUFFERINTEGERRANCE65535DOWNTO0);

ENDCNT16;

ARCHITECTUREONEOFCNT16IS

BEGIN

PROCESS(CLK,RST,SDATA)

VARIABLEQI:

STD_LOGIC_VECTOR(65535DOWNTO0);

BEGIN

IFRST='

1'

THEN--计数器异步复位

QI:

=(OTHERS=>

'

0'

);

ELSIFSET=’1’THEN-计数器一步置位

QI:

=SETDATA;

ELSIFCLK'

EVENTANDCLK='

THEN--检测时钟上升沿

IFEN=’1’THEN–检测是否允许计数

IFCHOOSE=’1’THEN--选择加法计数

=QI+1;

--计数器加一

ELSEQI=QI-1;

ENDIF;

ENDIF;

COUT<

=QI;

--将计数值向端口输出

ENDPROCESS;

ENDONE;

3-6、图3—18是一个含有上升沿触发的D触发器的时序电路,试写出此电路的VHDL设计

ENTITYMULTIIS

PORT(CL:

--输入选择信号

CLK0:

--输入信号

OUT1:

OUTSTD_LOGIC);

--输出端

ENDENTITY;

ARCHITECTUREONEOFMULTIIS

SIGNALQ:

STD_LOGIC;

PR01:

PROCESS(CLK0)

IFCLK‘EVENTANDCLK=’1’

THENQ<

=NOT(CLORQ);

ELSE

PR02:

OUT1<

=Q;

ENDARCHITECTUREONE;

ENDPROCESS;

(分3行写)

5-13设计8位左移移位寄存器,给出时序仿真波形

ENTITYSHFRT_LIS

PORT(CLK,LOAD:

DIN:

INSTD_LOGIC_VECTOR(7DOWNTO0);

QB:

END;

ARCHITECTURESHFRT_LOFSHFRT_LIS

PROCESS(CLK,LOAD)

VARIABLEREG8:

STD_LOGIC_VECTOR(7DOWNTO0);

IFCLK'

THEN

IFLOAD='

THENREG8:

=DIN;

ELSEREG8(7DOWNTO1):

=REG8(6DOWNTO0);

QB<

=REG8(0);

ENDSHFRT_L;

2、参考第三、五、九、十章

三、编程题

四、程序题(简单,不提供

2.用VHDL语言描述一个基本D触发器(6分)。

LIBRARY

IEEE;

ENTITYdff2IS

PORT(d,clk:

INSTDSTD_LOGIC;

q:

OUTSTD__LOGIC);

ENDdffe2;

ARCHITECTUREaOFdffe2IS

PROCESS(clk,d)

IFclk’eventANDclk=’1’THEN

q<

=d;

ENDa;

1、用VHDL语言对1位全加器进行描述

如图1位全加器是由二个一位半加器组成,其符号表示为右边的图即f_adder。

USEIEEE.STD.LOGIC_1164.ALL;

ENTITYf_adderIS

PORT(ain,bin,cin:

sum,cout:

ARCHITECTUREstrcOFadder_1bitsIS

COMPONENThalf_adder

PORT(a,b,:

INstd_LOGIC;

co,so:

OUTstd_logic);

ENDCOMPONENT;

SIGNALco,so,c1:

U0:

half_adderPORTMAP(ain,bin,so,co);

U1:

half_adderPORTMAP(so,cin,sum,c1);

Cout<

=coorc1;

Endstrc;

5-9设计一个求补码的程序,输入数据是一个有符号的8位二进制数。

//设计一个求补码的程序,输入数据是一个有符号的8位二进制数

moduleBinary_complement(a,b);

//二进制数补码

input[7:

0]a;

output[7:

0]b;

integeri;

reg[7:

0]d;

reg[6:

0]c;

always@(a)

begin

if(a[7]==1)

begin

for(i=0;

i<

7;

i=i+1)c[i]=!

a[i];

d[7:

0]={a[7],(c[6:

0]+7'

d1)};

end

elsed[7:

0]=a[7:

0];

end

assignb[7:

0]=d[7:

endmodule

2、带使能输入及同步清0的增1/减1的8位计数器

Entityup_downis

outstd_logic_vector(7downto0);

VGA:

outstd_logic_vector(3downto0);

End;

Architectureaofup_downis

std_logic_vector(7downto0);

constantcount_top:

std_logic_vector(7downto0):

=(others=>

'

VGA<

="

0001"

;

Process(clk,rst)

Begin

Ifrst='

then

Elsifrising_edge(clk)then

Ifen='

When'

=>

=notcount;

--LED低电平点亮,所以取反

='

whenen='

and((up='

andcount=count_top)or(up='

and

count=0))else'

End;

 

3、七段译码器

libraryIEEE;

useIEEE.std_logic_1164.all;

entityled7is

port(x:

instd_logic_vector(3downto0);

s:

outstd_logic_vector(6downto0));

endentity;

architecturebin27segofled7is

process(x)

casex(3downto0)is

when"

0000"

s<

1111110"

--0

0110000"

--1

0010"

1101101"

--2

0011"

1111001"

--3

0100"

0110011"

--4

0101"

1011011"

--5

0110"

1011111"

--6

0111"

1110000"

--7

1000"

1111111"

--8

1001"

1111011"

--9

1010"

1110111"

--A

1011"

0011111"

--b

1100"

1001110"

--c

1101"

0111101"

--d

1110"

1001111"

--E

1111"

1000111"

--F

whenothers=>

NULL;

endcase;

endprocess;

endarchitecture;

4、带使能输入、进位输出及同步清0的增1十进制计数器

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYcounterIS

PORT(clr,en,clk:

INSTD_LOGIC;

co:

OUTSTD_LOGIC;

Q:

OUTSTD_ULOGIC_VECTOR(3DOWNTO0);

VGA:

OUTSTD_ULOGIC_VECTOR(3DOWNTO0)

);

ENDcounter;

ARCHITECTUREcounter1OFcounterIS

SIGNALqs:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALca:

STD_ULOGIC;

PROCESS(clk)

VARIABLEq10:

INTEGER;

IF(rising_edge(clk))THEN

IF(clr='

)THEN

q10:

=0;

ELSIF(en='

)THEN

IF(q10=9)THEN

ca<

ELSIF(q10=8)THEN

=q10+1;

ELSE

qs<

=CONV_STD_LOGIC_VECTOR(q10,4);

Q<

=notTO_STDULOGICVECTOR(qs);

--LED底电平点亮,所以取反

co<

=not(caANDen);

ENDcounter1;

1、何为非完整条件语句?

举例说明。

比如在未满足if条件,又没有else明确指出其他条件时如何操作时,即在条件语句中没有对所有可能发生的条件给出对应的处理方式,这样就产生了不完整条件语句。

此时,VHDL综合器将引进一个时序元件保持当前状态值。

利用这种不完全条件语句的描述引进寄存器元件,从而构成时序电路的方式是VHDL描述时序电路最重要的途径。

例:

Ifa=’0000’then

b<

=’1111’

endif

2、子程序有几种类型,说明其具体格式。

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

过程的语句格式是:

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

PROCEDURE过程名(参数表)IS

[说明部分]

BIGIN--过程体

顺序语句;

ENDPROCEDURE过程名;

函数的语言表达格式如下:

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

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

[说明部分]

顺序语句;

ENDFUNCTION函数名;

3、举例说明类属说明与类属参数映射语句。

参数传递说明语句(类属参量说明)是一种常用参数的端口界面。

它为所说明的环境提供了一种静态信息通道,其类属值可以从外面通过参数传递说明语句中的类属参量进行重新设定。

类属说明的一般书写格式如下:

GENERIC([常数名:

数据类型[:

设定值]{;

常数名:

设定值]});

【例】

ENTITYAND2IS

GENERIC(RISEW:

TIME:

=1ns;

FALLW:

=1ns);

PORT(A1:

A0:

ZO:

OUTSTD_LOGIC);

ENDENTITYAND2

类属映射语句可用于设计从外部端口改变元件内部参数或结构规模的元件,或称类属元件,这些元件在例化中特别方便,在改变电路结构或元件升级方面显得尤为便捷。

其语句格式是:

GENERICMAP(类属表)。

6、给触发器复位的方法有哪两种?

如果时钟信号进程中用了敏感信号表,哪种复位方法要求把复位信号放在敏感表中?

同步复位:

在只有以时钟为敏感信号的进程中定义。

如:

process(clock_signal)

begin

if(clock_edge_condition)then

if(reset_condition)then

signal_out<

=reset_value;

else

=signal_in;

endif;

endprocess;

异步复位:

进程的敏感信号表中除时钟信号外,还有复位信号。

如:

process(reset_signal,clock_signal)

elsif(clock_edge_condition)then

7、说明EXIT和NEXT的区别

NEXT语句主要用在LOOP语句执行中进行有条件或无条件的转向控制,转向循环的开始处。

EXIT语句是循环退出语句,与NEXT语句的格式和操作功能非常相似,惟一的区别是NEXT语句是跳向LOOP语句的起始点,而EXIT语句则是跳向LOOP语句的终点。

8、说明OUT、INOUT、BUFFER异同点。

out:

输出型,只能在实体内部对其赋值。

Inout:

双向端口(输入输出型),既可读也可赋值。

Buffer:

输出缓冲型,与out相似,但可读并向内部反馈。

9、说明VHDL中变量与信号的区别,并写出其赋值形式。

VHDL中的信号和变量的区别就是,信号一定对应电路中的一个端口,而变量只是临时的中间值;

信号是全局变量,对它的赋值不是立即发生的,而是有一定的延迟。

而变量则是局部变量,它只能在进程中有用,对它的赋值是立即发生的,没有延迟的!

赋值符号也有区别的。

变量赋值目标:

=赋值源;

信号赋值目标:

<

10、说明IF语句和

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

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

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

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