题解 | #使用子模块实现三输入数的大小比较#
使用子模块实现三输入数的大小比较
https://www.nowcoder.com/practice/bfc9e2f37fe84c678f6fd04dbce0ad27
为了在同一拍读取三个输入的数值,使用两次子模块比较,比较结果再用一次子模块比较;
子模块的输出端口为reg。
`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] tmp_1; wire [7:0] tmp_2; cmpr_sml c1(clk,rst_n,a,b,tmp_1); cmpr_sml c2(clk,rst_n,a,c,tmp_2); cmpr_sml c3(clk,rst_n,tmp_1,tmp_2,d); endmodule /* module cmpr_sml( input clk, input rst_n, input [7:0] in_1, input [7:0] in_2, output reg [7:0] out ); */ module cmpr_sml(clk,rst_n,in_1,in_2,out); input clk; input rst_n; input [7:0] in_1; input [7:0] in_2; output reg [7:0] out; always @(posedge clk or negedge rst_n) begin if(!rst_n) out <= 0; else if (in_1<=in_2) out <= in_1; else out <= in_2; end endmodule