Configuration |
A configuration specifies the version and location of a module.
config configuration_name; design [ library. ]toplevel_module; [ default liblist library library ...; ] [ instance_or_cell name location; ] endconfig instance_or_cell = instance | cell location = liblist library | use what_to_use what_to_use = [ library. ]instance [ : configuration_name ] | configuration_name
A configuration specifies the exact version and source location of each Verilog module. The configuration is specified outside the module declaration, so the Verilog module does not need to be modified to reconfigure a design. The configuration name exists in the same namespace as module and primitive names.
Virtual libraries are used in the configuration. The virtual libraries are associated with physical locations with a separate library map file.
config Cfg; design rtlLib.top; // toplevel module default liblist rtlLib gateLib; // virtual library search order instance top.sub.u1 liblist gateLib; cell top.sub.u2 use gateLib.mux; instance top.sub.u3 use Cfg2; endconfig // separate library map file library rtlLib ./*.v; library gateLib ../../synth/*.v;