题解 | #使用子模块实现三输入数的大小比较#
使用子模块实现三输入数的大小比较
http://www.nowcoder.com/practice/bfc9e2f37fe84c678f6fd04dbce0ad27
/看了答案区和评论区,想说一下,一般我们在verilog的主程序中是不写代码的,只进行各个模块的实例化工作。/ `timescale 1ns/1ns module main_mod( input clk, input rst_n, input [7:0]a, input [7:0]b, input [7:0]c,
output [7:0]d
); wire [7:0]m,n; comparew u1( .clk(clk), .rst_n(rst_n), .data1(a), .data2(b), .data3(m) ); comparew u2( .clk(clk), .rst_n(rst_n), .data1(b), .data2(c), .data3(n) ); comparew u3( .clk(clk), .rst_n(rst_n), .data1(m), .data2(n), .data3(d) ); endmodule // module comparew( input clk, input rst_n , input [7:0]data1, input [7:0]data2,
output reg[7:0]data3 ); always @(posedge clk or negedge rst_n) begin if(!rst_n) begin data3<=1'd0; end else if(data1<data2) begin data3<=data1; end else begin data3<=data2; end end endmodule