1.利用寄存器延时,适用于延时时间较短
module yanshi (
input clk,
input rst_n,
input d,
output q
);
always @(posedge clk or negedge rst_n) begin
if (rst_n == 1'b0) begin
q <= 1'b0;
end
else begin
q <= d;
end
end
endmodule
2.利用拼接,延时多少个clk,N就等于多少
module yashi (
input clk,
input rst_n,
input datain,
output dataout
);
reg [N-1:0] r;
always @(posedge clk or negedge rst_n) begin
if (rst_n == 1'b0) begin
r <= 0;
end
else begin
r <= {r,datain};
end
end
assign dataout = r[N-1];
endmodule
r <= {r,datain}; 这里是长位宽赋值给短位宽,截断长位宽的高位