FPGAVerilog试题西安电子科技大学Word版Word文档格式.docx
《FPGAVerilog试题西安电子科技大学Word版Word文档格式.docx》由会员分享,可在线阅读,更多相关《FPGAVerilog试题西安电子科技大学Word版Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
and
not
4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为(
B
supply
strong
pull
weak
5.元件实例语句“notif1
#(1:
3:
4,2:
4,1:
2:
4)
U1(out,in,ctrl);
”中截至延迟的典型值为(
1
2
3
4
6.已知
“a
=1b’1;
b=3b'
001;
”那么{a,b}=(
C
4b'
0011
3b'
001
1001
101
第
页
共
8
7.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC
模块级
(B)门级
寄存器级
8.在verilog语言中,a=4b'
1011,那么
&
a=(D
1011
1111
1b'
0
9.在verilog语言中整型数据与(
)位寄存器数据在实际意义上是相同的。
16
32
64
二、
简答题(2题,共16分)
1.Verilog
HDL语言进行电路设计方法有哪几种(8分)
1、自上而下的设计方法(Top-Down)
2、自下而上的设计方法(Bottom-Up)
3、综合设计的方法
2.specparam语句和parameter语句在参数说明方面不同之处是什么(8分)。
1、.specparam语句只能在延时的格式说明块(specify块)中出现,而parameter语句则不能在延时说明块内出现
2、由specparam语句进行定义的参数只能是延时参数,而由parameter语句定义的参数则可以是任何数据类型的参数
3、由specparam语句定义的延时参数只能在延时说明块内使用,而由parameter语句定义的参数则可以在模块内(该parameter语句之后)的任何位置说明
三、
画波形题(每题8分,共16分)
根据下面的程序,画出产生的信号波形(8分)
module
para_bloc_nested_in_seri_bloc(A,B);
output
A,B;
reg
a,b;
initial
begin
A=0;
B=1;
#10
A=1;
fork
B=0;
#20
join
end
endmodule
2.
signal_gen1(d_out);
d_out;
d_out=0;
#1
d_out=1;
#2
#3
#4
四、
程序设计(4题,共50分)
试用verilog语言产生如下图所示的测试信号(12分)
signal_gen9(clk,in1,in2);
in1,in2,clk;
in1=0;
in2=1;
5
clk=0;
#15
in1=1
#5
in1=1;
in2=0;
#25
always
clk=~clk;
2.试用verilog语言,利用内置基本门级元件,采用结构描述方式生成如图所示的电路(12分)
MUX4x1(Z,D0,D1,D2,D3,S0,S1);
3.
试用verilog语言描述:
图示为一个4位移位寄存器,是由四个D触发器(分别设为U1,U2,U3,U4)构成的。
其中seri_in是这个移位寄存器的串行输入;
clk为移位时脉冲输入;
clr为清零控制信号输入;
Q[1]~Q[3]则为移位寄存器的并行输出。
(14分)
d_flop(q,d,clr,clk);
q;
input
d,clr,clk;
@(clr)
if(!
clr)
assign
q=0;
else
deassign
@(negedge
clk)
q=d;
7
shifter(seri_in,clk,clrb,Q);
seri_in,clk,clrb;
output[3:
0]
Q;
d_flop
U1(Q[0],seri_in,clrb,clk),
U2(Q[1],Q[0],clrb,clk),
U3(Q[2],Q[1],clrb,clk),
u4(Q[3],Q[2],clrb,clk);
4.利用有限状态机,以格雷码编译方式设计一个从输出信号序列中检测出101信号的电路图,其方块图、状态图和状态表如图表示。
(12分)
Din=0Din=1S0=00
SO,
OS1,
0S1=01S2,
0S1,
0S2=11
S0,
1
下一状态NS和输出Qout目前状态CS
melay(clk,Din,reset,Qout);
clk,reset;
Din;
Qout;
parameter[1:
S0=2'
b00,S1=2'
b01,S2=2'
b11;
reg[1:
CS;
NS;
@(posedge
clk
or
posedge
reset)
if(reset==1'
b01)
CS=S0;
CS=NS;
@(CS
Din)
case(CS)
S0:
beign
if(Din==1'
b0)
NS=S0;
Qout=1'
b0;
NS=S1;
S1:
NS=S2;
S2:
9
endcase
、填空题(10分,每小题1分)
用EDA技术进行电子系统设计的目标是最终完成
的设计与实现。
可编程器件分为
和
。
随着EDA技术的不断完善与成熟,
的设计方法更多的被应用于Verilog
HDL设计当中。
4.
目前国际上较大的PLD器件制造公司有
公司。
5.
完整的条件语句将产生
电路,不完整的条件语句将产生
电路。
6.
阻塞性赋值符号为
,非阻塞性赋值符号为
二、选择题
(10分,每小题2分)
大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。
基于EDA软件的FPGA
/
CPLD设计流程为:
原理图/HDL文本输入
→
综合
→___
__→
→适配→编程下载→硬件测试。
正确的是
①功能仿真
②时序仿真
③逻辑综合
④配置
⑤分配管脚
A.③①
B.①⑤
C.④⑤
D.④②
子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);
指出下列哪些方法是面积优化
①流水线设计
②资源共享
③逻辑优化
④串行化
⑤寄存器配平
⑥关键
路径法
A.①③⑤
B.②③④
C.②⑤⑥
D.①④⑥
下列标识符中,__________是不合法的标识符。
A.9moon
B.State0
C.
Not_Ack_0
D.
signall
下列语句中,不属于并行语句的是:
_______
A.过程语句
B.assign语句
C.元件例化语句
D.case语句
三、EDA名词解释(10分)
写出下列缩写的中文含义:
ASIC:
RTL:
FPGA:
SOPC:
CPLD:
LPM:
EDA:
IEEE:
IP:
ISP:
四、简答题(10分)
简要说明仿真时阻塞赋值与非阻塞赋值的区别(本题4分)。
简述有限状态机FSM分为哪两类?
有何区别?
有限状态机的状态编码风格主要有哪三种?
FSM的三段式描述风格中,三段分别描述什么?
(本题6分)
五、程序注解(20分,每空1分)
AAA
a
b
);
[6:
b
reg[2:
sum;
integer
i;
@
(b)
sum
=
0;
for(i
i<
=6;
i
i+1)
if(b[i])
sum+1;
if(sum[2])
1;
本程序的逻辑功能是:
四、VerilogHDL语言编程题(1、2小题10分,3小题20分)
要求:
写清分析设计步骤和注释。
试用Verilog
HDL描述一个带进位输入、输出的8位全加器。
端口:
A、B为加数,CI为进位输入,S为和,CO为进位输出
编写一个带异步清零、异步置位的D触发器。
CLK为时钟,D为输入,CLK为清零输入端,SET为置位输入端;
Q输出端。
设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。
端口设定如下:
输入端口:
CLK:
时钟,RST:
复位端,EN:
时钟使能端,LOAD:
置位控制端,
DIN:
置位数据端;
输出端口:
COUT:
进位输出端,DOUT:
计数输出端。
一、填空题(每空2分,共20分)
1、
ASIC
2、
FPGA
CPLD
3、
自顶向下
4、
Altera
Xilinx
5、
组合
时序
6、
<
1、C
3、B
5、D
专用集成电路
RTL
现场可编程门阵列
SOPC
可编程片上系统
复杂可编程逻辑器件
LPM
参数可定制宏模块库
EDA
电子设计自动化
IEEE
电子电气工程师协会
IP
知识产权核
ISP
在系统编程
1、简要说明仿真时阻塞赋值与非阻塞赋值的区别(本题4分)。
答:
非阻塞(non-blocking)赋值方式
b<
a):
b的值被赋成新值a的操作,
并不是立刻完成的,而是在块结束时才完成;
块内的多条赋值语句在块结束时同时赋值;
硬件有对应的电路。
阻塞(blocking)赋值方式
b的值立刻被赋成新值a;
完成该赋值语句后才能执行下一句的操作;
硬件没有对应的电路,因而综合结果未知。
(本题6分)
Mearly型,Moore型;
前者与输入与当前状态有关,而后者只和当前状态有关;
Binary,Gray,One-Hot编码;
分别为状态保存,状态切换,输出;
7人投票表决器。
六、VerilogHDL语言编程题(1、2小题10分,3小题20分)
1.试用Verilog
A、B为加数,CIN为进位输入,S为和,COUT为进位输出
add4v(a,b,ci,s,co);
input[3:
a;
b;
ci;
s;
co;
wire[3:
carry;
function
fa_s(input
a,input
b,input
ci);
fa_s
^
endfunction
fa_c(input
fa_c
|
ci
s[0]
fa_s(a[0],b[0],ci);
carry[0]
fa_c(a[0],b[0],ci);
s[1]
fa_s(a[1],b[1],carry[0]);
carry[1]
fa_c(a[1],b[1],carry[0]);
s[2]
fa_s(a[2],b[2],carry[1]);
carry[2]
fa_c(a[2],b[2],carry[1]);
s[3]
fa_s(a[3],b[3],carry[2]);
co
fa_c(a[3],b[3],carry[2]);
2.编写一个带异步清零、异步置位的D触发器。
6
3.设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。
mdule
CNT10
(CLK,RST,EN,LOAD,COUT,DOUT,DATA);
CLK
;
EN
RST
LOAD
[3:
DATA
DOUT
COUT
Q1
Q1;
negedge
RST)
if
(!
(EN)
LOAD)
DATA;
(Q1<
9)
Q1+1;
4'
b0000;
@(Q1)
(Q1==4'
h9)
1'
b1;
6
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)