verilog考精彩试题.docx
《verilog考精彩试题.docx》由会员分享,可在线阅读,更多相关《verilog考精彩试题.docx(34页珍藏版)》请在冰点文库上搜索。
verilog考精彩试题
西安电子科技大学
考试时间分钟
试题
题号
一
二
三
四
五
六
七
八
九
十
总分
分数
1.考试形式:
闭(开)卷;2.本试卷共四大题,满分100分。
班级学号姓名任课教师
一、选择题(每题2分,共18分)
1.下面哪个是可以用verilog语言进行描述,而不能用VHDL语言进行描述的级别?
(A)
(A)开关级(B)门电路级(C)体系结构级(D)寄存器传输级
2.在verilog中,下列语句哪个不是分支语句?
(D)
(A)if-else(B)case(C)casez(D)repeat
3.下列哪些Verilog的基本门级元件是多输出(D)
(A)nand(B)nor(C)and(D)not
4.Verilog连线类型的驱动强度说明被省略时,则默认的输出驱动强度为(B)
(A)supply(B)strong(C)pull(D)weak
5.元件实例语句“notif1#(1:
3:
4,2:
3:
4,1:
2:
4)U1(out,in,ctrl);”中截至延迟的典型值为(B)
(A)1(B)2(C)3(D)4
6.已知“a=1b’1;b=3b'001;”那么{a,b}=(C)
(A)4b'0011(B)3b'001(C)4b'1001(D)3b'101
7.根据调用子模块的不同抽象级别,模块的结构描述可以分为(ABC)
(A)模块级(B)门级(C)开关级(D)寄存器级
8.在verilog语言中,a=4b'1011,那么&a=(D)
(A)4b'1011(B)4b'1111(C)1b'1(D)1b'0
9.在verilog语言中整型数据与(C)位寄存器数据在实际意义上是相同的。
(A)8(B)16(C)32(D)64
二、简答题(2题,共16分)
1.VerilogHDL语言进行电路设计方法有哪几种(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分)
1.根据下面的程序,画出产生的信号波形(8分)
modulepara_bloc_nested_in_seri_bloc(A,B);
outputA,B;
rega,b;
initial
begin
A=0;
B=1;
#10A=1;
fork
B=0;
#10B=1;
#20A=0;
join
#10B=0;
#10A=1;
B=1;
end
endmodule
2.根据下面的程序,画出产生的信号波形(8分)
modulesignal_gen1(d_out);
outputd_out;
regd_out;
initial
begin
d_out=0;
#1d_out=1;
#2d_out=0;
#3d_out=1;
#4d_out=0;
end
endmodule
四、程序设计(4题,共50分)
1.试用verilog语言产生如下图所示的测试信号(12分)
modulesignal_gen9(clk,in1,in2);
outputin1,in2,clk;
regin1,in2,clk;
initial
begin
in1=0;
in2=1;
clk=0;
end
initial
begin
#15in1=1
#10in1=0;
#5in1=1;
#10in1=0;
end
initial
begin
#5in2=0;
#5in2=1;
#25in2=0;
end
always
begin
#5clk=~clk;
end
endmodule
2.试用verilog语言,利用内置基本门级元件,采用结构描述方式生成如图所示的电路(12分)
moduleMUX4x1(Z,D0,D1,D2,D3,S0,S1);
outputZ;
inoutD0,D1,D2,D3,S0,S1;
andu0(T0,D0,S0bar,S1bar),
u1(T1,D1,S0bar,S1),
u2(T2,D2,S0,S1bar),
u3(T3,D3,S0,S1),
notu4(S0bar,S0),
u5(S1bar,S1);
oru6(Z,T0,T1,T2,T3);
endmodule
3.试用verilog语言描述:
图示为一个4位移位寄存器,是由四个D触发器(分别设为U1,U2,U3,U4)构成的。
其中seri_in是这个移位寄存器的串行输入;clk为移位时脉冲输入;clr为清零控制信号输入;Q[1]~Q[3]则为移位寄存器的并行输出。
(14分)
moduled_flop(q,d,clr,clk);
outputq;
inputd,clr,clk;
regq;
always@(clr)
if(!
clr)assignq=0;
elsedeassignq;
always@(negedgeclk)
q=d;
endmodule
moduleshifter(seri_in,clk,clrb,Q);
inputseri_in,clk,clrb;
output[3:
0]Q;
d_flopU1(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);
endmodule
4.利用有限状态机,以格雷码编译方式设计一个从输出信号序列中检测出101信号的电路图,其方块图、状态图和状态表如图表示。
(12分)
modulemelay(clk,Din,reset,Qout);
inputclk,reset;
inputDin;
outputQout;
regQout;
parameter[1:
0]S0=2'b00,S1=2'b01,S2=2'b11;
reg[1:
0]CS;
reg[1:
0]NS;
always@(posedgeclkorposedgereset)
begin
if(reset==1'b01)
CS=S0;
elseCS=NS;
end
always@(CSorDin)
begin
case(CS)
S0:
beign
if(Din==1'b0)
begin
NS=S0;
Qout=1'b0;
end
else
begin
NS=S1;
Qout=1'b0;
end
end
S1:
begin
if(Din==1'b0)
begin
NS=S2;
Qout=1'b0;
end
else
begin
NS=S1;
Qout=1'b0;
end
end
S2:
beign
if(Din==1'b0)
begin
NS=S0;
Qout=1'b0;
end
else
begin
NS=S1;
Qout=1'b0;
end
end
endcase
end
endmodule
填空题(10分,每小题1分)
1. 用EDA技术进行电子系统设计的目标是最终完成 ASIC 的设计与实现。
2. 可编程器件分为 FPGA 和CPLD 。
3. 随着EDA技术的不断完善与成熟, 的设计方法更多的被应用于Verilog HDL设计当中。
4. 目前国际上较大的PLD器件制造公司有 和 公司。
5. 完整的条件语句将产生 电路,不完整的条件语句将产生 电路。
6. 阻塞性赋值符号为 ,非阻塞性赋值符号为 。
二、选择题 (10分,每小题2分)
1. 大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是 。
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。
2. 基于EDA软件的FPGA / CPLD设计流程为:
原理图/HDL文本输入 → 综合 →___ __→ →适配→编程下载→硬件测试。
正确的是 。
①功能仿真 ②时序仿真 ③逻辑综合 ④配置 ⑤分配管脚
A.③① B.①⑤ C.④⑤ D.④②
3. 子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化 。
①流水线设计 ②资源共享 ③逻辑优化 ④串行化 ⑤寄存器配平 ⑥关键路径法
A.①③⑤ B.②③④ C.②⑤⑥ D.①④⑥
4. 下列标识符中,__________是不合法的标识符。
A.9moon B.State0 C. Not_Ack_0 D. signall
5. 下列语句中,不属于并行语句的是:
_______
A.过程语句 B.assign语句 C.元件例化语句 D.case语句
三、EDA名词解释(10分) 写出下列缩写的中文含义:
ASIC:
RTL:
FPGA:
SOPC:
CPLD:
LPM:
EDA:
IEEE:
IP:
ISP:
四、简答题(10分)
1. 简要说明仿真时阻塞赋值与非阻塞赋值的区别(本题4分)。
2. 简述有限状态机FSM分为哪两类?
有何区别?
有限状态机的状态编码风格主要有哪三种?
FSM的三段式描述风格中,三段分别描述什么?
(本题6分)
五、程序注解(20分,每空1分)
module AAA ( a ,b );
output a
input [6:
0] b
reg[2:
0] sum;
integer i;
reg a
always @ (b)
begin
sum = 0;
for(i = 0;i<=6;i = i+1)
if(b[i])
sum = sum+1;
if(sum[2]) a = 1;
else a = 0;
end
endmodule
本程序的逻辑功能是:
四、VerilogHDL语言编程题(1、2小题10分,3小题20分) 要求:
写清分析设计步骤和注释。
1. 试用Verilog HDL描述一个带进位输入、输出的8位全加器。
端口:
A、B为加数,CI为进位输入,S为和,CO为进位输出
2. 编写一个带异步清零、异步置位的D触发器。
端口:
CLK为时钟,D为输入,CLK为清零输入端,SET为置位输入端;Q输出端。
3. 设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。
端口设定如下:
输入端口:
CLK:
时钟,RST:
复位端,EN:
时钟使能端,LOAD:
置位控制端, DIN:
置位数据端;
输出端口:
COUT:
进位输出端,DOUT:
计数输出端。
一、填空题(每空2分,共20分)
1、 ASIC 2、 FPGA 和 CPLD 。
3、 自顶向下
4、 Altera 和 Xilinx 5、 组合 时序 6、 = <=
二、选择题 (10分,每小题2分)
1、C 2、 B 3、B 4、 A 5、D
三、EDA名词解释(10分) ASIC 专用集成电路 RTL 寄存器传输级
FPGA 现场可编程门阵列 SOPC 可编程片上系统
CPLD 复杂可编程逻辑器件 LPM 参数可定制宏模块库
EDA 电子设计自动化 IEEE 电子电气工程师协会 IP知识产权核 ISP 在系统编程
四、简答题(10分)
1、简要说明仿真时阻塞赋值与非阻塞赋值的区别(本题4分)。
答:
非阻塞(non-blocking)赋值方式 ( b<= a):
b的值被赋成新值a的操作, 并不是立刻完成的,而是在块结束时才完成; 块内的多条赋值语句在块结束时同时赋值; 硬件有对应的电路。
阻塞(blocking)赋值方式 ( b = a):
b的值立刻被赋成新值a;
完成该赋值语句后才能执行下一句的操作; 硬件没有对应的电路,因而综合结果未知。
2、 简述有限状态机FSM分为哪两类?
有何区别?
有限状态机的状态编码风格主要有哪三种?
FSM的三段式描述风格中,三段分别描述什么?
(本题6分)
答:
Mearly型,Moore型;前者与输入与当前状态有关,而后者只和当前状态有关;Binary,Gray,One-Hot编码;分别为状态保存,状态切换,输出;
五、程序注解(20分,每空1分)
本程序的逻辑功能是:
7人投票表决器。
六、VerilogHDL语言编程题(1、2小题10分,3小题20分) 要求:
写清分析设计步骤和注释。
1.试用Verilog HDL描述一个带进位输入、输出的8位全加器。
端口:
A、B为加数,CIN为进位输入,S为和,COUT为进位输出
module add4v(a,b,ci,s,co);
input[3:
0] a,b,ci;
output[3:
0] s;
output co;
wire[3:
0] carry;
function fa_s(input a,input b,input ci);
fa_s = a ^ b ^ ci;
endfunction
function fa_c(input a,input b,input ci);
fa_c = a & b | a & ci | b & ci;
endfunction
assign s[0] = fa_s(a[0],b[0],ci);
assign carry[0] = fa_c(a[0],b[0],ci);
assign s[1] = fa_s(a[1],b[1],carry[0]);
assign carry[1] = fa_c(a[1],b[1],carry[0]);
assign s[2] = fa_s(a[2],b[2],carry[1]);
assign carry[2] = fa_c(a[2],b[2],carry[1]);
assign s[3] = fa_s(a[3],b[3],carry[2]);
assign co = fa_c(a[3],b[3],carry[2]);
endmodule
2.编写一个带异步清零、异步置位的D触发器。
3.设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。
module CNT10 (CLK,RST,EN,LOAD,COUT,DOUT,DATA);
input CLK,EN,RST,LOAD,DATA;
output [3:
0] DOUT,COUT ;
reg [3:
0] Q1
reg COUT
assign DOUT = Q1;
always @(posedge CLK or negedge RST)
begin if (!
RST)
Q1 <= 0;
else if (EN)
begin
if (!
LOAD)
Q1 <= DATA;
else if (Q1<9)
Q1 <= Q1+1;
else
Q1 <= 4'b0000;
end
end
always @(Q1)
if (Q1==4'h9)
COUT = 1'b1;
else
COUT = 1'b0;
endmodule
二○一○~二○一一学年 第二学期 (A)卷
课程名称Verilog硬件描述语言 适用专业 2008电信
考试方式 (闭)卷 考试时间(120)分钟
题号
一
二
三
四
五
六
七
总分
得分
评卷人
备注:
所有试题答案必须全部写在试卷答题纸上,试题纸上答题无效。
一、填空题(共26分,每空2分)
1.Verilog的基本设计单元是。
它是由组成,一部分描述;
另一部分描述即定义输入是如何影响的。
2.用assign描述的语句我们一般称之为逻辑,并且它们是属于语句,即于语句的书写次序。
而用always描述的语句我们一般称之为逻辑或逻辑,并且它们是属于语句,即于语句的书写。
3.在case语句中至少要有一条语句
二、简答题(共15分,每小题5分)
1.怎样理解在进程语句中,阻塞语句没有延迟这句话?
2.在进程中什么情况下综合为时序电路?
什么情况下综合为组合电路?
3.为什么在Verilog语言中,其综合只支持次数确定的循环,而不支持次数不确定的循环?
三、改错(15分)
//下述是一个实现四位数的BCD码加法的程序,请把正确的程序写在试卷上
modulebcdadd(clk,a,b,c,d,a1,b1,c1,d1,q1,q2,q3,q4,cout)
inputclk;
inputa,b,c,d,a1,b1,c21,d21[3:
0];
outputq1,q2,q3,q4[3:
0];
outputcout;
regq1,q2,q3,q4;[3:
0]
always@(clk,a,b,c,d,a1,b1,c1,d1);
begin
q1=a+a1;
if(q1>9){cout,q1}=q1+6;
q2=b+b1+cout;
if(q2>9){cout,q2}=q2+6;
q3=c+c1+cout;
if(q3>9){cout,q3}=q3+6;
q4=d+d1+cout;
if(q4>9){cout,q4}=q4+6;
endmodule
四、编程(15分)
编程实现带异步清0、异步置1的D触发器。
五、编程(15分)
编程实现求补码的程序,输入是带符号的8位二进制数。
六、编程(14分)
编程实现一个并行加载串行输出的程序,输入是一个8位的二进制数。
二○一○~二○一一学年 第二学期 (B)卷
课程名称Verilog硬件描述语言 适用专业 2008电信
考试方式 (闭)卷 考试时间(120)分钟
题号
一
二
三
四
五
六
七
总分
得分
评卷人
备注:
所有试题答案必须全部写在试卷答题纸上,试题纸上答题无效。
一、填空题(共10分,每空2分)
1.已知x=4’b1001,y=4’b0110,则x的4位补码为,而y的4位的补码为。
2.在case语句中至少