在时序逻辑电路中,always 赋值语句中的敏感变量不仅可以是触发信号的上升 沿(posedge),也可以是下降沿(negedge)。请编写 Verilog 程序,搭建一个 8bit 位宽的寄存 器,要求所有触发器都应该由 clk 的下................... 降沿(负边缘)触发。同时,寄存器采用高电平有效 的同........... 步复位方式,复位值为 0x12 而不是零。模块的部分信息如下所示: module Reg ( i n p u t cl k , i n p u t r e s e t , i n p u t [ 7 : 0 ] d , ou tpu t re g [ 7 : 0 ] q ) ; / / W rit e y o u r c o de h e r e endmodule 请根据上面的内容补全 Verilog 代码。如果将同步复位改为异步复位,那么应当做出 怎样的修改呢?
时间: 2023-05-15 21:05:44 浏览: 191
为什么在 Verilog HDL 设计中一定要用同步而不能用异步时序逻辑?
5星 · 资源好评率100%
module Reg (input clk, input reset, input [7:0] d, output reg [7:0] q);
always @(negedge clk) begin
if (reset == 1'b1) begin
q <= 8'h12;
end else begin
q <= d;
end
end
endmodule
如果将同步复位改为异步复位,应该将 always 语句中的 negedge clk 改为 posedge reset,并在 always 语句中添加一个 if 语句,判断 reset 是否为 1'b0,如果是,则执行寄存器的正常操作,否则将 q 赋值为 8'h12。
阅读全文