Suppose I have a component, called Top_Level, that has a bunch of registers that it uses. There are some subcomponents that perform some combinational logic using the registers. There is also a clocked process, Process_1, that does sequential operations on the registers. So, every clock cycle, Process_1 does some sequential stuff with the registers. Then, the subcomponents in Top_Level do their combinational logic.
Process_1 is getting kind of big, so I'd like to make it a subcomponent of Top_Level called Component_1. Here's the problem: to make Process_1 a subcomponent of Top_Level I have to move all of the registers that it uses down to the new Component_1. But then the other subcomponents in Top_Level wouldn't be able to access those registers.
Is there a way to get the registers of Component_1 to also act as outputs of Component_1? Then I could copy/paste my code into Component_1 without having to rename all of my registers and signals.