Home > Synthesis


Synthesis

The whole IP core of Niloofar 1 have been successfully mapped to an ASIC technology using LeonardoSpectrum. It was CUB provided by AMS [AMS01]. The core have been tested in LeonardoSpectrum for being a fully synthesizable code, so it may be mapped to any other desired standard technology.

The circuit level simulation of the core was needed a lot of time. We had to try this kind of simulation just on a part of the whole processor. One of the ALUs was selected for this issue. A new core was written including the ALU and some of the complementary parts that were needed for the simulation. Refer for the released package contents to find more about the file that  contains the implemented core (Nf_alu1.v).

The following program was written for testing the circuit level simulation and its compiled version was included in the Nf_alu1.v.

alu_t1.s

# Testing the Niloofar 1's implemented ALU

        movi r1, 0x1234
        movi r2, 0x5678
        movi r3, 0x9abc
        movi r4, 0xdef0
        movi r5, 0xafcd
        movi r6, 0xaaaa
        movi r7, 0xffff

        nop
        nop
        nop
        nop

Figure 2 shows the result for the simulation of Nf_alu1.v in ModelSim. In this core the input ports are clk and rst. Program counter and ALU bus were considered as output ports.

Click to enlarge
Figure2. The simulation of Nf_alu1.v in ModelSim

It was successfully mapped to 0.6 µm CMOS Si-Gate process technology provided by Austria Micro Systems. LeonradoSpectrum have been used for optimization and technology mapping. RTL schematic have been illustrated in Figure 3. Here is the output of LeonardoSpectrum.

The Report of LeonardoSpectrum

*******************************************************
 
Cell: Nf1_alu1    View: INTERFACE    Library: work
 
*******************************************************
 
 
             Cell          Library  References     Total Area
 
             AN21              cub     9 x      1      6 gates
            AN211              cub     2 x      1      2 gates
             AN22              cub   123 x      1     95 gates
            AN222              cub     9 x      1     10 gates
            AN311              cub     1 x      1      1 gates
             AN32              cub     1 x      1      1 gates
             AND2              cub    21 x      1     13 gates
            AND43              cub     3 x      1      2 gates
            AO222              cub     3 x      1      4 gates
             AO31              cub     6 x      1      6 gates
              BU2              cub     7 x      0      3 gates
              DF8              cub    23 x      1     32 gates
             DFS8              cub   146 x      2    292 gates
              EN1              cub    16 x      1     12 gates
              EN3              cub     1 x      2      2 gates
              EO1              cub     2 x      1      2 gates
              IN2              cub    33 x      0     10 gates
              IN8              cub     1 x      1      1 gates
              NA2              cub    32 x      0     15 gates
              NA3              cub     3 x      1      2 gates
              NA4              cub    24 x      1     18 gates
              NA5              cub     9 x      1      8 gates
              NO2              cub     9 x      0      4 gates
              NO3              cub     3 x      1      2 gates
             NO32              cub    11 x      1     10 gates
            OA211              cub     2 x      1      2 gates
             ON21              cub    24 x      1     15 gates
            ON211              cub     6 x      1      5 gates
             ON22              cub     1 x      1      1 gates
            ON221              cub     5 x      1      5 gates
            ON222              cub     2 x      1      2 gates
             ON31              cub     2 x      1      2 gates
            ON311              cub     1 x      1      1 gates
             ON32              cub     2 x      1      2 gates
              OR2              cub     1 x      1      1 gates
 
 Number of ports :                      23
 Number of nets :                      564
 Number of instances :                 544
 Number of references to this view :     0
 
Total accumulated area :
 Number of gates :                     585
 
 
                        Clock Frequency Report
 
      Clock                : Frequency
      ------------------------------------
 
      clk                  : 113.2 MHz

 

Click to enlarge
Figure 3. RTL schematic of Nf_alu1.v in LeonardoSpectrum

An EDIF format netlist file is created by LeonardoSpectrum. It is used as an input netlist file for Tanner EDA L-Edit. In this way the whole circuit level layout of ALU have been created automatically (Figure 4).

Click to enlarge
Figure 4. Circuit level layout of Nf_alu1.v in Tanner EDA L-Edit

We have created a .sp format netlist file for ALU using L-Edit. It is used for circuit level simulation by Star H-SPICE. We analyzed the circuit using various frequencies as input clock. The simulation results for 5MHz and 100 MHz may be seen in Figure 5 and Figure 6. Every 4 bits of 16-bit ALU bus is shown by a separate wave, so one may easily compare the output of circuit level simulation with the output of ModelSim.

Click to enlarge
Figure 5. Circuit level simulation of Nf_alu1.v in Star H-SPICE, clk = 5 MHz

 

Click to enlarge
Figure 6. Circuit level simulation of Nf_alu1.v in Star H-SPICE, clk = 100 MHz

Next

Home

ISA

Phases Timing Branch Hazards Synthesis

References