虚拟机:VMware-workstation-full-14.0.0.24051
环 境:ubuntu 18.04.1
应用工具:VCS(verilog compiled simulator,编译型代码仿真器)
练习1
- 下面的程序段中,当ADDRESS的值等于5’bX000时,问casex执行完后,A和B的值是多少。
...
A= 0 ;
B=0 ;
casex(ADDRESS)
5'b00???: A=1;
5'b01???: B=1;
5'b10?00, 5'b11? 00: begin
A=1;
B=1;
end
endcase
...
//-- 参考答案
A = 1
B = 0
练习2
- 事件A分别在10,20,30发生,而B一直保持X状态,那么在50时,Count的值是多少。
reg[7:0]Count;
intial
Count=0;
always begin
@(A) Count=Count+1;
@(B) Count=Count+1;
end
练习3
- initial块执行完后,I,J,A,B的值是多少
reg [2:0] A;
reg [3:0] B;
integer I,J;
initial begin
I = 0;
A = 0 ;
I=I-1 ; //I=-1
J=I ; //J=-1
A=A-1 ; //A=3'b111
B=A; //B=4'b0111
J=J+1; //J=0
B=B+1; //B=4'b1000
end
练习4
- 当V的值发生变化且为-1时,执行完always块后,Count的值应是?
reg[7:0]V;
reg[2:0]Count;
always @ (V) begin
Count=0;
While( ~V[Count])
Count=Count+1;
end
//参考答案
Count = 0;
练习5
- 当循环执行完后,V的值是多少
reg[3:0]A;
reg V,W;
integer K;
...
A=4’b1010;
for(K=2;K>=0;K=K-1) begin
V=V^A[K];
W=A[K]^A[K+1];
end
...
//参考答案
V的值是它进入循环体之前值的取反,因为V的值与0,1,0进行了异或,与1的异或改变了V的值。
练习6
- 下面语句被综合后,可能是哪一种
always @ (posedge Clock ) begin
if(A) C=B;
end
练习7
- 下列程序中 ,always状态将描述一个带异步Nreset和Nset输入端的上升沿触发器,则空括号内应填入什么
always @( ) begin
if(!Nreset)begin
Q<=0;
end
else if(! Nset ) begin
Q<=1;
end
else begin
Q<=D;
end
//-- 选项
1)negedge Nset or posedge Clock
2)posedge Clock
3)negedge Nreset or posedgeClock
4)negedge Nreset or negedge Nset or posedge Clock
5)negedge Nreset or posedge Nest
//-- 参考答案 4)
练习8
- 下面模块会被综合成哪一种
always @(posedge Clock)begin
A<=B;
if(C) begin
A<=1’b0;
end
end
//-- 参考答案 5)
always @(A or B) begin
case(A)
1'b0:F=B;
1'b1:G=B;
endcase
end
//-- 参考答案 2)
always @(posedge A or posedge B) begin
if(A)
C<=1’b0;
else
C<=D ;
end
//-- 参考答案 1)
always @ (posedge Clk or negedge Rstn )begin
if( !Rstn)
A<=1’b0;
else
A<=B;
end
//-- 参考答案 1)
作者:xlinxdu
版权:本文版权归作者所有
转载:未经作者允许,禁止转载,转载必须保留此段声明,必须在文章中给出原文连接。