Gibt es ein Idiom in Verilog oder Systemverilog, mit dem ich eine Kompilierzeitvariable inkrementieren kann? Ich möchte in der Lage, so etwas zu tun:Verilog: Gibt es ein Idiom für einen inkrementierenden Kompilierzeitzähler?
wire [MAX_IRQ:0] irq_vec;
localparam IRQ_COUNT = 0;
`ifdef INCLUDE_UART
uart inst_uart(
.irq(irq_vec[IRQ_COUNT]),
...other ports...
);
IRQ_COUNT = IRQ_COUNT + 1;
`endif
`ifdef INCLUDE_TIMER
timer inst_timer(
.irq(irq_vec[IRQ_COUNT]),
...other ports...
);
IRQ_COUNT = IRQ_COUNT + 1;
`endif
Das, was ich zu tun versuche, ist eine Synthese Parameterdatei zu haben, die mich gewählt haben, die Anzahl und die Art der Ressourcen ermöglicht, die ich in dem System enthalten und machen Die Adressenzuordnung und die IRQ-Zuordnungen und solche richten sich automatisch abhängig von den ausgewählten Syntheseoptionen ein. Oder hat jemand eine bessere Methode, um dasselbe zu erreichen?
Sieht aus wie 'Generate if' würde in dieser Situation funktionieren. – Morgan