题解 | #根据RTL图编写Verilog程序#

根据RTL图编写Verilog程序

https://www.nowcoder.com/practice/41a06522d8b242808c31a152bf948b5e

`timescale 1ns/1ns

module RTL(
	input clk,
	input rst_n,
	input data_in,

	output wire data_out
);

wire q1;
wire q2;

DFF data_in_reg
(
    .clk(clk),
	.SCLR(1'b0),
	.CLRN(rst_n),
	.D(data_in),

	.Q(q1)
);

and1 always1
(
    .data1(data_in),
	.data2(~q1),

	.out(q2)
);

DFF data_out_reg0
(
    .clk(clk),
	.SCLR(1'b0),
	.CLRN(rst_n),
	.D(q2),

	.Q(data_out)
);

endmodule

module DFF
(
    input    wire    clk,
	input    wire    SCLR,
	input    wire    CLRN,
	input    wire    D,

	output   reg     Q
);

always@(posedge clk or negedge CLRN)
    if (CLRN == 1'b0)
	    Q <= 1'b0;
	else
	    if(SCLR == 1'b0)
		    Q <= D;
		else if (SCLR == 1'b1)
		    Q <= 1'b0;
	    
endmodule

module and1
(
    input    wire    data1,
	input    wire    data2,

	output   wire    out
);

assign out = data1 & data2;

endmodule

写完以后看了别的大佬的写法,感觉自己太老实了。0.0

全部评论

相关推荐

11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
勇敢的联想人前程似锦:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务