Czy możliwe jest tworzenie warunkowo modułu w verliog?Warunkowe tworzenie modułu verilog
przykład:
if (en==1)
then module1 instantiation
else
module2 instantiation
Czy możliwe jest tworzenie warunkowo modułu w verliog?Warunkowe tworzenie modułu verilog
przykład:
if (en==1)
then module1 instantiation
else
module2 instantiation
Można użyć dyrektywy kompilatora jak
`define FOO
`ifdef FOO
module1 ...
`else
module2 ...
`endif
aby wybrać konkretyzacji w czasie kompilacji.
Jeśli pytasz, czy możesz utworzyć moduł na podstawie wartości przewodowej, nie możesz tego zrobić.
Nie można tego zrobić w czasie wykonywania, ponieważ opisuje się sprzęt, którego nie można zmienić w locie. Możesz włączyć lub wyłączyć funkcję oszczędzania energii, ale nie możesz jej zatrzymać. Zakładając, że chcesz poprawić ponowne użycie lub konfigurowalność bloków:
Często używane są techniki poprzedzające kompilację, jak również "definicje" (tyk).
Będą składać się z skryptu Perl, ruby itp., Który analizuje plik szablonu.
IEEE Std 1364-2001:
12.1.3.3 generowania uwarunkowane generowania uwarunkowane jest czy else, jeżeli generują konstrukt pozwala na moduły, użytkownika elementarnych operacji, Verilog elementarnych operacji bramy ciągły przypisania, bloki początkowe i są zawsze blokami, które mają być warunkowo tworzone w innym module w oparciu o wyrażenie, które jest deterministyczne w momencie opracowania projektu: .
przykład podano w LRM:
module multiplier(a,b,product);
parameter a_width = 8, b_width = 8;
localparam product_width = a_width+b_width; // can not be modified
// directly with the defparam statement
// or the module instance statement #
input [a_width-1:0] a;
input [b_width-1:0] b;
output [product_width-1:0] product;
generate
if((a_width < 8) || (b_width < 8))
CLA_multiplier #(a_width,b_width) u1(a, b, product);
// instantiate a CLA multiplier
else
WALLACE_multiplier #(a_width,b_width) u1(a, b, product);
// instantiate a Wallace-tree multiplier
endgenerate
// The generated instance name is u1
endmodule
Jeśli znalazłeś odpowiedzi na swoje pytanie, możesz je zaakceptować. To daje ludziom motywację, by później odpowiedzieć na więcej twoich pytań. – Morgan