Hi guys i have 2 module. Fisrt module is generating clock signal ---------------------------------------------------------------- module ClockGenerator( output reg clk ); // Define clock period parameters parameter CLK_PERIOD = 10; // Define the clock period in simulation time units // Initialize clock initial begin clk = 1'b0; // Start with the clock low end // Toggle the clock signal at every half of the period always #((CLK_PERIOD/2)) clk = ~clk; endmodule ------------------------------------------------------------------------ ---- Secound module is counter to 16 then reset to 0 when it reach 16 ------------------------------------------------------------------------ ----------- module CounterAndReset( output reg [3:0] count, input wire clk, input wire reset ); // Define the maximum count value parameter MAX_COUNT = 4'b1111; // Initialize count always @(posedge clk or posedge reset) begin if (reset) begin count <= 4'b0000; // Reset count to 0 end else begin if (count == MAX_COUNT) begin count <= 4'b0000; // Reset count to 0 when it reaches MAX_COUNT end else begin count <= count + 1; // Increment count end end end endmodule I want to ask is how to combine these to module together. Thanks all
Thiều Quang A. wrote: > I want to ask is how to combine these to module together. I would use a top level module (top.v) and there you can instantiate both sub modules. Untested example:
1 | module top; |
2 | |
3 | reg main_clk; |
4 | reg main_reset = 0; |
5 | wire [3:0] main_count; |
6 | |
7 | ClockGenerator inst_1 ( |
8 | .clk(main_clk) |
9 | );
|
10 | |
11 | CounterAndReset inst_2 ( |
12 | .clk(main_clk), |
13 | .reset(main_reset), |
14 | .count(main_count) |
15 | );
|
16 | |
17 | endmodule
|
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.