I wonder if there is a difference between creating several instantiation of a single module and to instantiate different modules (with identical hardware code) only one time.
For example, I want to make an operation --binary division--, I need to do 2 divisions consecutive, example B = 1 / A and C = A / 28, which I need to happen at the same time, so I create the module in another file named Bin_Div. In the top module I type
Module top_mod_oper (A,B,C); input [31:0] A; output [31:0] B, C; Bin_Div inst1 ( .dataa (A), .output (B)); Bin_Div inst2 ( .dataa (A), .output (C)); endmodule
that will create 2 independient hardware, correct? would it be the same that just create a second Bin_Div, for example
. . . First_Bin_Div inst1 ( .dataa (A), .output (B)); Second_Bin_Div inst1 ( .dataa (A), .output (C)); endmodule
And Another question, what should I do if I want them to happen consecutively, it means one after the other using the same hardware Bin_DiV.