`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]ab,ac;
sub_mod mod_ab(
. clk (clk),
. rst_n (rst_n),
. data_a (a),
. data_b (b),
. data_c (ab)
);
sub_mod mod_ac(
. clk (clk),
. rst_n (rst_n),
. data_a (a),
. data_b (c),
. data_c (ac)
);
sub_mod mod_abc(
. clk (clk),
. rst_n (rst_n),
. data_a (ab),
. data_b (ac),
. data_c (d)
);
endmodule
module sub_mod(
input clk,
input rst_n,
input [7:0]data_a,
input [7:0]data_b,
output reg [7:0]data_c
);
always@(negedge rst_n)begin
if(!rst_n)begin
data_c<=0;
end
end
always@(posedge clk)begin
data_c <= data_a<data_b ? data_a : data_b ;
end
endmodule
//模块调用模板
//注意 (data_c)reg 连线 (d)wire
// (data_a)wire 连线 (a)wire
//本质是连线 需要的输出
牛客网verilog VL9 使用子模块实现三输入数的大小比较
于 2023-11-03 16:15:21 首次发布