> When you use Push ports, the component will send > information by pushing them to a PushOutput port
> When you use Pull ports, the component will send > information by putting them to a PullInput What I understand is that I can send information to either PushOutput or PullInput. Really isn't there any difference between them? I want to know when should I use PullInput and PushOutput? Please give a scenario that PullInput works but PushOutput doesn't. Thanks // Naderan *Mahmood; ----- Original Message ----- From: Volos Stavros <[email protected]> To: Mahmood Naderan <[email protected]>; simflex <[email protected]> Cc: Sent: Monday, July 11, 2011 3:15 PM Subject: RE: Some questions Hi Mahmood, When you instantiate a component array (e.g., L1-D cache), you need to specify its width. For example, SCALE_WITH_SYSTEM_WIDTH will be 16 in case of a 16-CPU simics checkpoint. When you multiply by 1, this means that the width of the component array will be 16. Regarding the difference between Pull and Push. When you use Push ports, the component will send information by pushing them to a PushOutput port which is connected to a PushInput of another component. When you use Pull ports, the component will send information by putting them to a PullInput which is connected to a PullOutput of another component. You use "push", >> and "pull", << respectively. The Stalled port of components such as uArch, uFetch, v9Decoder, FetchAddressGenerator is used in the multithreaded simulator and they are connected to the corresponding ports of the component MTManager. Regards, -Stavros. ________________________________________ From: Mahmood Naderan [[email protected]] Sent: Wednesday, July 06, 2011 8:26 AM To: simflex Subject: Some questions Hi 1- What does (...SCALE_WITH_SYSTEM_WIDTH, MULTIPLY, 1); mean in FLEXUS_INSTANTIATE_COMPONENT_ARRAY ? 2- What is the difference between PushInput and PullInput? Also PushOutput and PullOutput? It is easy to understand PushInput and PullOutput 3- some components has DYNAMIC_PORT_ARRAY( PullOutput, bool, Stalled). However "stalled" is not wired in simulator. Is it a special thing? When should I use that? Thanks // Naderan *Mahmood;
