Skip to content
Snippets Groups Projects
Commit 0cdf162d authored by Eric Kooistra's avatar Eric Kooistra
Browse files

Updated after discussion on 10 june by Daniel, Harm Jan and Eric

parent 7b963ca5
No related branches found
No related tags found
No related merge requests found
...@@ -24,45 +24,76 @@ This file keeps some historical notes on the OneClick prestudy results. ...@@ -24,45 +24,76 @@ This file keeps some historical notes on the OneClick prestudy results.
chain of BG > MUX > DB. Threads provide parallelism however in Python they chain of BG > MUX > DB. Threads provide parallelism however in Python they
all run in one process, so on one core. all run in one process, so on one core.
- Remarks: 3)Agreed remarks, 10 june 2014:
a modelling fanin is not needed, because this does not occur in the digital a the model should reflect the digital problem domain, i.e. like a schematic.
this approach can help to decide what to model and how much. The model
(the solution) should not be more complex than the reality (the problem).
b if the oneclick tool is setup well structured with a few basic concepts
then also apperently sophisticated features of modelling and code
generation will come for free.
c modelling fanin is not needed, because this does not occur in the digital
domain domain
b modelling fanout does occur, e.g. mux connects to 2 DB, or a stream that d modelling fanout does occur, e.g. mux connects to 2 DB, or a stream that
also connects to a dp_bsn_monitor. also connects to a dp_bsn_monitor.
c components can connect using there default IO indexing like bg > mux, but e connections can be modelled by queues or pipes. The queue builds on top of
pipe, pipe simulates faster, is using pipe sufficient for our modelling
4)Open remarks:
a components can connect using there default IO indexing like bg > mux, but
there are also use cases for connecting components per stream using there are also use cases for connecting components per stream using
alterantive indexing, e.g. to use only one output of dp_split or e.g. to alterantive indexing, e.g. to use only one output of dp_split or e.g. to
connect bg[0] > mux[1] and bg[1] > mux[0] connect bg[0] > mux[1] and bg[1] > mux[0]
d connections can be modelled by queues or pipes. The queue builds on top of b where is the is the connection modelled, as a seperate object, as part of
pipe, pipe simulates faster, is using pipe sufficient for our modelling every component snk (to support fanout)?
e where is the is the connection modelled, as a seperate object, as part of c do we need to model something like VHDL signals? Note that the signals in
every component snk (to support fanout)? VHDL are kind of objects with methods like 'EVENT. What about the other
f the statement bg > mux > db has multple '>' connectors per statement, this items in VHDL like ports, generics?
d the statement bg > mux > db has multple '>' connectors per statement, this
works because bg > mux returns the output of mux as input for db. Does this works because bg > mux returns the output of mux as input for db. Does this
properly reflect the digital domain. properly reflect the digital domain.
g what does the connector '>' reflect, is it the data transport or also the e what does the connector '>' reflect, is it the data transport or also the
structure. The data transport function is important for the functional structure. The data transport function is important for the functional
simulation of the model. The structure function is important for simulation of the model. The structure function is important for
the code generation from the model. the code generation from the model.
h does the structure need hierarchy or does flat interconnect better match f does the structure need hierarchy or does flat interconnect better match
the problem domain. For a multi node model using hierarchy seems the problem domain. For a multi node model using hierarchy seems
appropriate. Similar for creating higher level components in Python, appropriate. Similar for creating higher level components in Python,
provided provided
h MyHDL uses the return of functions that model the RTL processes to create g MyHDL uses the return of functions that model the RTL processes to create
the structure. the structure.
i what about defining also an '=' operator like in d = bg > mux. Does the '=' h what about defining also an '=' operator like in d = bg > mux. Does the '='
create hierarchy or is d merely an auxiliary variable. The purpose of create hierarchy or is d merely an auxiliary variable. The purpose of
hierarchy is to facilitate reuse (i.e. multple instances) or to make the hierarchy is to facilitate reuse (i.e. multple instances) or to make the
code more clear. code more clear.
j what about using '(' and ')' like in d = bg > mux > (db0, db1), is that i what about using '(' and ')' like in d = bg > mux > (db0, db1), is that
useful or too much useful or too much
k having 800 processes per machine seems sufficient, but can it been j having 800 processes per machine seems sufficient, but can it been
increased and how. increased and how.
l The model should reflect the digital problem domain, i.e. like a schematic. k d = a > b > c and then d.generate() generates the VHDL. The toplevel of d
this approach can help to decide what to model and how much. The model gets the input of a and the output of c. There structure canbe constructed
(solution) should not be more complex than the reality (the problem). in two steps, first instantiate a, b, c with signals on there ports and
then assign these signals to make the connections.
- next steps: l propagate all generics to the top entity d or fill in all generics and
DS investigate c) propagate no generic to the top entity, or some intermediate scheme. If
HJP investigat b), d) the composite d needs to be reused then it may be useful to still keep
some generics.
m using p = a > b and then d = p > c and then d.generate() creates VHDL
with hierachy p. using d = a > b > c and then d.generate() creates a flat
structural VHDL.
n using p = a > b and q = a > e and then d = p > c and then d.generate()
creates VHDL for d and to no VHDL for q, i.e. q and the connection from
a to e only exist at the modelling level.
5) next steps:
It is to early to actually start implemeting e.g. parts of the code
generation like parsing a VHDL entity, first we need to:
a get more clear what is needed for a python base class for modelling and
code generation.
b think of more use cases to find out what we need to represent and how.
DS propose a python setup in SVN for the oneclick prestudy investigations
HJP .
EK .
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment