Pedro - 2012-10-16

I tried typing in a little example code to see how it would feel. The net structure really cleans up the top level of the design.

// FPGA Config Bus
net[25:1] cfg_addr; 
net[15:0] cfg_data; 
net cfg_we_n, cfg_oe_n, cfg_cclk, cfg_reset_n, cfg_ce_n;

If this went down through a hierarchy level that assignment would look like this.

subInst fpga1 of fpga {
    ....
    cfg_addr = cfg_addr;
    cfg_data = cfg_data;
    cfg_we_n = cfg_we_n;
    cfg_oe_n = cfg_oe_n;
    cfg_cclk = cfg_cclk;
    cfg_reset_n = cfg_reset_n;
    cfg_ce_n = cfg_ce_n;
    ....
}

This is a little bit of a bad example because the FPGA configuration bus should not go through a level of hierarchy but for argument's sake the structure might look like this.

// FPGA Config Bus
netstruct config_bus{
    net[25:1] addr;
    net[15:0] data;
    net we_n, oe_n, adv_n, wait, clk, reset_n, wp_n, ce_n;
}

and the assignment to the hierarchy block would be a lot cleaner.

subInst fpga1 of fpga {
    ....
    config_bus = config_bus;
    ....
}

My gut tells me this is a nice feature that can be postponed for quite a while.

Pete