1 pld期末复习题试题Word下载.docx
- 文档编号:3041962
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:18
- 大小:25.89KB
1 pld期末复习题试题Word下载.docx
《1 pld期末复习题试题Word下载.docx》由会员分享,可在线阅读,更多相关《1 pld期末复习题试题Word下载.docx(18页珍藏版)》请在冰点文库上搜索。
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语句和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pld期末复习题试题 pld 期末 复习题 试题