SR触发器

module cy4(input S,
           input R,
           input clk,
           input rst_n,
           output reg Q
        );
always @(posedge clk or negedge rst_n)
  if(!rst_n) Q <= 1'b0;
  else 
    case({S,R})
      2'b00: Q <= Q;
      2'b01: Q <= 1'b0;
      2'b10: Q <= 1'b1; 
      2'b11: Q <= 1'bx;
    endcase

endmodule这里写图片描述
测试脚本代码:
`timescale 1 ns/ 1 ps
module cy4_vlg_tst();
reg R;
reg S;
reg clk;
reg rst_n;
wire Q;

cy4 i1 (
.Q(Q),
.R(R),
.S(S),
.clk(clk),
.rst_n(rst_n)
);
initial
begin
clk = 0;
rst_n = 0;

10;

rst_n = 1;
S = 0;
R = 0;

50;

S = 0;
R = 1;

50;

S = 1;
R = 0;

50;

S = 1;
R = 1;

50;

s t o p ; display(“Running testbench”);
end
always #10 clk = ~clk;
endmodule

猜你喜欢

转载自blog.csdn.net/qq_41982581/article/details/82345881