Pipe proposal feedback

From: Bryan Sniderman <bryans_at_.....>
Date: Fri Mar 03 2006 - 11:56:17 PST
Hi all,

 

Here is my $0.02 with respect to PIPEs from the last few meetings (with
the exception of last week, when I was away).  Given this topic is still
active, I wanted to provide some feedback.

 

            - Bryan

 

------------------------------------------------------------------------
------

 

Regarding these various PIPE modes & discussion, here is my opinion
(unfortunately it was difficult to break into the conversation):

 

1.	There should be a query available to the user for model
capabilities (including valid PIPE modes)
2.	PIPEs should at least have the following configuration options:

	a.	 Mode:

                                                               i.
Streaming 

                                                             ii.
Reactive (based on EOM)  aka debug1 

                                                            iii.
Reactive (based on a per-call mode) aka debug2 

	b.	H/W depth of the pipe - since this needs be compiled
	c.	H/W max width of the pipe - since this needs to be
compiled

 

Q:  Is the EOM flag required or optional?  I assume models can opt to
use it or embed model specific flags in their data elements

 

3.	Pipe configuration options can *only* be set at init time ie.
the 'mode' of the pipe cannot be flipped at runtime (unknown side
effects)

	a.	It would be useful to have the ability to set *all*
pipes to the same mode (from the TB) - eg. via a static class variable 
	b.	Additionally, have the ability to override the global
pipe mode on a per pipe basis (more rare - user tweaking if required)
	c.	Note:  Data shaping & S/W depth x width can be
configured any time

 

4.	Pipe Mode default - ' streaming'.  If not I envision the
following issues:

	a.	If one PIPE is set to reactive, this may adversely
affect the performance of the testbench (if that pipe is used
frequently)
	b.	If reactive is the default, there is a concern that
modelers will only build models to work in that mode (and  will have no
incentive to fully support streaming)
	c.	Reactive mode should be used for debugging and bring up
generally.  If there are problems in streaming, this can be a 'safe'
fallback mode until a solution found
	d.	Streaming mode is the desired mode to run with the
accelerator (or else we are wasting precious resources).  We have a
strong desire to maximize efficiency and minimize switching between S/W
& H/W (which is costly in terms of time)
	e.	All models *should* flush if they are aware that the
last element is sent (that guarantees it will work in both streaming and
reactive modes).  That should be a base recommended rule and a safe
practice.

 

5.	Simulation vs Acceleration 

	a.	For basic simulation, we may set the PIPEs to either
streaming or reactive.  We would use streaming when we want to: 

                                                               i.
Run the simulation more efficiently (ie. switching over DPI/PLI vs the
simulator).

                                                             ii.
Ensure that that streaming TB works before going to the accelerator
(generally:  the accelerator/emulator is a shared resource, so we need
to minimize the time we spend on it 'debugging' models & the
environment.  As a result, we want to debug as much as possible under
simulation (ie. support streaming under simulation).

	b.	Reactive should be a fallback mode or during pure
simulation when simplicity is best or for debugging.

 

 
Received on Fri Mar 3 11:57:01 2006

This archive was generated by hypermail 2.1.8 : Fri Mar 03 2006 - 11:57:57 PST