ADK Cell Library-based Design From Verilog Synthesis

1. Create a behavioral Verilog description of the chip1 design

    1.1 If not already there, move back to your tutorial directory:
      >> cd egre429
      >> mkdir lab7
      >>cd lab7
     
    1.2 Open a new VHDL file called adder.vhd and using your favorite text editor and enter the following VHDL description into the file:

       
    For more details on the Verilog syntax supported for synthesis, see the Leonardo Spectrum HDL Synthesis Guide (/mentor/exemplar/doc/hdl_syn.pdf).
    1.3 Compile the VHDL file:
       
      >>vlib work
      >>vmap work ./work
      >>vlog adder.v
     
    You should see the following lines printed out with no errors:
    Model Technology ModelSim EE vlog 5.3d Compiler 2000.02 Feb  4 2000
    -- Compiling module adder1

    Top level modules:
            adder1

2. Simulate the Verilog model

3. Synthesize the VHDL models to ADK parts

    Click off the Run Wizard at Startup button in the INPUT FILES box and click Cancel.

    3.3 Use the Tools->Variable Editor... item from the pull down menus to bring up the System Variables dialog box. Select the edifout_power_ground_style_is_net variable and set it to TRUE. Use the same method to set the max_fanout_load variable to 14, the force_user_load_values variable to TRUE, the vhdl_write_component_package variable to FALSE, and the vhdl_write_use_packages variable to library IEEE, adk; use IEEE.STD_LOGIC_1164.all; use adk.all;

    Note that you can use a transcript file in Leonardo to set these variables faster for you in the future.

     3.4 In the main window, click on the  button in the Quick Setup tab  and select the adder.v file. Select ASIC->ADK->ami0.5(fast) in the Technologies box. Make sure that the  Insert I/O Pads  button is off. Select the Output tab and make set the Format to EDIF. Go back to the Quick Setup tab and click the Run button.

4. Simulate the synthesized design in Verilog to be sure it functions correctly

After the Verilog model is synthesized, it is always a good idea to functionally simulate the resulting design to ensure it functions correctly and the output matches the behavioral description. There are some legal, synthesizable Verilog constructs that, when synthesized, will not produce the same output as the functional description and synthesis tools have been know on rare occasions to produce incorrect results...

4.1 Map the compiled library of Verilog descriptions for the ADK parts into the proper location to compile the post-synthesis structural description (this library has been pre-compiled for you):

4.2 Compile the VHDL structural description:
>>vcom adder_1.vhd
4.3 Simulate the structural description of the adder:
>>vsim adder1 -L adk
Use the View->Signals... menu item to bring up the Signals display. Use the View->Wave->Signals in design menu item in the Signals window to create a Wave window. Finally, force values on each of the input signals using the Force... menu item in the Signals window and run the simulation using the Run->100ns menu item in the main window. The resulting Wave window should look like this:

5. Create a symbol and schematic for the synthesized part

    5.6 Now you will use the Mentor Graphics schematic generator (sg) tool to generate a schematic for the design from the netlist. Invoke the sg tool:
      >>sg &
    5.7 Use the File->Open Design from Viewpoint... menu item to bring up the Open Design from Viewpoint dialog box. Click on the Navigator... button and go into the "work" directory and into the adder1 component. Select the adder1 component with the  folder next to it and click OK in the Open Design from Viewpoint dialog box. A blank schematic window will appear in the sg tool window.
    9.2 Use the Setup->Symbol->Use Genlib Classification menu item to setup the symbol classifications and then use the Partition Setup... command from the pop up menus (right mouse button) to bring up the Partition Setup dialog box. Click on the Number of Sheets button, make sure the Number of Sheets item is set to 1 and click OK . Use the Generate item from the pop up menus to generate a schematic like the one below:


    9.3 Use the File->Save menu item to save the schematic and exit the sg tool.

    The schematic created uses ADK library parts which have an underlying transistor-level design and an IC layout associated with them. You can now use the schematic of the synthesized design to perform a transistor-level functional simulation with Accusim (recommended) as described in lab 1, or proceed to ICStation and layout the design using either manual or fully automated placement and routing as described in lab 8.