分享一下带使能端的D触发器的设计
module reg_A(Ain, Clock, R, Q);
input wire Ain;
input wire Clock;
input wire [15:0] R;
output reg [15:0] Q;
initial Q =0;
always@(posedge Clock)
begin
if(Ain == 1)
Q <= R;
else
Q <= Q;
end
endmodule
测试代码如下
`timescale 1ns / 1ps
module test_regA(
);
reg Ain;
reg Clock;
reg [15:0] R;
wire [15:0] Q;
always #10 Clock = ~Clock;
initial begin
Clock = 1'b0;
Ain = 1'b0;
R = 16'h0000;
#10 Ain = 1'b1;
R = 16'h1212;
#10 Ain = 1'b0;
R = 16'h2233;
#10 Ain = 1;
end
reg_A i1 (Ain, Clock, R, Q);
endmodule
使用vivado仿真结果如下