Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
H
HDL
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RTSD
HDL
Commits
0cdf162d
Commit
0cdf162d
authored
10 years ago
by
Eric Kooistra
Browse files
Options
Downloads
Patches
Plain Diff
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
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
tools/oneclick/prestudy/oneclick_prestudy_readme.txt
+53
-22
53 additions, 22 deletions
tools/oneclick/prestudy/oneclick_prestudy_readme.txt
with
53 additions
and
22 deletions
tools/oneclick/prestudy/oneclick_prestudy_readme.txt
+
53
−
22
View file @
0cdf162d
...
@@ -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 .
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment