# subcomponent component reg word_length: generic integer = 8 T_IO : generic type = bitvector(word_length) data_in : in T_IO data_out : out T_IO register storage : T_IO = 0 begin storage = data_in data_out = storage end # top-level component component top word_length: generic integer = 12 T_topIO : generic type = bitvector(word_length) data_in : in T_topIO data_out : out T_topIO variable data_internal: T_topIO generate r1: reg T_IO = T_topIO data_in => data_in data_out => data_internal r2: reg word_length = word_length data_in => data_internal data_out => data_out begin # no functionality at this level end