Learning BSV‎ > ‎Attributes‎ > ‎

Clock and Reset Naming Attributes

The non-default clock and reset inputs to a module will have a port name created using the argument name and any associated prefix for that port type. This name can be overridden on a per-argument basis by supplying argument-level attributes that specify the name for the port.

Default Naming

clock name = clockprefix_argumentname
gate name = gateprefix_argumentname
reset name = reset_prefix_argumentname

Attribute Syntax

(* osc = "clockname" *)
(* gate = "gatename" *)
(* gate = gate_inhigh *) or (* gate = gate_unused *)
(* reset= "resetname" *)

As with all attributes, multiple attributes can be combined on a single line, separated by commas, or put on multiple lines. The attribute is positioned immediately before the object it is modifying.

BSV Example

(* synthesize, gate_all_clocks, default_gate_unused *)
module mkMod((* osc="ACLK", gate="AGATE" *) Clock clk,
(* reset="RESET" *) Reset rst,
ModIfc ifc);

Generated Verilog

module mkMod(ACLK,
input ACLK;
input AGATE;
input RESET;
input CLK;
input RST_N;