题解 | #使用子模块实现三输入数的大小比较#

使用子模块实现三输入数的大小比较

http://www.nowcoder.com/practice/bfc9e2f37fe84c678f6fd04dbce0ad27

其实调用两次子模块应该就可以了,但是会报错,可能是测试用例的问题吧,改成三次就好了,代码如下:
`timescale 1ns/1ns
module child_mod(
input            clk,
input            rst_n,
input [7:0]      data_a,
input [7:0]      data_b,
output [7:0]     c
);

reg [7:0]     c_reg;


always@ (posedge clk&nbs***bsp;negedge rst_n) begin
    if(~rst_n) begin
    c_reg <= 0; end
    else begin
       if(data_a > data_b) c_reg <= data_b;
       else c_reg <= data_a;
    end
end

assign c = c_reg;

endmodule



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] middle1;
wire[7:0] middle2;

child_mod   U1(
            .clk(clk),
            .rst_n(rst_n),
            .data_a(a),
            .data_b(b),
            .c(middle1)
);

child_mod   U2(
            .clk(clk),
            .rst_n(rst_n),
            .data_a(a),
            .data_b(c),
            .c(middle2)
);

child_mod   U3(
            .clk(clk),
            .rst_n(rst_n),
            .data_a(middle1),
            .data_b(middle2),
            .c(d)
);


endmodule


全部评论

相关推荐

点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务