Naming Convention Benefits

This discussion assumes familiarity with the Naming Convention Technical Reference.

Ports and interfaces of the IP Core use a naming convention that is helpful in keeping important context throughout the RTL. We recommend propagating the naming convention beyond the IP instantiation and deep into the hierarchy of your design. It will prove worthwhile when verifying, debugging, and programming via our software API.

An example endpoint’s ports are shown below for the PipeIn endpoint addressed at 0x81:

  • pi81_ep_dataout
  • pi81_ep_write

We recommend propagating the naming convention to the net names by combining both the connecting port’s name and a _DESCRIPTION tag. The description tag will identify the utility the endpoint is providing to the RTL module. For example, if we are bringing in a video feed from the PC to be processed in the FPGA, we could name nets connecting to the PipeIn endpoint’s ports as follows:

wire [31:0] pi81_ep_dataout_video_feed;
wire        pi81_ep_write_video_feed;

frontpanel_example nameing_convention_example (
  .okUH(okUH),                                    // input wire [4 : 0] okUH
  .okHU(okHU),                                    // output wire [2 : 0] okHU
  .okUHU(okUHU),                                  // inout wire [31 : 0] okUHU
  .okAA(okAA),                                    // inout wire okAA
  .okClk(okClk),                                  // output wire okClk

  .pi81_ep_dataout(pi81_ep_dataout_video_feed),   // output wire [31 : 0] pi80_ep_dataout
  .pi81_ep_write(pi81_ep_write_video_feed),       // output wire pi80_ep_write
);
Code language: JavaScript (javascript)

Propagating the naming convention deep into the hierarchy of the design, beyond the IP Instantiation, provides the following benefits:

<Shorthand for endpoint type><Endpoint address in hex>_ep_<Endpoint Signal>_<DESCRIPTION>

  • <Shorthand for endpoint type> and <Endpoint Signal> gives the context required to identify the behavior of the endpoint’s Signals as described in USB 3.0 HDL
  • <Endpoint address in HEX> allows for quickly identifying endpoint Signals targeted by software API calls. I.e., WriteToPipeIn for the above example.
  • _<DESCRIPTION> provides design specific context.