Beruflich Dokumente
Kultur Dokumente
Algorithm Simulation
BP domain
Partition
VHDL
CGC
BP scheduler
interface insertion
: interface node
CGC
Dataflow in
original design
Event Queue
VHDL
test vector
VHDL
Dataflow
in Backplane
Dataflow
Visulaization using socket
Code generation
with interface
VHDL
compile with
Unix CC
Unix
Process
construction
simulator
VHDL
cosimulation
simulator
Synthesize
DSP compiler
Evaluation
C Process
VHDL simulator
not satisfied
O.K.
DSP executable file
#&+
+ +$% +"
No restriction on VHDL specification : A previous work from U.C.Berkeley restricted the VHDL program, which is generated from a program graph with
SDF semantics, to a single thread of control [8]. Even
though this approach schedules the communication
statically for deadlock avoidance as well as runtime
performance improvement, it is too restrictive for general applications. In [8], only one sequential process is
running on the VHDL simulator. Our VHDL specification has no such restrictions on VHDL model. In fact,
we add a new VHDL module as the interface module,
which will run concurrently with the VHDL graph.
No modification of the initial specification : Generally, in the initial algorithm specification, there is
no considerations for partitioning and interfacing. So,
whenever the cosimulation is needed, interface code
should be generated on every hardware-software partition automatically. By only adding new the interface, a
cosimulation is constructed, without any modification
of the user design.
No modification of VHDL simulator : Since we will
use existing VHDL simulators for HW simulation, this
requirement is crucial. Many of problems we met in
4 Implementation
)"
#)
$
'
%&
inf(1) object_time
inf(2)
VHDL signal
VHDL foreign interface
M_1
Receive
Send
Receive
Send
#+)
$% ! $ %'
#)'*+%
A callback function for hooking the scheduler: Before the VHDL simulators scheduler advances to the
next cycle, a function pointed by a pointer is called. In
normal situation the pointer is pointed a null function.
If a cosimulation environment designer wants to hook
it up, he defines a function body and set the pointer to
the new address. If the supported language is a C++,
it will be done by a virtual function. By the callback
mechanism, the master node can be executed at the end
of the current wheel. Then, we will do without the
delta delay management described above.
+
)
#
$ &+
#)
$
17688
5628
Fixed
VHDL
module
(lines)
341
25
'
#
$ &
VHDL
lines
per
Receive
2
27
VHDL
lines
per
Send
2
17
#)
$
6 Conclusion
We have presented a new interface mechanism for
hardware-software cosimulation. We think that the approach, which satisfies all of the requirements in the wish-
User Module
65,905
127,768
190,005
259,545
327,625
Interface
Module
5,599
8,772
11,522
15,220
18,399
References
[1] C. Passerone, et. al.
Fast and accurate hardwaresoftware co-simulation using software timing estimates.
CODE/CASHE96, 1996.
[2] E. A. Lee. Recurrences, Iteration, and Conditionals in Statically Scheduled Block Diagram Language in VLSI Signal
Processing III. IEEE Press, 1988.
[3] E. A. Lee, and D. G. Messerschimitt. Synchronous data flow.
IEEE Proceedings, September 1987.
[4] G. Jennings. A case against event driven simulation of digital system design. The 24th Annual Simulation Symposium,
pages 170176, April 1991.
[5] IEEE. IEEE Standard VHDL Language : Reference Manual. IEEE, Inc., 345 East 47th Street, New York, NY 10017,
USA, 1993.
[6] J. Buck, S. Ha, E. A. Lee, and D. G. Messerschimitt.
Ptolemy: A framework for simulating and prototyping heterogeneous systems. International Journal of Computer
Simulation, 4:155182, April 1994.
[7] J. P. Soninen, et. al. Co-simulation of real-time control systems. IEEE/ACM Proc. of Euro-Dac95, pages 170175,
1995.
[8] J. Pino, Michael C. Williamson, and Edward A. Lee. Interface Synthesis in Heterogeneous System-Level DSP Design
[9]
[10]
[11]
[12]
[13]