EDA-Verilog-HDL期末复习题总结必过.docx
《EDA-Verilog-HDL期末复习题总结必过.docx》由会员分享,可在线阅读,更多相关《EDA-Verilog-HDL期末复习题总结必过.docx(16页珍藏版)》请在冰点文库上搜索。
选择题
1.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述
中,正确的是(C)。
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。
2.不完整的IF语句,其综合结果可实现(A)
A.时序逻辑电路 B.组合逻辑电 C.双向电路 D.三态控制电路
3.综合是EDA设计流程的关键步骤,在下面对综合的描述中,(D)是错误的。
A.综合就是把抽象设计层次中的一种表示转化成另一种表示的过程;
B.综合就是将电路的高级语言转化成低级的,可与FPGA/CPLD的基本结构相映射的网表文件;
C.为实现系统的速度、面积、性能的要求,需要对综合加以约束,称为综合约束;
D.综合可理解为一种映射过程,并且这种映射关系是唯一的,即综合结果是唯一的。
4.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是(C)。
A. FPGA全称为复杂可编程逻辑器件;
B. FPGA是基于乘积项结构的可编程逻辑器件;
C. 基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D. 在Altera公司生产的器件中,MAX7000系列属FPGA结构。
5.以下关于状态机的描述中正确的是(B)
A.Moore型状态机其输出是当前状态和所有输入的函数
B.与Moore型状态机相比,Mealy型的输出变化要领先一个时钟周期
C.Mealy型状态机其输出是当前状态的函数
D.以上都不对
6.目前应用最广泛的硬件描述语言是(B)。
A.VHDL
B.VerilogHDL
C.汇编语言
D.C语言
7.一模块的I/O端口说明:
“input[7:
0]a;”,则关于该端口说法正确的是(A)。
A.输入端口,位宽为8
B.输出端口,位宽为8
C.输入端口,位宽为7
D.输出端口,位宽为7
8.基于EDA软件的FPGA/CPLD设计流程为:
原理图/HDL文本输入→综合
→_____→→适配→编程下载→硬件测试。
正确的是(B)。
①功能仿真②时序仿真③逻辑综合④配置⑤分配管脚
A.③① B.①⑤ C.④⑤ D.④②
9.下列标识符中,(A)是不合法的标识符。
A.9moonB.State0C.Not_Ack_0D.signall
10.下列语句中,不属于并行语句的是:
(D)
A.过程语句 B.assign语句 C.元件例化语句 D.case语句
11.已知“a=1’b1;b=3'b001;”那么{a,b}=(C)
(A)4'b0011(B)3'b001(C)4'b1001(D)3'b101
12.在verilog中,下列语句哪个不是分支语句?
(D)
(A)if-else(B)case(C)casez(D)repeat
13.在verilog语言中整型数据在默认情况与(C)位寄存器数据在实际意义上是相同的。
(A)8 (B)16 (C)32 (D)64
14.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是(C)
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。
15.请根据以下两条语句的执行,最后变量A中的值是(A)
reg[7:
0]A;
A=2'hFF;
A.8'b0000_0011 B.8'h03C.8'b1111_1111 D.8'b11111111
16.下列描述中采用时钟正沿触发且reset异步下降沿复位的代码描述是(C)
A、always@(posedgeclk,negedgereset)
if(reset)
B、always@(posedgeclk,reset)
if(!
reset)
C、always@(posedgeclk,negedgereset)
if(!
reset)
D、always@(negedgeclk,posedgereset)
if(reset)
17.关于过程块以及过程赋值描述中,下列正确的是(A)
A、在过程赋值语句中表达式左边的信号一定是寄存器类型;
B、过程块中的语句一定是可综合的;
C、在过程块中,使用过程赋值语句给wire赋值不会产生错误;
D、过程块中时序控制的种类有简单延迟、边沿敏感和电平敏感。
18.Verilog语言与C语言的区别,不正确的描述是(C)
A、Verilog语言可实现并行计算,C语言只是串行计算;
B、Verilog语言可以描述电路结构,C语言仅仅描述算法;
C、Verilog语言源于C语言,包括它的逻辑和延迟;
D、Verilog语言可以编写测试向量进行仿真和测试。
19.11.下列模块的例化正确的是(C)。
A.Mydesigndesign(sin(sin),sout(sout));
B.Mydesigndesign(.sin(sin),.sout(sout));
C.Mydesigndesign(.sin(sin),.sout(sout););
D.Mydesigndesign(.sin(sin);.sout(sout));
20.下列关于VerilogHDL语言中模块的例化说法错误的是(B)。
A.在引用模块时,有些信号要被输入到引用模块中,有些信号要从引用模块中输出
B.在引用模块时,必须严格按照模块定义的端口顺序来连接
C.在引用模块时可以用“.”符号,表明原模块是定义时规定的端口名,用端口名和被引用模块的端口相对应,提高程序的可读性和可移植性
D.在语句“Mydesigndesign(.port1(port1),.port2(port2));”中,被引用的模块为Mydesign模块
21.下列VerilogHDL语言中寄存器类型数据定义与注释矛盾的是(D)。
A.reg[3:
0]sat//sat为4位寄存器
B.regcnt//cnt为1位寄存器
C.reg[0:
3]mymem[0:
63]//mymem为64个4位寄存器的数组
D.reg[1:
5]dig//dig为4位寄存器
22.下列关于非阻塞赋值运算方式(如b<=a;)说法错误的是(B)。
A.块结束后才完成赋值操作
B.b的值立刻改变
C.在编写可综合模块时是一种比较常用的赋值方式
D.非阻塞赋值符“<=”与小于等于符“<=”意义完全不同,前者用于赋值操作,
后者是关系运算符,用于比较大小。
23.下列关于阻塞赋值运算方式(如b=a;)说法错误的是(A)。
A.赋值语句执行完后,块才结束
B.b的值在赋值语句执行完后立刻就改变的
C.在沿触发的always块中使用时,综合后可能会产生意想不到的结果
D.在“always”模块中的reg型信号都采用此赋值方式
24.在下列VerilogHDL运算符中,属于三目运算符的是(C)。
A.&&
B.!
==
C.?
:
D.===
25.当a<0时,s的值是(C)。
assigns=(a>=2)?
1:
(a<0)?
2:
0;
A.0
B.1
C.2
D.其他
26.在VerilogHDL语言中的位拼接运算符是(A)。
A.{} B.<> C.() D.''
27.下面语句中,信号a会被综合成(B)。
reg[5:
0]a;
always@(posedgeclk)
if(ss>10)
a<=20;
elseif(ss>15)a<=30;
A.寄存器
B.触发器
C.连线资源
D.其他
28.下列程序段中无锁存器的是(C)。
B.always@(alord)
begin
if(al)q<=d;if(!
al)q<=!
d;
end
A.always@(alord)
begin
if(al)q<=d;
end
D.always@(sel[1:
0]oraorb)
case(sel[1:
0])
2'b00:
q<=a;
2'b11;q<=b;
Endcase
C.always@(alord)
begin
if(al)
q<=d;
else
q<=0;
end
29.程序段如下:
begin:
reg[7:
0]tem;
count=0;
tem=rega;
while(tem)
begin
if(tem[0])count=count+1;
tem=tem>>1;
end
end
如果rega的值为8'b10101011,则程序结束后,count的值是()。
A.4
B.5
C.6
D.7
30.多路选择器简称多路器,它的输入输出端口情况是()。
A.多输入,多输出
B.多输入,单输出
C.单输入,多输出
D.单输入,单输出
填空题
1.用EDA技术进行电子系统设计的目标是最终完成ASIC的设计与实现。
2.可编程器件分为FPGA和CPLD。
3.随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于VerilogHDL
4.设计当中。
5.目前国际上较大的PLD器件制造公司有Altera和Xilinx公司。
6.完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。
7.阻塞性赋值符号为=,非阻塞性赋值符号为<=。
8.有限状态机分为Moore和Mealy两种类型。
9.EDA缩写的含义为电子设计自动化(ElectronicDesignAutomation)
10.状态机常用状态编码有二进制、格雷码和独热码。
11.VerilogHDL中任务可以调用其他任务和函数。
12.系统函数和任务函数的首字符标志为$,预编译指令首字符标志为#。
13.可编程逻辑器件的优化过程主要是对速度和资源的处理过程。
14.大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。
15.IEEE标准的硬件描述语言是verilogHDL和VHDL。
16.Verilog语言规定的两种主要的数据类型分别是wire(或net)和reg。
程序模块中输入,输出信号的缺省类型为wire(或net)。
17.Verilog语言规定了逻辑电路中信号的4种状态,分别是0,1,X和Z。
其中0表示低电平状态,1表示高电平状态,X表示不定态(或未知状态),Z表示高阻态。
18.块语句有两种,一种是begin-end语句,通常用来标志顺序执行的语句;一种是fork-join语句,通常用来标志并行执行的语句。
19.写出表达式以实现对应电路的逻辑功能
20.下面两段代码中信号in,q1,q2和q3的初值分别为0,1,2和3,那么经过1个时钟周期后,左侧程序中q3的值变成0,右侧程序中q3的值变成2。
名词解释
1.EDA
2.ASIC专用集成电路
3.RTL寄存器传输级
4.FPGA现场可编程门阵列
5.SOPC可编程片上系统
6.CPLD复杂可编程逻辑器件
7.LPM参数可定制宏模块库
8.EDA电子设计自动化
9.IEEE电子电气工程师协会
10.IP知识产权核
11.ISP在系统可编程
12.LUT:
查找表
13.HDL:
硬件描述语言
14.RTL:
寄存器传输逻辑
简答题
1.简要说明仿真时阻塞赋值与非阻塞赋值的区别。
非阻塞(non-blocking)赋值方式(b<=a):
b的值被赋成新值a的操作,并不是立刻完成的,而是在块结束时才完成;
块内的多条赋值语句在块结束时同时赋值;
硬件有对应的电路。
阻塞(blocking)赋值方式(b=a):
b的值立刻被赋成新值a;
完成该赋值语句后才能执行下一句的操作;
硬件没有对应的电路,因而综合结果未知。
2.简述有限状态机FSM分为哪两类?
有何区别?
有限状态机的状态编码风格主要有哪三种?
FSM的三段式描述风格中,三段分别描述什么?
根据内部结构不同可分为摩尔型Moore状态机和米里型Mearly状态机两种。
摩尔型状态机的输出只由当前状态决定,而次态由输入和现态共同决定;米里型状态机的输出由输入和现态共同决定,而次态也由输入和现态决定。
状态编码主要有三种:
连续二进制编码、格雷码和独热码。
3.VerilogHDL语言进行电路设计方法有哪几种
①自上而下的设计方法(Top-Down)
②自下而上的设计方法(Bottom-Up)
③综合设计的方法
4.简述moore状态机和mealy状态机的区别
答:
从输出的时序上看,Mealy机的输出是当前状态和所有输入信号的函数,它的输出是在输入变化后立即发生的。
Moore机的输出则仅为当前状态的函数,在输入发生变化时还必须等待时钟的到来,时钟使状态发生变化时才导致输出的变化。
Moore型状态机:
次态=f(现状,输入),输出=f(现状);
Mealy型状态机:
次态=f(现状,输入),输出=f(现状,输入);
5.简述FPGA内部主要结构及其功能
答:
FPGA由6部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等。
大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与I/O物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。
查找表完成纯组合逻辑功能。
查找表完成纯组合逻辑功能。
嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。
布线资源连通FPGA内部所有单元。
6.简述基于数字系统设计流程包括哪些步骤?
包括五个步骤:
⑴、设计输入:
将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行
语法或逻辑检查,通过表示输入完成,否则反复检查直到无任何错误。
⑵、逻辑综合:
将较高层的设计描述自动转化为较低层次描述的过程,包括行为综合,
逻辑综合和版图综合或结构综合,最后生成电路逻辑网表的过程。
⑶、布局布线:
将综合生成的电路网表映射到具体的目标器件中,并产生最终可下载文件的过程。
⑷、仿真:
就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证设计并排除错误
的过程,包括功能仿真和时序仿真。
⑸、编程配置:
将适配后生成的编程文件装入到PLD器件的过程,根据不同器件实现编程或配置。
7.简述CPLD和FPGA主要区别。
答:
CPLD:
主要逻辑阵列块、宏单元、扩展乘积项和可编程连线阵列构成。
程序掉电不丢失。
FPGA:
FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM,程序掉电丢失,需重新加载。
8.EDA设计的基本设计过程。
答:
图形输入HDL;文本输入;综合;适配;时序仿真与功能仿真;编程下载;硬件测试.
9.解释什么是功能仿真?
综合
答:
是直接对HDL、原理图描述或其他描述形式的逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求。
仿真过程可不涉及任何具体器件的硬件特性。
10.简述Verilog描述的状态机的一般结构包含哪几个部分。
答:
说明部分、主控时序进程、主控组合进程、辅助进程。
(1)说明部分:
使用parameter定义系统状态:
用于描述状态。
(2)主控时序进程:
负责状态机运转和在时钟驱动下负责状态转换的进程。
(3)主控组合进程:
根据外部输入的控制信号和当前状态的状态值确定下一状态(next_state)的取向。
(4)辅助进程:
用于配合状态机工作的组合进程或时序进程
11.简述VerilogHDL编程语言中函数与任务运用有什么特点?
函数和任务都能独立完成相应电路功能,通过在同一模块中的调用实现相应逻辑电路功能。
但它们又有以下不同:
⑴、函数中不能包含时序控制语句,对函数的调用,必须在同一仿真时刻返回。
而任务可以包含时序控制语句,任务的返回时间和调用时间可以不同。
⑵、在函数中不能调用任务,而任务中可以调用其它任务和函数。
但在函数中可以调用其它函数或函数自身。
⑶、函数必须包含至少一个端口,且在函数中只能定义input端口。
任务可以包含0个或任何多个端口,且可以定义input、output和inout端口。
⑷、函数必须返回一个值,而任务不能返回值,只能通过output或inout端口来传递执行结果。
12.简述FPGA与CPLD两种器件应用特点。
CPLD与FPGA都是通用可编程逻辑器件,均可在EDA仿真平台上进行数字逻辑电路设计,它们不同体现在以下几方面:
⑴FPGA集成度和复杂度高于CPLD,所以FPGA可实现复杂逻辑电路设计,而CPLD适合简单和低成本的逻辑电路设计。
⑵、FPGA内主要由LUT和寄存器组成,倾向实现复杂时序逻辑电路设计,而CPLD内主要由乘积项逻辑组成,倾向实现组合逻辑电路设计。
⑶、FPGA工艺多为SRAM、flash等工艺,掉电后内信息消失,所以该类型需外配存储器,而CPLD工艺多为EEPROM等工艺,掉电后信息不消失,所以不用外配存储器。
⑷、FPGA相对CPLD成本高,但都可以在内都镶嵌硬核和软核,实现片上系统功能。
13.画出下面程序综合出来的电路图。
always@(posedgeclk)
begin
q0<=~q2;
q1<=q0;
q2<=q1;
end
程序填空
1.下面是case语句编写的3-8译码器电路,将横线上的语句补上,使程序形成完整功能
moduledecoder38(sel,csout);
①
②
reg[7:
0]csout;
always@(③)
begin
case(④)
3'b000:
csout=8'b11111110;
3'b001:
csout=8'b11111101;
3'b010:
csout=8'b11111011;
3'b011:
csout=8'b11110111;
3'b100:
csout=8'b11101111;
3'b101:
csout=8'b11011111;
3'b110:
csout=8'b10111111;
3'b111:
csout=8'b01111111;
default:
csout=8'b11111110;
endcase
end
endmodule
①input[2:
0]sel;②output[7:
0]csout;③sel,csout④sel
2.下面是通过case语句实现四选一电路部分程序,将横线上的语句补上,使程序形成完整功能
modulemux41a(a,b,c,d,s1,s0,y);
inputa,b,c,d;
①
outputy;
②
always@(a,b,c,d,s1,s0)
begin:
MUX41
case(③)
2'b00:
y=a;
2'b01:
y=b;
2'b10:
y=c;
2'b11:
y=d;
④:
y=a;
endcase
end
endmodule
①inputs1,s0;②regy;③{s1,s0}④default
3.下面是通过循环语句实现程序,用以统计一个8位二进制数中含1的数量,将横线上的语句补上,使程序形成完整功能。
modulenum_1_e3_16(x,num);
①
output[3:
0]num;
reg[3:
0]num;
②
always@(③)
begin
num=0;
for(i=0;i<=7;i=i+1)
④
end
endmodule
①input[7:
0]x;②integeri;③x④if(x[i])num=num+1;
4.下面是程序功能是一个具有同步置1,异步清零0的D触发器。
端口说明
RST:
异步清零CLK:
时钟输入,SET:
同步置1,EN:
同步使能,D:
数据输入,Q:
数据输出
modulee5_3(RST,CLK,SET,EN,D,Q);
inputRST,CLK,SET,EN,D;
①
regQ;
always@(②)
begin
if(③)Q<=0;
elseif(EN)