根据RTL图编写Verilog程序
描述
根据以下RTL图,使用 Verilog HDL语言编写代码,实现相同的功能,并编写testbench验证功能。
输入描述:
clk:系统时钟信号
rst_n:复位信号,低电平有效
data_in:输入信号
输出描述:
data_out:输出信号
解题思路:
`timescale 1ns/1ns
module RTL(
input clk,
input rst_n,
input data_in,
output reg data_out
);
reg Q0;
wire D1;
always @(posedge clk or negedge rst_n) begin
if (!rst_n) Q0 <= 1'b0;
else Q0 <= data_in;
end
assign D1 = ~Q0 & data_in;
always @(posedge clk or negedge rst_n) begin
if (!rst_n) data_out <= 1'b0;
else data_out <= D1;
end
endmodule