System Level Design Languages:An Example and SSimBoard

An Example :SSimBoard

In this chapter, we will describe a simple system, used as an example to describe UML diagrams. In the hardware design environment, the increase in the size of designs and the number of design inputs cause the simulation process to become very time-consuming. Our example system is an accelerator board for improving speed of circuit model simulation (SPICE simulation).

Figure 86.3 shows a view of this system. As shown in this figure, this system consists of two main parts: a master and a slave. The master part in this system can be a general PC. The user, who needs to simulate a SPICE design, interacts with the master via a Graphic User Interface (GUI). The slave, in contrast, is a board including a CPU and a memory module. SPICE simulation task is performed by the slave via a SPICE simulation program that is installed on its CPU. The interconnection between master and slave is performed via a parallel port. Therefore, there are drivers for parallel ports in both master and slave sides.

System Level Design Languages-0199

The slave board, which we will refer to as SSimBoard, attaches to the computer system handling the simulation via a parallel port. The simulator program and necessary drivers are placed in the board’s memory.

The designer sends his or her design file and the design input vectors to the slave board via the parallel port from the GUI in the master side. Then the simulation process starts by running the simulator program on the SSimBoard’s processor. Since this processor has no other task to perform, it helps the designer to perform faster simulation runs. If the circuit to be simulated is very large, or if there are a large number of input stimuli, this board can either only simulate a part of the circuit or simulate the circuit for only a portion of input stimuli. The partitioning strategy must be defined by the master side via GUI.

We use C++ for the design of software parts (GUI and driver in the master side, and SPICE simulator and driver in the slave side), and SystemC for its hardware parts (CPU and memory modules in the slave side).

System Level Design Languages-0200

As shown in Figure 86.3, we have to develop the following components for our system:

SPICE simulator: This program is a software program that accepts a SPICE model and simulates the values on the lines in a defined duration of time.

Graphical user interface (GUI): To load the hardware design and its test vectors, there needs to be a program that the designer can work with. This GUI also shows the received results of the simulation.

Port driver: A driver for communication between SSimBoard and the computer needs to be developed (in this case, for parallel port).

A CPU model: For developing the hardware part (slave), we need to model the components of this board. One of these components is a CPU. We have chosen the Sayeh CPU (a simple academic processor) as our CPU. Any other CPU can be used in this design. As stated earlier, we want to develop our hardware models in SystemC.

A memory model: Another hardware component which needs to be included in SSimBoard is a memory model. This model works with the Sayeh CPU.

As the final result of the system, we will have a board attached to a PC via the PC’s parallel port and a SPICE simulator is loaded on it, and a software program on the PC that communicates with this board in a user-friendly manner. The scenario a user has to follow to work with this system is listed in the following steps and is shown in Figure 86.4.

1. The hardware designer (who is the user of this system) describes his or her circuit in SPICE.

2. The designer develops test data for his or her SPICE model.

3. The designer connects SSimBoard to the computer and switches on the board.

4. The designer runs the GUI and sends a specified design and input vector files through this GUI to SSimBoard.

5. The designer starts the simulation process by issuing the start SPICE simulate command through the GUI.

6. The SPICE simulation process runs on the SSimBoard CPU. During this process, the user can perform other programs on the PC.

7. Completion of the SPICE simulation is announced by SSimBoard to the PC via the parallel port connecting the two systems. The user becomes aware of this through the GUI.

8. The user can receive the simulation result through the GUI.

9. The GUI will show the simulation result in a graphical mode.

System Level Design Languages-0201

To design this system, we implement the necessary software components of SSimBoard and PC in C++, design the hardware of SSimBoard CPU and memory in SystemC, and cosimulate these two parts in a C++ environment. On the SSimBoard side the software components are its parallel port driver and a SPICE simulator; and on the PC side, a parallel port driver and GUI constitute its software components. After coverification of hardware and software parts, we can follow the hardware manufacturing steps (synthesis, postsynthesis simulation, layout generation, manufacturing the ICs, PCB generation, etc.) to create our SSimBoard.

The design process we are pursuing is shown in Figure 86.2. In this process, we model our system in UML and analyze different parts of the system with UML diagrams. With a suitable CASE tool, a code generator tool in this case, we automatically generate the structure of the necessary codes from our models. The other advantage of modeling before developing the codes of the system is that the system specification can be refined in this stage. In many cases, when we develop our codes and implement several parts of our system, we confront several problems in our early specification. Correcting these problems sometimes leads to changing the whole design (and even throwing away the codes we have already developed).

Having a strong modeling and analysis tool is also useful in fixing problems that are found in the later design stages. This means that if we face a problem after code development and we need to redesign the system, the redesigning process will be easier than redesigning without a proper set of CASE tools.

The section that follows discusses UML 2.0 diagrams. In each part a simple example related to the SSimBoard design is shown.

Comments

Popular posts from this blog

SRAM:Decoder and Word-Line Decoding Circuit [10–13].

ASIC and Custom IC Cell Information Representation:GDS2

Timing Description Languages:SDF