Bitte vorigen Beitrag ignorieren.
Bei der Instanzierung wird ein Parameter namens CRC_INIT in das Modul
übergeben.
mit
modulname #(.PAR1(val1), .PAR2(val2) ...) instanzname ( ports);
können beliebig viele Parameter in die Instanz des Moduls übergeben
werden.
Im Modul selbst kann (muss?) dieser Parameter noch mit einem
Default-Wert versehen sein.
hier eine Beispiel für ein generisches Dualport-RAM:
1 | module dpmem
|
2 | #(parameter DATA_WIDTH=32, parameter ADDR_WIDTH=9)
|
3 | (input clk,
|
4 |
|
5 | input wren_a,
|
6 | input [ADDR_WIDTH-1:0] addr_a,
|
7 | input [DATA_WIDTH-1:0] data_a,
|
8 | output reg [DATA_WIDTH-1:0] q_a,
|
9 |
|
10 | input wren_b,
|
11 | input [ADDR_WIDTH-1:0] addr_b,
|
12 | input [DATA_WIDTH-1:0] data_b,
|
13 | output reg [DATA_WIDTH-1:0] q_b
|
14 | );
|
Instanziert werden kann das dann z.b. mit abweichenden Parametern:
1 | dpmem #(.DATA_WIDTH(32), .ADDR_WIDTH(3)) codemem(.clk(),
|
2 | .wren_a(),
|
3 | .addr_a(),
|
4 | .data_a(),
|
5 | .q_a(),
|
6 |
|
7 | .wren_b(),
|
8 | .addr_b(),
|
9 | .data_b(),
|
10 | .q_b()
|
11 | );
|