今天给大侠带来的是一周掌握FPGA Verilog HDL 语法,今天开启第七天,也就是最后一天。
最后两天推出思考题(附参考答案),大侠可以自行思考,检测一下自己这一周的语法学习效果,结合实例理解理论语法,会让你理解运用的更加透彻。下面咱们废话就不多说了,一起来看看吧。
14)在下题中循环执行完后,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的值。)
15)在下题中,给出了几种硬件实现,问以下的模块被综合后可能是哪一种?
always @(posedge Clock)
if(A)
C=B;
- 不能综合。
- 一个上升沿触发器和一个多路器。
- 一个输入是A,B,Clock的三输入与门。
- 一个透明锁存器。
- 一个带clock有始能引脚的上升沿触发器。
参考答案:2,5
16)在下题中,always状态将描述一个带异步Nreset和Nset输入端的上升沿触发器,则空括号内应填入什么,可从以下五种答案中选择。
always @( )
if(!Nreset)
Q<=0;
else if(!Nset)
Q<=1;
else
Q<=D;
- negedge Nset or posedge Clock
- posedge Clock
- negedge Nreset or posedge Clock
- negedge Nreset or negedge Nset or posedge Clock
- negedge Nreset or negedge Nset
参考答案:4
17)在下题中,给出了几种硬件实现,问以下的模块被综合后可能是哪一种?
- 带异步复位端的触发器。
- 不能综合或与预先设想的不一致。
- 组合逻辑。
- 带逻辑的透明锁存器。
- 带同步复位端的触发器。
(1)
always @(posedge Clock)
begin
A<=B;
if(C)
A<=1'b0;
end
参考答案:5
(2)
always @( A or B)
case(A)
1'b0: F=B;
1'b1: G=B;
endcase
参考答案:2
(3)
always @( posedge A or posedge B )
if(A)
C<=1'b0;
else
C<=D;
参考答案:1
(4)
always @(posedge Clk or negedge Rst)
if(Rst)
A<=1'b0;
else
A<=B;
参考答案:2(产生了异步逻辑)
18)在下题中,模块被综合后将产生几个触发器?
always @(posedge Clk)
begin: Blk
reg B, C;
C = B;
D <= C;
B = A;
end
- 2个寄存器 B 和 D
- 2个寄存器 B和 C
- 3个寄存器 B, C 和 D
- 1个寄存器 D 5. 2个寄存器 C 和D
参考答案:2
19)在下题中,各条语句的顺序是错误的。请根据电路图调整好它们的次序。