Synthesis tools can perform two operations on your design:
Flattening: They convert your hierarchical design into a single module in which there is no hierarchy. In this case, all signal names in the flatten module corresponding to signals in the non-flatten module mux_inst.aggr_portd_inst.dskw_inst
will have the prefix name: \mux_inst/aggr_portd_inst/dskw_inst
. The '\' is used to escape '/' character.
Bit-blasting: Bit-blasting is the term for breaking down a bus/array into its individual members. For example, an array which was originally defined as logic [2:0] array
will be broken into:
logic \array[2] ;
logic \array[1] ;
logic \array[0] ;
Again, the '\' is used to escape '[' and ']' characters. If they array was two-dimensional, you would have: logic \array[2][0] ;
, which acts like a single wire corresponding to member [2][0] of the array.
In your case, it looks like the synthesizer performed both flattening and bit-blasting.
There might be a rare occasion, where the synthesizer performs bit-blasting on only one dimension and keep the other dimension as an array. In that case, \array[2] [0] ;
has a different meaning than logic \array[2][0] ;
. The former is the member 0 of an array called \array[2]
, whereas the latter is a single wire which was the result of bit-blasting, corresponding to the index [2][0] of the array before bit-blasting.
.Z(\mux_inst/aggr_portd_inst/dskw_inst/ds_mem_slice_4__5_3 )
– AriZ
, and notA
? – EML