Verilog复习题.docx
《Verilog复习题.docx》由会员分享,可在线阅读,更多相关《Verilog复习题.docx(18页珍藏版)》请在冰豆网上搜索。
Verilog复习题
Verilog复习题
一、填空题
1.用EDA技术进行电子系统设计的目标是最终完成ASIC的设计与实现。
2.可编程器件分为CPLD和FPGA。
3.随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于VerilogHDL
设计当中。
4.目前国际上较大的PLD器件制造公司有ALtera和Xilinx公司。
5.完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。
6.阻塞性赋值符号为,非阻塞性赋值符号为<=_。
7.有限状态机分为Moore和Mealy两种类型。
8.EDA缩写的含义为电子设计自动化(ElectronicDesignAutomation)|
9.状态机常用状态编码有二进制、格雷码和独热码。
10.VerilogHDL中任务可以调用其他任务和函数。
11.系统函数和任务函数的首字符标志为_$_,预编译指令首字符标志为。
12.可编程逻辑器件的优化过程主要是对速度和资源的处理过程。
13、大型数字逻辑电路设计采用的IP核有软IP、固IP和硬IP。
二、选择题
1、已知“a=1b'1;b=3b'001;”那么{a,b}=(C)
(A)4b'0011(B)3b'001(C)4b'1001(D)3b'101
2、在verilog中,下列语句哪个不是分支语句?
(D)
(A)if-else(B)case(C)casez(D)repeat
3、VerilogHDL语言进行电路设计方法有哪几种(8分)
1自上而下的设计方法(Top-Down)
2自下而上的设计方法(Bottom-Up)
3综合设计的方法
4、在verilog语言中,a=4b'1011,那么&a=(D)
(A)4b'1011(B)4b'1111(C)1b'1(D)1b'0
5、在verilog语言中整型数据与(C)位寄存器数据在实际意义上是相同的。
(A)8(B)16(C)32(D)64
6、大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,
正确的是___C。
A.FPGA全称为复杂可编程逻辑器件;
B.FPGA呈逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;
D.在Altera公司生产的器件中,MAX7000系列属FPGA结构。
7、子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度
(即速度优化);指出下列哪些方法是面积优化—B。
1流水线设计
2资源共享
3逻辑优化
4串行化
5寄存器配平
6关键路径法
A.①③⑤B.②③④C.②⑤⑥D.①④⑥
8、下列标识符中,A是不合法的标识符。
A.9moonB.State0C.Not_Ack_0D.signall
9、下列语句中,不属于并行语句的是:
D___
A.过程语句B.assign语句C.元件例化语句D.case语句
6、10、P,Q,R都是4bit的输入矢量,下面哪一种表达形式是正确的5)
1)inputP[3:
0],Q,R;
2)inputP,Q,R[3:
0];
3)inputP[3:
0],Q[3:
0],R[3:
0];
4)input[3:
0]P,[3:
0]Q,[0:
3]R;
5)input[3:
0]P,Q,R;
11、请根据以下两条语句的执行,最后变量A中的值是—①—。
reg[7:
0]A;
A=2'hFF;
①8'b0000_0011②8'h03③8'b1111_1111④8'b11111111
三、简答题
1、简要说明仿真时阻塞赋值与非阻塞赋值的区别
非阻塞(non-blocking)赋值方式(b<=a):
b的值被赋成新值a的操作,并不是立刻完成的,而是在块结束时才完成;块内的多条赋值
语句在块结束时同时赋值;硬件有对应的电路。
阻塞(blocking)赋值方式(b=a):
b的
值立刻被赋成新值a;完成该赋值语句后才能执行下一句的操作;硬件没有对应的电路,因
而综合结果未知。
阻塞赋值是在该语句结束是立即完成赋值操作;非阻塞赋值是在整个过程块结束是才完成赋值操作。
2、简述有限状态机FSM分为哪两类?
有何区别?
有限状态机的状态编码风格主要有哪三种?
根据内部结构不同可分为摩尔型状态机和米里型状态机两种。
摩尔型状态机的输出只由当
前状态决定,而次态由输入和现态共同决定;米里型状态机的输出由输入和现态共同决定,而次态也由输入和现态决定。
状态编码主要有三种:
连续二进制编码、格雷码和独热码。
3、简述基于数字系统设计流程包括哪些步骤?
包括五个步骤:
⑴、设计输入:
将设计的结构和功能通过原理图或硬件描述语言进行设计或编程,进行
语法或逻辑检查,通过表示输入完成,否则反复检查直到无任何错误。
⑵、逻辑综合:
将较高层的设计描述自动转化为较低层次描述的过程,包括行为综合,逻辑综合和版图综合或结构综合,最后生成电路逻辑网表的过程。
⑶、布局布线:
将综合生成的电路网表映射到具体的目标器件中,并产生最终可下载文
件的过程。
⑷、仿真:
就是按照逻辑功能的算法和仿真库对设计进行模拟,以验证设计并排除错误的过程,包括功能仿真和时序仿真。
⑸、编程配置:
将适配后生成的编程文件装入到PLD器件的过程,根据不同器件实现编
程或配置。
4、简述VerilogHDL编程语言中函数与任务运用有什么特点?
函数和任务都能独立完成相应电路功能,通过在同一模块中的调用实现相应逻辑电路功能。
但它们又有以下不同:
⑴、函数中不能包含时序控制语句,对函数的调用,必须在同一仿真时刻返回。
而任务可以包含时序控制语句,任务的返回时间和调用时间可以不同。
⑵、在函数中不能调用任务,而任务中可以调用其它任务和函数。
但在函数中可以调用其它函数或函数自身。
⑶、函数必须包含至少一个端口,且在函数中只能定义input端口。
任务可以包含0
个或任何多个端口,且可以定义input、output和inout端口。
⑷、函数必须返回一个值,而任务不能返回值,只能通过output或inout端口来传递
执行结果。
5、简述FPGA与CPLD两种器件应用特点。
CPLD与FPGA都是通用可编程逻辑器件,均可在EDA仿真平台上进行数字逻辑电路设计,它们不同体现在以下几方面:
⑴FPGA集成度和复杂度高于CPLD,所以FPGA可实现复杂逻辑电路设计,而CPLD
适合简单和低成本的逻辑电路设计。
⑵、FPGA内主要由LUT和寄存器组成,倾向实现复杂时序逻辑电路设计,而CPLD
内主要由乘积项逻辑组成,倾向实现组合逻辑电路设计。
⑶、FPGA工艺多为SRAM、flash等工艺,掉电后内信息消失,所以该类型需外配存储器,而CPLD工艺多为EEPROM等工艺,掉电后信息不消失,所以不用外配存储器。
⑷、FPGA相对CPLD成本高,但都可以在内都镶嵌硬核和软核,实现片上系统功能。
四、计算题
1、利用有限状态机,以格雷码编译方式设计一个从输出信号序列中检测出101信号的电
路图,其方块图、状态图和状态表如图表示。
Dm
elk
Qout
reset
目前状态CS
下一状态NS和输岀Qout
Din=0
Din=1
S0=00
SO,O
S1,0
S1=01
S2,0
S1,0
S2=11
S0,0
S1,1
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)begincase(CS)
S0:
beign
if(Din==1'b0)
begin
NS=S0;
Qout=1'b0;
end
elsebeginNS=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;endend
S2:
beign
if(Din==1'b0)
begin
NS=S0;
Qout=1'b0;
end
elsebeginNS=S1;Qout=1'b0;
end
end
endcase
end
endmodule
2、程序注解,并说明整个程序完成的功能。
moduleAAA(a,b);
outputa;
input[6:
0]b;
reg[2:
0]sum;
integeri;
rega;
always@(b)
begin
sum=0;
for(i=0;i<=6;i=i+1)
if(b[i])sum=sum+1;
if(sum[2])a=1;elsea=0;endendmodule
moduleAAAou-tput3.input[O'0】bi■強[2:
0]mm;inrcgni.
rega
uvl'3^至E:
X曲
SUJTl=0.
苣<棋块有为AAA,端=1为矶b卞丈丑九尙出錨匚!
立义t»为檜出刪口・b为丁位二进制皺
如mj过程语柯'够虧褻量为b
语旬块
»n初倍沟Q
for(i=0;i<=6;i=i*l)
for语包,轨计VR1的个数
WjDD条件语同
只妾有人投竣对淳,则sun削I
elsr
Lf〔su«n[2])a-1;
若超过+人珞成』则衣块通过
若-存M4人,刚不通过
3、设计一个带有异步复位控制端和时钟使能控制端的10进制计数器。
端口设定如下:
输
入端口:
CLK:
时钟,RST:
复位端,EN:
时钟使能端,LOAD:
置位控制端,DIN:
置位数据端;输出端口:
COUT:
进位输出端,DOUT:
计数输出端。
modulecnt10(clk,rst,en,loat,cout,dout,data);
inputclk;
inputen;
inputrst;
inputload;
input[3:
0]data;
output[3:
0]dout;
outputcout;
reg[3:
0]q1;
regcout;
assigndout=q1;
always@(posedgeclkornegedgerst)begin
if(!
rst)q1<=0;
elseif(en)beginif(!
loat)q1<=data;
elseif(q1<9)q1<=q1+1;
elseq1<=4'bOOOO;
end
endalways@(q1)if(q1==4'h9)cout=1'b1;
elsecout=1'bO;
endmodule
4、下面是通过case语句实现四选一电路部分程序,将横线上的语句补上,使程序形成完整功能。
modulemux4_tottout,ilLilTi2ti3tsl,sO);
outputout;
inputidJI,i3;
inputsi,sO;
regout;
always晅心IorsQoriOorilori2or13)
cast(I//Switchbasedoilconotcuudonofcontrol琲屮ink
default:
$display(Tcndcasc
ciidmodulc
case({s1,s0})
2'b00:
out=i0;
2'b01:
out=i1;
2'b10:
out=i2;
2'b11:
out=i3;
3、标注各语句功能,指出整个程序完成的电路功能。
//带同步清0/同步置1(低电平有效)的D触发器•
moduledff_syn(q,qn,d,clk,set,reset);II定义模块为diff_syn,端口为q,qn,d,clk,set,resetinputd,clk,set,reset;outputregq,qn;II定义端口d,clk,set,reset为输入端口,reg,q,qn为输出端口
always@(posedgeclk)II对clk信号上升沿有效
begin
if(~reset)beginqv=1'b0;qnv=1'b1;endII同步清零,低电平有效
elseif(~set)beginqv=1'b1;qnv=1'b0;endII同步置位,低电平有效
elsebeginqv=d;qnv=~d;endIIq输出为d,qn输出为非d;
end
endmodule〃模块结束
4、根据图3给定的两个2位全加器信号关系及实现的4位全加器功能部分程序,在下列部
分程序中的横线上填入必要语句,实现4位全加器的完整功能。
//底层4位全加器程序
moduleadd2(ai,bi,ci,sum,cout);input[1:
0]ai,bi;inputci;
output[1:
0]sum;reg[1:
0]sum;outputcout;regcout;
always@(ai,bi,ci){cout,sum}=ai+bi+ci;
endmodule
//顶层8位全加器程序
modulefadd4(a,b,c,sum4,cout4);
input[3:
0]a,b;inputc;output[3:
0]sum4outputcout4;wirec0;
add4U1(_a[1:
0],b[1:
0],c,c0,sum4[1:
0]);_add4U2(a[3:
0],b[3:
0],c0,count4,sum4[3:
0]);endmodule
5、根据下列给定的仿真输入输出波形图2,说明完成此功能的电路是什么功能电路?
并写
出对应的VerilogHDL描述程序(图中clk,clr为输入,q,c为输出)。
4进制加法计数器
1
(1k
川!
I:
u
V
1
1111
1111
_._1■■
—
ii
1>=■
—
111
111
dr
1
1
I1Iii11■1II
I1I111■I1ii
1111111
1111111
■
111
Ii1
io
0〔I1「1
3I0'
If
;;$
」:
】「I
c
1
1
1
1
11
11
1
i1
111
1
1111111
1111111
11111111
1111111
■
11
111'11i11111
111
11
11
1111
111
modulecounter(clk,clr,q,c)
inputclk,clr;
outputret[1:
O]q;
outputc;
always@(posedgeclkornegedgeclr)
begin
if(~clr)q<=2'0;
else
begin
if(2'3==q)q<=2'0;
elseq<=q+2'1;
end
end
assignc=(2'3==q)
endmodule
6、采用结构描述方法设计一个二进制数字半加器,输入数据ai与bi,并将和输出到so,进
位输出到co,给出详细设计过程。
输入
输出
ai
bi
so
co
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
由输入输出逻辑表达式,采用与门and和异或门xor进行结构描述的程序如下:
(6分)
modulehadd(ai,bi,so,co);
inputai,bi;
outputso,co;
xor(so,si,ci);
and(co,ai,bi);
endmodule
a与b的大小,并分别输
6、采用结构描述方法设计一个二进制数字比较器,比较输入数据
出到x,y和z给出详细设计过程。
x=abab,y=ab,z=ab
not(not_a,a);
not(not_b,b);
and(ab,a,b);
and(not_ab,not_a,not_b);
or(x,ab,not_ab);
and(y,not_a,b);
and(z,a,not_b);
1表示
7、采用结构描述方法设计一个3人竞选数字电路,输入数据[2:
0]x,要求2人以上为
通过,且输出为y为1否则输出相反,给出详细设计过程。
modulethree1(x,y);
input[2:
0]x;outputy;
y=a&b+a&c+b&c=ab+ac+bc;
wirea,b,c;
and(a,x[0],x[1]);and(b,x[1],x[2]);and(c,x[1],x[0]);
or(y,a,b,c);
endmodule
一、填空题(10分,每小题1分)
1.用EDA技术进行电子系统设计的目标是最终完成ASIC的设计与实现。
2.可编程器件分为FPGA和CPLD。
3.随着EDA技术的不断完善与成熟,自顶向下的设计方法更多的被应用于VerilogHDL设
计当中。
4.目前国际上较大的PLD器件制造公司有Altera和Xilinx公司。
5.完整的条件语句将产生组合电路,不完整的条件语句将产生时序电路。
6.阻塞性赋值符号为=,非阻塞性赋值符号为<=。
二、选择题(10分,每小题2分)
1.大规模可编程器件主要有FPGA、CPLD两类,下列对FPGA结构与工作原理的描述中,正确的是C。
A.FPGA全称为复杂可编程逻辑器件;B.FPGA是基于乘积项结构的可编程逻辑器件;
C.基于SRAM的FPGA器件,在每次上电后必须进行一次配置;D.在Altera公司生产的
器件中,MAX7000系列属FPGA结构。
2.基于EDA软件的FPGA/CPLD设计流程为:
原理图/HDL文本输入宀综合t—__tt适配t编程下载t硬件测试。
正确的是B。
①功能仿真②时序仿真③逻辑综合④配置⑤分配管脚
A.③①
B.①⑤
C.④⑤
D.④②
3.子系统设计优化,主要考虑提高资源利用率减少功耗(即面积优化),以及提高运行速度(即速度优化);指出下列哪些方法是面积优化B。
①流水线设计②资源共享③逻辑优化④串行化
⑤寄存器配平⑥关键路径法A•①③⑤
B.②③④C.②⑤⑥
D.①④⑥
4.下列标识符中,A是不合法的标识符。
A.9moon
B.State0C.Not_Ack_0
D.signall
5.下列语句中,不属于并行语句的是:
___D
阅读会员限时特惠7大会员特权立即尝鲜
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分)
outputa
要求:
写清分析设计步骤
moduleAAA(a,b);
input[6:
0]b
reg[2:
0]sum;
inte
geri;
rega
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;
endendmodule
本程序的逻辑功能是:
四、VerilogHDL语言编程题(1、2小题10分,3小题20分)
和注释。
1.试用VerilogHDL描述一个带进位输入、输出的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和Xilinx5、组合时序6、=<=
二、选择题(10分,每小题2分)
1、C2、B3、B4、A5、D
三、EDA名词解释(10分)
ASIC专用集成电路RTL寄存器传输级FPGA现场可编程门阵列SOPC可编程片上系统CPLD复杂可编程逻辑器件LPM参数可定制
宏模块库EDA电子设