|
A high speed functional simulation method: Why SSMD is called gstatich
|
Event driven simulation versus Demand driven simulation:
Prior event driven simulation is a simulation method that tracks the logical value change, by using a ring buffer called gtime-wheel,h where individual entry contains a list of events corresponding to that time slot. There is a pointer corresponding to "now." that points an entry to be read the set of the events which are scheduled to be happen "now." Each event triggers another event in the future and scheduled to be triggered at corresponding time slot. Then the pointer is moved to the next entry to activate next events. The number of the entries must be larger than the maximum delay of the element in the system.
Although the event driven simulation is necessary to investigate sophisticated structure of the gates, the method tracks events which could not happen at the register transfer level (RTL). We proposed "on demand functional simulation method" in the following paper:
|
Ryuichi TAKAHASHI, Takeshi YOSHIMURA and Satoshi GOTO:
"A VLSI Architecture Evaluation System,"
Proc. International Conference on Computer Design, pp.60-63(1986)
|
-
We got this idea when I was thinking about the way to implement a simulator for my original RTL description in 1983.
In our system, RTL descriptions are divided into "primitive sections," which are executed at some moment in each module of the digital system. Each primitive section is translated into a function in C language and named primitive function. Then these primitive functions are compiled and linked together with a runtime support package.
During the simulation, the main program repeats the following activities:
Update the time (clock counts).
Call primitive functions which are active.
Update register values.
We called this method "on demand functional simulation" since Boolean expressions are evaluated by active primitive functions "on demand."
Our simulator was faster than the Verilog-XL in 1980's at the register transfer level(RTL).
For implementing this "on demand functional simulation," there was a hurdle that must be cleared.
The hardware description language DDL proposed by J. R. Duley and D. L. Dietmeyer seemed to be preferable since it was based on the concept of the automaton, which is the basic components of the digital system. Unfortunately DDL included the notation for the events. For example, DDL description for the handshaking is as follows
|
-
In the state "P0," this prefetch unit (PFU) substitutes value 1 to a terminal REQ_PFU which generates an event which must be tracked.
|
-
Another state machine named RAM watching REQ_PFU and REQ_EXU, which might be sent by execution unit (EXU), sends the acknowledge signal named ACK_PFU to the PFU if there is no request by EXU or priority indicator for the PFU has value 1.
This kind description forces us to implement the simulator by event driven.
For our "on demand functional simulation method," we devised the following description for the same situation which can be translated easily for a function of the C language.
|
-
This kind of description can be regarded as "static" in a sense that there is no event that must be tracked.
When I could have an opportunity to write a book on Verilog HDL[1] in 2008, I decided to use the words static state machine description (SSMD) for my description style which include the following description among the state machines in Verilog HDL.
|
-
For the SSMD Verilog HDL example descriptions, visit the page entitled System Development and Design Using Verilog HDL. You will find automaton descriptions in Verilog HDL.
The book[1] includes a figure illustrating the logic diagram for the above description to introduce SSMD.
|
Related publications:
- Ryuichi TAKAHASHI:
System Development and Design Using Verilog HDL
Kyoritu-pub.(2008)
ISBN978-4-320-12222-2...in Japanese
...SSMD is described in this book.
- Ryuichi TAKAHASHI:
"RT level simulation by evaluating Boolean formulae
backward on demand,"
IPSJ Special Interest Group on Design Automation report 51-8 (1990)...in Japanese
...Two different ways to implement
"on demand functional simulation method" are described:
by translating specifications into C language programs
by translating specifications into graphs, which consist of C language structures
Ryuichi TAKAHASHI, Takeshi YOSHIMURA and Satoshi GOTO:
A VLSI Architecture Evaluation System,
Proc. International Conference on Computer Design, pp.60-63(1986)
...This is the first paper, which illustrates the above simulation method.
Although I had been working for NEC Corp., I didn't write any patent on the above idea.
"On demand functional simulation method" is free to use.
|
|