`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] d_lest1; wire [7:0] d_lest2; compare compare_1( .clk (clk) , .rst_n (rst_n) , .data_1 (a) , .data_2 (b) , .out (d_lest1) ); compare compare_2( .clk (clk) , .rst_n (rst_n) , .data_1 (a) , .data_2 (c) , .out (d_lest2) ); compare compare_3( .clk (clk) , .rst_n (rst_n) , .data_1 (d_lest1) , .data_2 (d_lest2) , .out (d) ); endmodule module compare( input clk , input rst_n , input [7:0] data_1 , input [7:0] data_2 , output reg [7:0] out ); always@(posedge clk or negedge rst_n)begin if(!rst_n) out <= 'd0 ; else if(data_1 < data_2) out <= data_1 ; else out <= data_2 ; end endmodule