tech flow full mannual

79
From RTL Description to Layout 1 PN&JK 1 This sections describes what the manual is about. It outlines the design methodology used, and gives a description of the design example used in the tutorial. The convetions used in the manual are also described. Introduction Introduction, Design Example and Manual Conventions Verilog or VHDL Simulation Synthesis Libraries Constraints

Upload: vitrag-sheth

Post on 22-Oct-2015

112 views

Category:

Documents


9 download

DESCRIPTION

this documment helps to complete the RTL to GDSII flow

TRANSCRIPT

1

This sections describes what the manual is about. It outlines the design methodology used, and gives a description of the design example used in the tutorial. The convetions used in the manual are also described.

Introduction❒ Introduction, Design Example and Manual Conventions ❒

Verilog or VHDL

Simulation

Synthesis

LibrariesConstraints

From RTL Description to Layout 1 PN&JK

This manual describes the basic digital IC design flow using Synopsys 3.4b and cadence 9504 tools. The manual caneither be used as a general guide for designing with different technologies supported for synthesis by CMC, or it canbe used as a CMOSIS5 (Hewlett Packard 0.5 µm CMOS technology) tutorial using the design exeample describedStep 1.2. This manual is not intended to be a replacement of the reference manuals for the respective tools, but ratheras a quick guide for a simple design process to take a design from HDL to the final layout. Figure 1.1 shows thedesign methodology.

1.1 About This Manual

Specifications

Behavioral Simulation

Synthesis & Test

Gate-Level Simulation

Place & Route

Design Verification

VHDL or Verilog

Libraries &Constraints

Stream File

SYNOPSYS

CADENCE

Figure 1.1 Design Methodology

From RTL Description to Layout 2 PN&JK

A very simple example is given here for use in the tutorial. It is basically a 3-bit accumulator (i.e. its output is incre-mented by its input on each positive clock edge; the output is reset to zero when RST is high). The design name is called test. Shown below are the block diagram and the corresponding Verilog and VHDL code of the design.

1.2 Tutorial Design Example

VHDL (test.vhd)

entity test isport (RST, CLK: in std_logic;

ACI: in std_logic_vector(2 downto 0);ACO: out std_logic_vector(2 downto 0);

end alu;

architecture behav of test issignal ACC: std_logic_vector(2 downto 0);

ACC_PROC: process (RST, CLK, ACI, ACC)begin

if (RST = ‘1’) thenACC <= (others => ‘0’);

elsif (CLK’event and CLK = ‘1’) thenACC <= ACC + ACI;

end if;end process ACC_PROC;ACO <= ACC;

end A;

ACI

+

CLK

RST

ACO

3

3

Verilog (test.v)

module test (RST, CLK, ACI, ACO);input RST, CLK;input [2:0] ACI;output [2:0] ACO;reg [2:0] ACO;

always @(posedge CLK or posedge RST)begin

if (RST)ACO = 0;

elseACO = ACO + ACI;

endendmodule

From RTL Description to Layout 3 PN&JK

The following conventions are used in the manual.

1.3 Manual Conventions

From RTL Description to Layout 4 PN&JK

2

In this step you setup the synthesis and simulation design environment by using the Synopsys setup files. Some of the variables that need to be specified before you can run synthesis and gate-level simulation include the technology and symbol libraries of the target technology, gate-level simulation libraries, as well as the search path to these and other libraries and design references.

Setup the Design Environment❒ Synthesis and Simulation Setup Files ❒

target_library = {kcells.db pads.db}link_library = {. kcells.db pads.db}symbol_library = {kcells.sdb}edifout_netlist_only = “true”

From RTL Description to Layout 5 PN&JK

There are a number of variables that need to be set before you can run the Synopsys synthsis tools. These variablesare set in the .synopsys_dc.setup file. Fortunately, almost all technologies that support Synopsys synthesis comeswith a sample synthesis setup file. You must copy this file into your design directory and name it .synopsys_dc.setup.

2.1 Copy A Sample Synthesis Setup File

At the Unix prompt, type:

cd design_dir↵cp /CMC/kits/cmosis5/synopsys/cmosis5.1.1/dot-files/.synopsys_dc.setup .synopsys_dc.setup↵

• Go to your design directorycd design_dir

• Copy the sample synthesis file from the directory con-taining the technology design kit for Synopsys.

cp /CMC/kits/technology/synopsys/technology.ver-sion/dotfiles/dc_dot_file .synopsys_dc.setup

design_dirYour design directory

technologyThe name of the technology you are targeting. Exam-ples are bicmos, mitel15, and cmosis5.

versionThe version of the technology CMC design kit for Synopsys. Examples are 1.1 and 2.1

dc_dot_fileThe name of the sample synthesis setup file. In some technologies this sample file is given the name .synopsys_dc.setup (i.e. it is a hidden file and hence you have to list all dot files in order to check if it exist - use the Unix command ls .synopsys_*), while in others, the name is usually target_lib.synopsys_dc.setup, where target_lib is the name of the target library in the technology, e.g. kcells in the bicmos technology.

TUTORIAL STEP

From RTL Description to Layout 6 PN&JK

Open the .synopsys_dc.setup file in an editor to verify/edit it to make sure that the synthesis system variables described below are set correctly. Note that apart from these variables, the setup file might contain other variables such as bus naming and EDIF options. Variables not described below should be left unchanged.

2.2 Verify/Edit the Synthesis System Variables

company = “put_your_company_name_here”designer = “put_your_name_here”search_path = {. /CMC/kits/cmosis5/synopsys/cmosis5.1.1/3.4b/syn /CMC/tools/synopsys.3.4b/libraries/syn}target_library = {hcells.db}link_library = {* hcells.db}symbol_library = {hcells.sdb}

• search_pathThis specifies the directories to be searched by thesynthesis tools for files. It should include at least thefollowing:

search_path = {. design_kit_dir//synsynopsys_dir/libraries/syn}

where . indicates the directory you started the syn-thesis tools from (your design directory)

• target_librarySpecifies a list of technology libraries of compo-nents used when compiling a design.

example: target_library = {hcells.db}• link_library

Specifies a list of design files and libraries used dur-ing linking. Linking resolves design references byconnecting the design to all library components anddesigns it references. For this reason include anasterisk (*) in the list to include all the designs inyour design library.

example: link_library = {* hcells.db}• symbol_library

Specifies the libraries that contain the graphicalinformation of symbols of components used whendisplaying the schematic of a compiled design. Filesfor symbol libraries usually end in .sdb extension.

example: target_library = {hcells.sdb}• designer

Your name (the designer). This is displayed on thedesign schematics.

example: designer = “Peter Nyasulu”• company

The company’s name where the Synopsys tools areinstalled. It is also displayed on design schematics.

example: company = “Carleton University”

design_kit_dirThe directory containing the technology design kit for Synopsys. Normally it should be /CMC/kits/technol-ogy/synopsys/technology.version, where technology is the name of the technology (e.g mitel15, bicmos, cmosis5) and version is the kit version (e.g. 1.1)

synopsys_dirThe Synopsys tools root directory. Normally it should be /CMC/tools/synopsys.3.4b.

TUTORIAL STEP

From RTL Description to Layout 7 PN&JK

Most of the variables required to simulate a design using the Synopsys VHDL System Simulator (VSS) are already setup correctly in the Synopsys generic VSS setup file (.synopsys_vss.setup). However, there are still a few variables that need to be customized for your design simulation. Firstly, for gate-level simulation, you need to specify the path to the Full Time Gate-level Simulation (FTGS) libraries of your target technology. FTGS libraries contain both the gate functionality as well as gate delays. You may also optionally specify the time step of the simulation.

2.3 Setup the Synopsys VSS Simulation (VHDL Only)

hcells: /CMC/kits/cmosis5/synopsys/cmosis5.1.1//3.4b/sim/hcellsTIME_BASE = NSTIME_RES_FACTOR = 0.1EDITCMD = emacs

• Go to your design directorycd design_dir

• Using your favorite editor, open/create the file .synopsys_vss.setup. For example, if you are using emacs editor, type the following at the Unix prompt:

emacs .synopsys_vss.setup &

• In the file, specify the following variables:FTGS LibraryThis defines the names of the libraries to be used in the RTL file for gate-level simulation, as well as the path to the actual FTGS libraries (the defined library name doesn’t have to be the same as the actual name of the library). You must define this for each of the target library used in your design (libraries specified in the target_library variable in .synopsys_dc.setup file).Syntax:

gate_library: /CMC/kits/technology/synopsys/technology.version/sim/target_library_name

Example (when using the cmosis5 technology):hcells: /CMC/kits/cmosis5/synopsys/cmosis5.1.1//3.4b/sim/hcells

Simulation Time Base/ResolutionThe units and resolution of the simulation times. For example, to set simulation units to nanoseconds, and the resolution to 100 picoseconds, add the following lines in the setup file:

TIME BASE = NSTIME_RES_FACTOR = 0.1

EditorEditor that synopsys invokes when you execute any of the Synopsys environment edit file commands. The default editor is set to vi. For example, to set the editor to Emacs, include the following line in the setup file (assuming emacs is the command that is used to invoke the Emacs editor):

EDITCMD = emacs

TUTORIAL STEP

From RTL Description to Layout 8 PN&JK

3

In this step you verify the functionality of the Verilog behavioral model by simulating it using Cadence Verilog-XL Simulator. You can print the results of the simulation (in text format) using the in-built Verilog system tasks, or you can view the signals waveforms using Cadence Cwaves waveform viewer.

Simulate the Verilog RTL Model❒ Verify the Functionality of the RTL Model ❒

always @(posedge clk)begin c = a & b;end o

b

clk

From RTL Description to Layout 9 PN&JK

While it is possible to simulate a design as a stand-alone, it is advisable to simulate using a test bench. Simulating adesign using a test bench simplifies the task of specifying the simulation stimuli (since these are described in the samestyle and language as the design itself), and, more important, you can then use the very same test bench to simulatethe gate-level model (Section 6). For more information on how to write a test bench, see the example in the manualIntroduction to Verilog.To use the Cadence Cwaves waveform viewer, you must include the following Cadence-specific Simulation HistoryManager (SHM) tasks in the test bench (This is again illustrated in the test bench example in the Introduction to Ver-ilog manual):

3.1 Setup the Design Test Bench for Cadence Cwaves

In the test bench, include the following lines:

initial begin$shm_open (“shm_waves”)$shm_probe (RST, CLK, ACI, ACO)

end

initial begin$shm_open (database_directory)$shm_probe (var1, var2, ..., varn)

end

where,

database_directoryThe name of the directory where the waveforms data should be stored. Enclose the name in double quota-tion marks.

var1, var2, ..., varnThe list of Verilog variables whose waveforms should be evaluated and stored. You can then later choose which of these waveforms you display in the wave-form viewer. Note that any variable that is omitted from the probe list cannot be viewed in cwaves with-out having to re-run the whole simulation.

TUTORIAL STEP

From RTL Description to Layout 10 PN&JK

Run the Verilog-XL simulator by specifying both the test bench and the design verilog files. This will compile theVerilog source files, and if there are no errors, view the waveforms by running cwaves. While it is possible to simulatea design as a stand-alone, it is advisable to simulate using a test bench. Simulating a design using a test bench simpli-fies the task of specifying the simulation stimuli (since these are described in the same style and language as thedesign itself), and, more important, you can then use the very same test bench to simulate the gate-level model (Sec-tion 6).

3.2 Run the Simulator and Open the Waveform Viewer

At the Unix prompt, type:

verilog test_tb.v test.v↵cwaves &↵

To start the Cadence-XL simulator, at the Unix prompt, type:

verilog design_tb.v design.v

where,

design_tb.vThe name of the test bench Verilog source file.

design.vThe name of the design Verilog source file.

To start the Cadence Cwaves waveform viewer, at the Unix prompt, type:

cwaves &

TUTORIAL STEP

From RTL Description to Layout 11 PN&JK

Load the data for the waveforms into the Cadence Cwaves waveform viewer. This is done by specifying the directoryyou used in the $shm_open task in your test bench as the file name.

3.3 Load Data for the Waveforms

shm_dirThe name of the directory that was specified in the$shm_open task in the test bench. Note that thisdirectory name is typed in the File Name field, andnot in the File Path field. The default in the File Pathfield is a dot (.), which means the directory whereyou started cwaves from. If this is not the directorywhere the shm_dir is, you must specify the full pathof the directory in this field. The default for theServer Host Name, which is usually localhost,should suffice.

shm_waves

Errors, Warnings, & Reports✰ Cadence Cwaves

File Edit View Options Help

Load Data...Plot...Save Setup...

Close DataQuit

Restore Setup...

File Path:

Cancel

File Name:

OK

Server Host Name:

HelpApply

1. Type in shm_dir

2. Click

From RTL Description to Layout 12 PN&JK

Select the signals you want to display and display them in the waveform viewer. Normally, the shm_dir contains thewaveforms of so many signals, but you might only want to display a few of these at a time. In this step, you can add,delete, or group waveforms into the waveform viewer.

3.4 Select and Display Signals

design_tbThe module name of the test bench. Select it by left-clicking once on it. Once the test bench module nameis selected, the subscope up/down buttons, which youare supposed to click in step 2, will be activated.

var1, var2, ...The variables whose waveforms are to be displayed.Repeat steps 3 and 4 for each of the variable you wantto display. Alternatively, you may select all the sig-nals at once in step 3 by clicking on the first variable,then hold down the shift button, and click on the last.

test_tb

RST, CLK, ACI, ACO

Errors, Warnings, & Reports✰ Cadence Cwaves

File Edit View Options Help

Browser/Display Tool...Add Signal By Name...Cut

PasteDelete

Copy

Strips

MarkersViewports

Signals

CommentsLogic OverlayDisplay Values...

Cancel Help

Delete Group

Add Selections

New...Display

Mode: Display

Hierarchical Signal Browser Grouped Waveforms

Simulation Data Display

Current Scope

▼▲ ▼ Subscopes

design_tb

Signals

var1var2

varn

Group: group0

Delete Signals

Strips1. Selectdesign_tb

3. Selectvarn

2. Click

❒4. Click 5. Click

From RTL Description to Layout 13 PN&JK

4

This step will convert the RTL model of your design into a netlist (and schematic) using the cells in the target technol-ogy library. The design is also optimized for timing and area. Synopsys power optimizations are only possible with ECL designs and hence are not covered in this manual.

Synthesize the RTL Model❒ From RTL to Schematic/Netlist ❒

always @(posedge clk)begin c = a & b;end

qdba c

clk

From RTL Description to Layout 14 PN&JK

Synopsys Design Analyzer provides a graphical (menu-driven and command-line) interface to the Synopsys tools youwill be using during synthesis (VHDL Compiler, HDL Compiler, Design Compiler, Test Compiler, Design Time).

4.1 Start the Synopsys Design Analyzer

• To start the Design Analyzer, type the following at theUnix prompt (The & starts the Design Analyzer inbackground so that you can use the Unix window forother commands):

design_analyzer &↵

• Optionally, you can use the Design Compiler (dc) shelland run the synthesis using dc shell commands only.Since the dc shell is a text-based window, you will notbe able to see the schematic. It is therefore not advis-able to use the dc shell unless you are very experi-enced with it.To start the dc shell, type the following at the Unixprompt:

dc_shell↵

Errors, Warnings, & Reports

From RTL Description to Layout 15 PN&JK

Design Compiler (dc) shell commands can be executed using the Design Analyzer command window. Design Com-piler commands are usually easier to execute than their Design Analyzer menu equivalents. They can also be collectedup in a file to be executed as a script in either the dc shell or the Design Analyzer command window.The command window is also used as a report window for all commands executed in the Design Analyzer. Therefore,after executing a command (using either the command window or the Design Analayzer menus),you must alwayscheck the results the report generated in the command window. It is easier to debug and correct errors at an earlierstage of synthesis.

4.2 Open the Design Analyzer Command Window

✰ Synopsys Design Analyzer

T

✰ Command Window

design_analyzer>

Errors, Warnings, & Reports

Defaults...Variables...License Execute Script...Scripts Command Window...

File Edit View Attributes Analysis Tools Help Setup

From RTL Description to Layout 16 PN&JK

Analyzing the RTL model checks the syntax of the VHDL/Verilog model, checks if VHDL/Verilog constructs notsupported for synthesis are used in the model, and converts the RTL into the intermediate format and stores it into thespecified or default library. Design (target, link, symbol and synthetic) libraries are also loaded at this stage.NOTE: While simulation-only constructs are treated as errors when analyzing the RTL model in the Design Analyzer,they are not when analyzed external to the Design Compiler/Analyzer (using gvan, vhdlan or Verilog XL), andhence can be used in simulation models and test benches.

4.3 Analyze the RTL Model

• Error: File ‘hdl_file’ could not be found in thesearch path ...- make sure the search path includes the directory

where the source files are. To include the directorywhere you start Design Analyzer from, include adot (‘.’) as one of the components of the searchpath.

- Unlike other stand-alone VHDL/Verilog compilers,you must specify the extension of the file (if the filehas an extension) even when a file has a standardVHDL/Verilog extension of .vhd, .vhdl or .v

• Error: Could not read the following target | link |symbol | synthentic library: ...- Check that the library you have specified in the

.synopsys_dc_setup file or using the Setup ⇒Defaults... is existent and readable and has its pathincluded in the search path.

• Error: Depending on 2 edges of same variable‘clock_pin’ not supported ...- You cannot use both the positive and negative

edges of the same clock variable in the same pro-cess or always block.

✰ Synopsys Design Analyzer

T

✰ Command Window

• analyze -format format hdl_file(s)↵

design_analyzer>

hdl_file(s)A list of VHDL or Verilog files. Note that Designanalyzer does not automatically append the standardVHDL/Veriolg extensions (.vhd, .vhdl, .v), andtherefore the file must be specified with its extensionif it has one.

libraryThe library where the analyzed files should be put.Normally, select the WORK or DEFAULT library,which is usually mapped to the directory where yourdesign source files are.

formatThe format of the HDL file. It is either verilog orVHDL.

clock_pinA variable used as a clock in the VHDL or Verilogdesign.

test.v(test.vhd)

WORK

CLK

Errors, Warnings, & Reports

File Name(s):Directory: /home/...

Create New Libraryif it Doesn’t Exist

File Format:

../(Move up one directory)hdl_file1.vhdl_file2.vhdl_file3.vhdhdl_file4.vhd

Verilog

Library:

DEFAULTWORK

OK Cancel

1. Selecthdl_file

2. Selectformat

3. Selectlibrary

4. Click

File Edit View Attributes Analysis Tools Help Setup

Read...Analyze...Elaborate...

SaveSave As... Save Info ∆

Plot... Quit

Import ∆

From RTL Description to Layout 17 PN&JK

Elaborating builds the design from the intermediate format of a Verilog or VHDL model. The RTL model is convertedinto generic gates and logic blocks. Again, constructs not supported for synthesis (such as using both clock edges in aprocess or always block) are reported. The elaborate process also reports the memory elements (flip-flops and latches)and tristate-buffers implied in your design.

4.4 Elaborate the Design

• Error: Clock variable ‘clock_pin’ is being used asdata in ...- clock_pin, used as a clock with the statements

clock_pin’event and clock_pin = ‘1’ (= ‘0’) orposedge (negedge) clock_pin, cannot be used inthe right-hand side of an assignment statement inthe same process or always block. Use a separateprocess or always block to make this assignment.

• Error: This use of clock edge specification not sup-ported in ...- You cannot use both the positive and negative clock

edges of the same clock variable in the same pro-cess or always block.

- In VHDL, you cannot use more than oneclock_pin’event and clock_pin = ‘1’ (= ‘0’) clockstatements in one process. If possible, make allassignments in one clock statement or use morethan one process.

• Info: Inferred memory devices in process ...• Info: Inferred THREE-STATE control devices in

process ...- Always check this information about inferred

devices to make sure that your RTL description doesnot imply unnecessary flip-flops (due to variableassignments in clock_pin’event and clock_pin =‘1’ (= ‘0’) statements or always blocks withposedge (negedge) clock_pin statements), latches(due to variables not assigned to in all conditions ofif and case statements - to aviod latches, also makethe variable assignment in the else or defaultclauses of these statements), and tristate buffers.

✰ Synopsys Design Analyzer

T

✰ Command Window

• elaborate module↵• (elaborate entity↵)

design_analyzer>

entityThe entity name of the VHDL model. If the designcontains more than one entity, elaborate each entityseparately.

archThe architecture of the VDHL entity.

moduleThe module name of the Verilog model. If the designcontains more than one module, elaborate each mod-ule separately.

libraryThe library where the files were analyzed into. Nor-mally, select the WORK or DEFAULT library,which is usually mapped to the directory where yourdesign source files are.

clock_pinA variable used as a clock in the VHDL or Verilogmodel.

test

behav

test

WORK

CLK

Errors, Warnings, & Reports

Library:

Re-Analyze Out-Of-Date Libraries

module1(verilog)module2(verilog)entity1(arch)antity2(arch)

Parameters:

DW01DW02WORK

OK Cancel

Design:

1. Selectlibrary

2. Selectmodule(verilog)or entity(arch)

3. Turn ON

4. Click

File Edit View Attributes Analysis Tools Help Setup

Read...Analyze...Elaborate...

SaveSave As... Save Info ∆

Plot... Quit

Import ∆

From RTL Description to Layout 18 PN&JK

Design and timing constraints must be set prior to compiling (mapping) the design. Constraints for clocks include theperiod (in units specified in the technology file - usually ns), skew type (either ideal clock network or that in whichthe clock delays due to the propagation delay through the clock network), whether hold time violations should be cor-rected (fixed) by inserting delays, etc. It is necessary to specify the clock period if you want to estimate the speed ofthe design (setup and hold violations) using the static timing analyzer (Design Time) after you have compiled thedesign.

4.5 Specify Clock Constraints

✰ Synopsys Design Analyzer

T

✰ Command Window

• create_clock -period period cck_pin↵• fix_hold clk_pin↵ • set_clock_skew -skew_type clk_pin↵

design_analyzer>

clk_pin Pin or port on which clock constraints are to be set.

periodThe period of the clock. Only the number should bespecified - the units (usually ns) are specified in thetechnology file.

skew_typeSpecifies the type of clock network. It is either ideal(an ideal clock network with no skew) or propagated(the clock skew depending on the propagation delaysthrough the network). The default is ideal.

CLK

20

propagated

Errors, Warnings, & Reports

Clock Name:

Dont Touch Network

0.0

Skew...

Period:

Cancel

Clock Port:

Fix Hold

Apply

25.0 50.0

Edge:

Clock Name:

Rise:

Cancel

Clock Delay Type

Apply

Fall:

Same Rise and Fall

Ideal

Propagated

Min:

Uncertainity

Max:

Same Min and Max

3. Turn ON

5. Click

4. Click

6. Swith ONskew_type

7. Click

8. Click 9. Click

File Edit View Attributes Analysis Tools Help Setup

1. Selectclk_pin

2. Typeperiod

CLKI1I2

O1O2

Specify...Skew...

ClocksOperating EnvironmentOptimization ConstraintsOptimization Directives

From RTL Description to Layout 19 PN&JK

Synopsys Test Compiler can automatically insert boundary scan and/or scan test circuitry into your design. This man-ual covers scan test design only. The two scan test methodologies are full scan test and partial scan test. In full scantest, all sequential elements in the design are replaced by their scannable equivalents, where as in partial scan test, aconstraint-driven scan selection algorithm is used to select optimal cells to scan. Partial scan therefore has less perfor-mance and area costs than full scan, but has a lower fault coverage than the later. There are several styles of scan-testimplementation. Multiplexed flip-flop scan test design is the most commonly supported scan test style. In this imple-mentation, the input to a flip flop is multiplexed between the normal circuit data and the scan test. The other scanstyles are described briefly in Appendix A.1.NOTE: For menu-driven execution, test methodology is set later when the test circuitry is just about to be inserted.

4.6 Set Test Methodology and Scan Test Style

✰ Synopsys Design Analyzer

T

✰ Command Window

• set_test_methodology test_methodology↵• set_scan_style scan_style↵

design_analyzer>

test_methodologyThe test methodolgy to be used. It is either full_scanor partial_scan. The default is full_scan.

scan_styleDefines the scan-test implementation. It is eithermultiplexed_flip_flop, lssd, aux_clock_lssd,clocked_scan, combinational or none. See Appen-dix A.1 for details.

full_scan

multiplexed_flip_flop

Errors, Warnings, & Reports

Design...Input Port...Output Port...Cell...Pin... Net...Timing Paths...

1. Selectscan_style

2. Click

3. Click

File Edit View Attributes Analysis Tools Help Setup

ClocksOperating EnvironmentOptimization ConstraintsOptimization Directives

Design Name:

Flatten Effort:

CancelApply

Structured Logic

Low

Boundary Optimization

Port is Pad:

Ungroup

Disable Wired Logic (E

Single Output

Flatten Minimize: Flatten Phase:

Don’t ApplyMedium Multiple Output Apply StrategyHigh None

Flatten Logic

Don’t Touch

Test Scan Style: None

Design Pad Attributes...

Apply Timing Driven Structuring

Apply Boolean Optimization

Sequential Elements: Latch...Flip Flop...

For S

can T

est O

nly

From RTL Description to Layout 20 PN&JK

Apart from clock and test constraints, there are a number of other attributes that you might need to set before compil-ing your design. The Synopsys Command Reference Manual lists all the available attributes. However, in most cases,the default settings of most attributes suffice. A few common design constraints that need to be set include:• Maximum Fanout: sets the maximum fanout for driving pins (default value can be set for the library)• Maximum Transition Time: The maximum time required for driving pins to change logic values.• Speed vs. Area: whether timing is critical in the design when compared to area.NOTE: for command-line execution, the timing-is-critical attribute is set later with the compile command.

4.7 Set Other Design Constraints

✰ Synopsys Design Analyzer

T

✰ Command Window

• set_max_fanout max_fanout design↵• set_max_transition max_trans design↵

design_analyzer>

max_fanoutThe value of the maximum fanout.

max_transThe maximum transition time. Only the numbershould be specified, but its units must be consistentwith those specified in the technology library (usuallyns).

designName of the design (entity name or module name)

10

2.0

test

Errors, Warnings, & Reports

Design Name:

Max Area:

CancelApply

Max Power:

Optimization Constraints:

Area Critical Timing Critical

Test Constraints:

Min Fault Coverage: 95%

Max Fanout:Max Transition:

Design Rules:

1. Typemax_fanout

4. Click 5. Click

2. Typemax_trans

3. Turn ON

File Edit View Attributes Analysis Tools Help Setup

ClocksOperating EnvironmentOptimization ConstraintsOptimization Directives

∆ Derive...

Design Constraints...Timing Constraints...

From RTL Description to Layout 21 PN&JK

This step performs logic and gate-level synthesis and optimization. The result is a netlist (and a schematic) of thedesign using the cells in the target library. During optimization, the Design Compiler tries to meet the user-specifieddesign constraints.

4.8 Compile the Design

✰ Synopsys Design Analyzer

T

✰ Command Window

• compile -map_effort map_effort↵

design_analyzer>

map_effortSpecifies how much effort and time should be spentby the processor on mapping. Valid settings are Low,Medium and High. High effort yields a better opti-mized circuit, but the CPU time taken to achieve thismight be too much for very large designs. The defaultmap effort is Medium.

medium

Errors, Warnings, & Reports

Design Optimization...Finite State Machines...FPGA Compiler...

Map Effort:

Cancel

Map Design

Low Medium High

Allow Boundary Optimization

More Map Options...

Map Effort:

Verify Design

Low Medium High

Execute in: Foreground Background

OK4. Click

2. Turn ONmap_effort

1. Turn ON

3. Turn ON

File Edit View Attributes Analysis Tools Help Setup

Test Synthesis...

From RTL Description to Layout 22 PN&JK

This checks the current design for problems. All errors must be corrected. While most warnings can be ignored, it isnecessary to check each one of them since some warnings might actually indicate errors in the logic of the design.

4.9 Check the Design Rules

• Warning: In design ‘design’ port ‘port_name’ isnot connected to any nets.- Make sure that the port port_name is intentionally

not associated with any logic in your HDL descrip-tion. Otherwise if the port is included for futureexpansion of the design, or for component inter-face consistency, the warning may be ignored.

✰ Synopsys Design Analyzer

T

✰ Command Window

• check_design↵

design_analyzer>

designThe name of the design you are currently checking.

port_nameThe name of any port on your design.

test

Errors, Warnings, & Reports

OK

Check Timing

Options

Detailed Warnings

Exclude WarningsSummarize Warnings

Options

Check All LevelsCheck Current Level

Cancel3. Click

2. Turn ON

1. Turn ON

File Edit View Attributes Analysis Tools Help Setup

Link Design...Check Design...Time Design Show Timing...

Highlight Show Net Load...

Test Report...Report...

From RTL Description to Layout 23 PN&JK

This checks the design against the design rules of the selected scan test methodology and scan style. This must bedone prior to inserting scan test circuitry and generating test patterns. Again, while it is not necessary to correct warn-ings, it must be remembered that violations resulting in these warnings will usually reduce the fault coverage.NOTE: For menu-driven execution, the test_methodology and scan_style must be set to values set in Step 4.6.

4.10 Check the Test Design Rules

✰ Synopsys Design Analyzer

T

✰ Command Window

• check_test↵

design_analyzer>

test_methodologyThe test methodolgy to be used. It is either full_scanor partial_scan. The default is full_scan.

scan_styleDefines the scan test implementation. It is eithermultiplexed_flip_flop, lssd, aux_clock_lssd,clocked_scan, combinational or none. See Appen-dix A.1 for details..

full_scan

multiplexed_flip_flop

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

4. Click

1. Turn ONtest_methodology

2. Selectscan_style

3. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

For S

can T

est O

nly

From RTL Description to Layout 24 PN&JK

At this point, you can optionally estimate the test fault coverage by running automatic test pattern generation (ATPG)on the design. This is especially important if you had warnings when running check test design rules in Step 4.10. Byrunning ATPG at this point, you get an idea of the effect that the warnings (usually uncontrollable pins) have on thefault coverage. You can then decide whether to correct the warnings or not. Appendix A.1 lists some common testdesign rule violations and how they can be corrected.

4.11 Estimate Test Fault Coverage

• Warning: Design has no scan path. Generatedvectors will not be saved.- Ignore this warning. It simply reminds you that you

have run ATPG before inserting scan test circuitry.ATPG will be run again later.

✰ Synopsys Design Analyzer

T

✰ Command Window

• create_test_patterns↵

design_analyzer>

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

5. Click

1. Click

4. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Cancel

Create Test Patterns...

Fault Simulate...

Analyze Fault Coverage...

Restore/Delete Test Program...

Multi-pass Test Generation ?Yes No

Cancel

Compact Patterns

Additional Options...

Execute in:

Foreground Background

OK

Test Pattern Generation Options:Use Initial Pattern File:

Initial File:

Output Pattern File:

design.vdb

Contention CheckFloat Check

Efoort: Low (Backward)

2. Click

3. Click For S

can T

est O

nly

From RTL Description to Layout 25 PN&JK

If you want to see the effect that scan insertion has on the area and performance of the design, you must analyze thedesign for area and timing before and after scan test insertion. You can then decide whether to incrementally optimizethe design to try and meet the performance and area of the design without scan, or to change the test strategy alltogether.

4.12 Perform Area and Timing Analysis

• Report: In the contraints report, note the (MET) and(VIOLATED) against each of the design constraintsset earlier.- This shows that the design constraint has either

been met or violated by the indicated value.

• Report: In the timing report, note the slack (MET)at the end of the report.

- This indicates the time that the longest path in thedesign settles before the clock changes. A negativevalue indicates a violation. Increase the clockperiod or reoptimize the design if there is a slackviolation.

✰ Synopsys Design Analyzer

T

✰ Command Window

• report_area↵• report_constraints↵• report_timing↵

design_analyzer>

Errors, Warnings, & Reports

Attribute Reports

CancelApply

All Attributes Compile Options

Clear ChoicesSet Options...

Path GroupsBussing Design PortCell FSM ResourceClocks Net

Analysis Reports

Area Cross Ref. ReferenceClock Skew Hierarchy SelectedClock Tree Point Timing TimingConstraints Power Timing Requ

Send Output To: Window File

File:

5. Click

3. Turn ON

2. Turn ON

1. Turn ON

4. Click

File Edit View Attributes Analysis Tools Help Setup

Link Design...Check Design...Time Design Show Timing...

Highlight Show Net Load...

Test Report...Report...

From RTL Description to Layout 26 PN&JK

This step adds test circuitry to the design. Basically, all sequential cells (flip-flops and latches) are replaced by theirscannable versions and/or logic is added to multiplex between scan test serial shifting and normal circuit operation.Pins for scan test enable (test_se) and scan test shift input (test_si) are also added to the design. By default, Test Compiler also adds logic to disable internal three-state bus drivers to ensure that only one driverdrives the bus at a time. Since this will more likely have already been incorporated in your design (otherwise chancesare that you have an erroneous design with bus contention), you must prevent Test Compiler from adding this dis-abling logic by running test insertion with the no_disable option.

4.13 Insert Scan Test Circuitry

• Warning: Deleting current test program‘test_program_name’ because it is not consistentwith the current design.- Again, ignore this warning. It refers to the ATPG

that was run in step 6.11. Since the design haschanged, the next ATPG will use a new initial faultlist.

✰ Synopsys Design Analyzer

T

✰ Command Window

• insert_test -no_disable↵

design_analyzer>

test_programThe test program that was created with the last ATPGrun and is currently being deleted.

test.vdb

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

Insert Scan Options:

Cancel

Disable Internal Three-State Drivers

Insert Test Cells

Maximum Scan Chain Length:Number of Scan Chains:

Route Scan Path

Execute in:

Foreground Background

OK

3. Click

2. Turn OFF

1. Click

4. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

For S

can T

est O

nly

From RTL Description to Layout 27 PN&JK

Now that scan circuitry has been added, it is possible that some design constraints, which were originally met, willnow be violated. Obviously, the scan circuitry has added extra area. It is therefore very important to re-run the areaand timing analysis as was done in Step 4.12. If there are timing violations, or if you simply want to further optimizethe design area and timing, you must now run an incremental compilation. Incremental compilation uses the existingcompiled gate-level design to improve the design constraints. If no improvements can be made, the design is leftunchanged. After running incremental optimization, you must once again run area and timing analysis (Step 4.12) to check if thedesign now meets all the design constraints. If the design does not meet timing constraints even after several optimi-zations and/or redesign, you may wish to consider increasing the clock period and/or relaxing some of the timing con-straints.

4.14 Optimize the Scan Design

✰ Synopsys Design Analyzer

T

✰ Command Window

• compile -incremental_mapping↵

design_analyzer>

Errors, Warnings, & Reports

Map Effort:

Cancel

Map Design

Low Medium High

Allow Boundary Optimization

More Map Options...

Map Effort:

Verify Design

Low Medium High

Execute in: Foreground Background

OK

Incremental Mapping

OK

Prioritize Min PathsMap in Place

3. Click

4. Click

1. Click

2. Turn ON

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Step 6.12 (Area and Timing Analysis) Step 6.12 (Area and Timing Analysis)

Step 6.12 (Area and Timing Analysis)

Step 6.12 (Area and Timing Analysis)

For S

can T

est O

nly

From RTL Description to Layout 28 PN&JK

Again, check the test design rules as outlined in Step 4.10. If there are no violations, you now need to know whichports of the design are used for scan test. The input ports test_se and test_si have been added by the Test Compilerspecifically for scan test. However, Test Compiler multiplexes one of the design output ports to be used as a scan out-put port during scan test. It is necessary to find out which port is used as the scan output in order to define it correctlywhen you set up the chip pins for scan test (Step 4.23). Apart from the scan ports, you can also optionally report theactual scan chain (cells in the scan path).

4.15 Check Test Design Rules & Report Scan Path

✰ Synopsys Design Analyzer

T

✰ Command Window

• check_test↵• report_test -scan_path -port↵

design_analyzer>

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

2. Click

1. Turn ON

CancelApply

Assertions JTAG

ATPG Conflicts MethodologyConstraints Ports

Coverage Scan Path

Send Output To: Window File

File:

Don’t Fault

Faults Fault Options: Untested

3. Turn ON

4. Turn ON

5. Click

6. Click

7. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Step 4.10 (Check Test Design Rules)

For S

can T

est O

nly

From RTL Description to Layout 29 PN&JK

You may now save the design in the Synopsys internal database (DB) format. This is important if you wish to stop atthis stage and continue the design process later. The saved db file will allow you to read in the synthesized gate-leveldesign without having to compile it again from the RTL model.The save command outlined here will save all the designs in the hierarchy in a file named design.db, where design isthe name of the top-level entity (VHDL) or top-level module (Verilog). To save the design using a different name or adifferent format, or to save the top-level without the other designs in the hierarchy, use the Save As... command asoutlined in Step 4.25. If you decide to use the Save As... command for this step, make sure that you select the DB(Synopsys internal database) format and save all the designs in the hierarchy. You may however use a different filename than the default.

4.16 Save the Core Design

✰ Synopsys Design Analyzer

T

✰ Command Window

• write -format db -hierarchy↵

design_analyzer>

Errors, Warnings, & Reports

File Edit View Attributes Analysis Tools Help Setup

Read...Analyze...Elaborate...

SaveSave As... Save Info ∆

Plot... Quit

Import ∆

From RTL Description to Layout 30 PN&JK

The core design just completed does not have pads. To insert pads, you must write an RTL model of the chip with aninstantiation of the core design. There are two reasons why it is advisable to use this approach. Firstly, scan insertionhas to be done on the core design, without the pads, and then routed to the pads later. Secondly, in order for SynopsysDesign Compiler to automatically insert the pads, the RTL code must imply the type of pads available in the technol-ogy library. While there are almost no problems with input pads (Design Compiler will automatically insert an inputpad for each input port on the top-level design), Design Compiler will issue an error (Error: No matching padfound for port...) if the RTL code, say, implies a standard output pad but the library only contains pads with outputenable (three-state) control pin and vice versa. Therefore, this step has a very high potential of being technology-dependent. However, it must be noted that in most technologies, output pads fall into two categories: those with out-put enable pins, and those without. Therefore, you can write RTL code to imply one type of pad and if Design Com-piler issues an error, change the code to imply the other type. The most common type of output pad is one with outputenable pin (These are the pads available in Mitel 1.5 µm and Nortel 0.8 µm BiCMOS technologies). Therefore, firstwrite your RTL code to imply this pad type.

4.17 Generate the Chip RTL Model (Verilog)

module testchip (test_si, test_se, RST, CLK, ACI, ACO);input test_si, test_se;input RST, CLK;input [2:0] ACI;output [2:0] ACO;

test c_core (.test_si(test_si), .test_se(test_se),.RST(RST), .CLK(CLK),.ACI(ACI), .ACO(ACO));

endmodule;

• For illustration purposes, assume that the core RTLmodel has the ports input I; output O1; output [3:0]O2;

• Suggested names for chip Verilog file and module aredesignchip.v and designchip, respectively.

• In both the chip module and the core componentinstantiation, include all the ports in the core Verilogmodel, and also add the following two ports :

input test_si, test_se;

• For pads with output enables,- Declare a variable to control the output enable:

reg pads_oe;- Declare an internal variable for each core output port:

reg O1_i;reg [3:0] O2_i;

- Write an always block to control the output pads:always @(pads_oe or O1_i or O2_i) begin

if (pads_oe == 1’b1) begin O1 = O1_i; O2 = O2_i;

endelse begin

O1 = 1‘bZ; O2 <=4’bZ;endpads_oe = 1’b1;

end

• For pads with output enable, instatiate the core as:design c_core port map (.test_si(test_si), .test_se(test_se), .I(I), .O1(O1_i), .O2(O2_i))

• For pads without output enable, instatiate the core as:design c_core port map (.test_si(test_si),.test_se(test_se), .I(I), .O1(O1), .O2(O2))

designthe core design module name

test

TUTORIAL STEP

From RTL Description to Layout 31 PN&JK

The core design just completed does not have pads. To insert pads, you must write an RTL model of the chip with aninstantiation of the core design. There are two reasons why it is advisable to use this approach. Firstly, scan insertionhas to be done on the core design, without the pads, and then routed to the pads later. Secondly, in order for SynopsysDesign Compiler to automatically insert the pads, the RTL code must imply the type of pads available in the technol-ogy library. While there are almost no problems with input pads (Design Compiler will automatically insert an inputpad for each input port on the top-level design), Design Compiler will issue an error (Error: No matching padfound for port...) if the RTL code, say, implies a standard output pad but the library only contains pads with outputenable (three-state) control pin and vice versa. Therefore, this step has a very high potential of being technology-dependent. However, it must be noted that in most technologies, output pads fall into two categories: those with out-put enable pins, and those without. Therefore, you can write RTL code to imply one type of pad and if Design Com-piler issues an error, change the code to imply the other type. The most common type of output pad is one with outputenable pin (These are the pads available in the Mitel 1.5 µm and Nortel 0.8 µm BiCMOS technologies). Therefore,first write your RTL code to imply this type of pad.

4.18 Generate the Chip RTL Model (VHDL)

entity testchip isport ( test_si, test_se: in std_logic;

RST, CLK: in std_logic;ACI: in std_logic_vector (2 downto 0);ACO: out std_logic_vector (2 downto 0));

end testchip;

architecture behav of testchip is

component testport ( test_si, test_se: in std_logic;

RST, CLK: in std_logic;ACI: in std_logic_vector (2 downto 0);ACO: out std_logic_vector (2 downto 0));

end component;

begin

c_core: test port map (test_si=>test_si,test_se=>test_se, RST=>RST, CLK=>CLK,ACI=>ACI, ACO=>ACO);

end behav;

• For illustration purposes, assume that the core RTLmodel has the ports I: in std_logic; O1: out std_logic;O2: out std_logic_vector(3 downto 0);

• Suggested names for chip VHDL file and entity aredesignchip.vhd and designchip, respectively.

• In both the chip entity and the core component declara-tion, include all the ports in the core RTL model, andalso add the following two ports :

test_si: in std_logic;test_se: in std_logic;

• For pads with output enables,- Declare a signal to control the output enable:

signal pads_oe : std_logic;- Declare an internal signal for each core output port:

signal O1_i: std_logic;signal O2_i: std_logic_vector(3 downto 0);

- Write a process to control the output pads:PadsProcess: process (pads_oe, O1_i, O2_i) begin

if (pads_oe = ‘1’) then O1 <= O1_i; O2 <= O2_i;

else O1 <= ‘Z’; O2 <= “ZZZZ”;

end if;end process PadsProcess;pads_oe <= ‘1’;

• For pads with output enable, instatiate the core as:c_core: design port map (test_si=>test_si, test_se=>test_se, I=>I, O1=>O1_i, O2=>O2_i)

• For pads without output enable, instatiate the core as:c_core: design port map (test_si=>test_si,test_se=>test_se, I=>I, O1=>O1, O2=>O2)

designthe core design entity name

test

TUTORIAL STEP

From RTL Description to Layout 32 PN&JK

Analyze the chip RTL model (Step 4.3), and elaborate it (Step 4.4). Then set the design constraints; this mightinclude specifying the clock (Step 4.5), test constraints (Step 4.7) and other design constraints (Step 4.6). NOTE that since the core design already contains scan circuitry (and you are not adding any new scan circuitry on thechip design), you must include the -existing_scan option (or when using menus, turn ON the Contains ExistingScan Circuitry button) when you specify the scan methodology.

4.19 Analyze, Elaborate and Constrain the Chip

1hdl_fileFor the Analyze command hdl_file(s), select/specifythe chip HDL file you created in Step 4.17/Step 4.18.Do not specify the core design HDL file. All otherinformation is the same as for the previous (coredesign) Analyze command execution.

2entity/moduleFor the Elaborate command entity or module, selectthe select/specify the entity or module name of the-chip HDL model created in Step 4.17/Step 4.18. Donot specify the core deisgn entity or module. If youuse a different architecture name for the chip design,remember to specify it, otherwise all the other infor-mation is the same as that when you executed atheElaborate command for the core design.

3For command-line execution, when you run theset_test_methodology command, remember to run itwih the option -exisiting_scan to tell Design/Test Com-piler that the design already contains scan circuitry. Forexample, to set test methodolody to full scan, run thecommand as follows:

set_test_methodology full_scan -existing_scan↵

Other constraints should be set as for the core design.

test_chip.v (test_chip.vhd)

test_chip

Step 4.3 (Analyze the chip hdl_file)1

Step 4.4 (Elaborate the chip entity or module)2

Step 4.5 - Step 4.7 (Constrain the chip design)3

Errors, Warnings, & Reports

From RTL Description to Layout 33 PN&JK

Since the core design is already optimized, you must set a dont_touch attribute on the core instance in order to preventDesign Compiler from trying to re-optimize the design. All logic necessary for pad insertion is thus external to thecore. This makes debugging easier, and also ensures that most of the analysis done earlier on the core are not invali-dated with insertion of extra logic into the core design.

4.20 Set Dont Touch Attribute on the Core

✰ Synopsys Design Analyzer

T

✰ Command Window

• set_dont_touch instance_name↵

design_analyzer>

instance_nameThe name of the instance of the core design in thechip. Note that this is not the design (entity or mod-ule) name of the core, but rather the name of theinstance or component when it is instantiated in thechip design.

c_core

Errors, Warnings, & Reports

Design...Input Port...Output Port...Cell...Pin... Net...Timing Paths...

File Edit View Attributes Analysis Tools Help Setup

ClocksOperating EnvironmentOptimization ConstraintsOptimization Directives

Cell Name:

CancelApply

Scan Replacement:

Sequential Elements:

Always

Ungroup Cell’s Hierarchy

Latch...

Compile Attributes:

Flip Flop...

Referencing:

instance_name

cell_design_name

Don’t TouchAllow Boundary Optimization

Max Time Borrow:

Never

3. Turn ON

4. Click

5. Click

CLKI1I2

O1O2

2. Select

1. Click

From RTL Description to Layout 34 PN&JK

In order for a pad to be inserted on a design port, the port must be specified as a pad using the set_port_is_padattribute. Other pad attributes, such as... may also be specified before the actual pad insertion process.

4.21 Set Pad Attributes

✰ Synopsys Design Analyzer

T

✰ Command Window

• set_port_is_pad “*”↵

design_analyzer>

Errors, Warnings, & Reports

File Edit View Attributes Analysis Tools Help Setup

Design...Input Port...Output Port...Cell...Pin... Net...Timing Paths...

2. Click

3. Click

ClocksOperating EnvironmentOptimization ConstraintsOptimization Directives

Design Name:

Flatten Effort:

CancelApply

Structured Logic

Low

Boundary Optimization

Port is Pad:

Ungroup

Disable Wired Logic (E

Single Output

Flatten Minimize: Flatten Phase:

Don’t ApplyMedium Multiple Output Apply StrategyHigh None

Flatten Logic

Don’t Touch

Test Scan Style: None

Design Pad Attributes...

Apply Timing Driven Structuring

Apply Boolean Optimization

Sequential Elements: Latch...Flip Flop...

1. Turn ON

From RTL Description to Layout 35 PN&JK

This step will physically insert pads on all the ports that have been set up for pad insertion in Step 4.21 and optimizethe design. Pads must be inserted before the design is compiled. Also since the core design has already been opti-mized, only incremental compilation (Step 4.14) is necessary.

4.22 Insert Pads & Optimize the Design

✰ Synopsys Design Analyzer

T

✰ Command Window

• insert_pads↵ • compile -incremental_compilation↵

design_analyzer>

Errors, Warnings, & Reports

File Edit View Attributes Analysis Tools Help Setup

DeleteInsert Pads...Select...

Group...Ungroup... Uniquify ∆

Reset...

Unselect All

Cancel

Set Pad Type

Design Pad Attributes...

Effort:

Verify Results

Low Medium High

OK

Port Pad Attributes...❒

1. Click

Step 4.14 (Incremental Compilation)

From RTL Description to Layout 36 PN&JK

To route the core design scan circuitry to the chip pads, you must specify the chip pins that are to be used as scan pins(scan enable, scan input, and scan output). The scan input pins are test_se and test_si.

4.23 Define the Chip Scan Input Pins

✰ Command Window

• set_signal_type test_scan_enable test_se↵ • set_signal_type test_scan_in test_si↵

design_analyzer>

Errors, Warnings, & Reports

✰ Synopsys Design Analyzer

T

File Edit View Attributes Analysis Tools Help Setup

ClocksOperating EnvironmentOptimization ConstraintsOptimization Directives

Design...Input Port...Output Port...Cell...Pin... Net...Timing Paths...

Port Name:

Maximum Fanout:

CancelApply

Maximum Transition:

Logic 0

Test Hold: None

Connected to:

selected_port

Port is Pad: Port Pad Attributes...

Logic 1

Set Opposite...Set Equal...

Signal Type: Scan Enable

4. Click

8. Click

3. SelectTest Scan Enable

6. SelectTest Scan In

5. Select Pintest_si

7. Click

CLKI1I2

test_setest_si

O1O21. Click

2. Select Pintest_se

For S

can T

est O

nly

From RTL Description to Layout 37 PN&JK

As mentioned earlier, Test Compiler multiplexes one of design output pin to be used as the output pin during scanshift. This pin was reported in Step 4.15. You should now configure it as the chip scan output pin.

4.24 Define the Chip Scan Output Pin

✰ Command Window

• set_signal_type test_scan_out scan_out↵

design_analyzer>

scan_outThe design output pin that is also used (multiplexed)as a scan output pin. This pin was reported inStep 4.15 when you run the report_test command.

O

Errors, Warnings, & Reports

✰ Synopsys Design Analyzer

T

File Edit View Attributes Analysis Tools Help Setup

ClocksOperating EnvironmentOptimization ConstraintsOptimization Directives

Design...Input Port...Output Port...Cell...Pin... Net...Timing Paths...

3. Click

4. Click

1. Select Pinscan_out

2. SelectTest Scan Out

Port Name:

CancelApply

Maximum Transition:

Unonnected

selected_port

Port is Pad: Port Pad Attributes...

Signal Type: Scan Out

CLKI1I2

test_setest_si

O1O2

For S

can T

est O

nly

From RTL Description to Layout 38 PN&JK

Pad insertion may sometimes introduce additional test design rule violations. You must therefore once again runcheck test before you save the final design. You can also, optionally, report the scan chain and scan ports to make surethat the core design scan circuitry is correctly routed to the chip pins.

4.25 Check Test, Report Scan Path & Save Design

✰ Command Window

• report_test -scan_path -port↵• write -format db -hierarchy↵

design_analyzer>

Errors, Warnings, & Reports

✰ Synopsys Design Analyzer

T

File Edit View Attributes Analysis Tools Help Setup

Read...Analyze...Elaborate...

SaveSave As... Save Info ∆

Plot... Quit

Import ∆

Step 4.15 (Check Test Rules & Report Scan)

From RTL Description to Layout 39 PN&JK

So far the design has been saved in the Synopsys internal database format (db). But in order to export the design tothird part tools for placement and routing, the design has to be saved in a format other than db. Also, to simulate thegate-level design (Step 5), the design must be saved in the required HDL format. The saved HDL design is simply astructural hierarchical HDL code with the lowest level consisting of the interconnections of the technology librarycomponents as they appear in the schematic. Therefore, you must now save the design twice, firstly in Verilog orVHDL format (for simulation), and then in the format required by the third party tool (e.g. EDIF to import a Nortel0.8 um BiCMOS design to Cadence, Verilog to import a Mitel 1.5 um design to Cadence, XNF to import a Xilinxdesign to the XACT tools).

4.26 Save the Design in HDL and Export Formats

✰ Synopsys Design Analyzer

T

File Edit View Attributes Analysis Tools Help Setup

✰ Command Window

• write -format file_format -hierarchy -output file_name↵

design_analyzer>

file_nameThe name of the file that the design has to be savedas. When saving the HDL gate-level file, make surethat you specify a different file name from the onecontaining behavioral design.

file_formatThe format in which you want the design to be saved.Valid formats are:

db Synopsys internal database formatvhdl IEEE Standard VHDLverilog Cadence Verilog HDLedif Electronic Design Interchange Formatxnf Xilinx Netlist Formatmif Mentor Interchange Format (MIF)equation Synopsys equation formatst Synopsys State Table formattegas Tegas design Language netlist Fornatlsi LSI Logic Corporation Netlist Formatpla Berkeley (Espresso) PLA format

test_g.v

verilog

Errors, Warnings, & Reports

File Name:Directory: /home/...

Save All Designsin Hierarchy

File Format:

../(Move up one directory)file1file2file3file4

DB

OK Cancel

Read...Analyze...Elaborate...

SaveSave As... Save Info ∆

Plot... Quit

Import ∆

4. Click

1. Typefile_name

1. Selectfile_name

2. Selectfile_format

or

3. Turn ON

Perform this step twice: first for the HDL format (e.g. verilog), and then for the export format (e.g. edif)

From RTL Description to Layout 40 PN&JK

A few timing parameters need to be set prior to generating test vectors (ATPG) and running fault simulation(TestSim). The most common ones include the test defaut delay and strobe times, as well as the timing parameters ofthe test clock. These are briefly described below:• test_default_delay

For ATPG, this value defines the time at which values are applied to the primary inputs. Its value must be less thanboth the output strobe time and the capture clock edge value. The value set for test_default_delay is used by thecheck_test command when checking the design against the design rules of the scan test methodology. It is also usedby the write_test command when producing a test program.For TestSim, the value of test_default_delay defines the default input delay for primary inputs, and must be set to thevalue that was used when generating the vectors being input to TestSim. It must be less than the clock period.

• test_default_strobeThis defines the default time at which values are strobed at the primary outputs and bidirectional ports. Its valuemust be less than the clock period. test_default_strobe also affests both the check_test and write_test commands.

• test clock parametersThis includes the period, waveform and default period of the clock to be used during test.

4.27 Specify Test Timing Parameters

✰ Command Window

• test_default_period = default_period↵• test_default_delay = default_delay↵• test_default_strobe = default_strobe↵• create_test_clock clock_pin -period period

-waveform {rise_edge fall_edge}↵design_analyzer>

clock_pin Pin to be used as clock during test.

periodValue of the period of the test clock in ns.

default_periodValue of the default period of the test clock in ns.

default_delayValue of the default test delay in ns.

default_strobeValue of the default test strobe time in ns.

rise_edge fall_edgeRise and fall edge times of the test clock over oneperiod (typically, the first edges after time zero).

CLK

100

100

5

95

45 55

Errors, Warnings, & Reports

✰ Synopsys Design Analyzer

T

File Edit View Attributes Analysis Tools Help Setup

For S

can T

est O

nly

From RTL Description to Layout 41 PN&JK

In this step, Test Compiler uses the ATPG to generate a minimal set of scan test vectors to test your design for all pos-sible stack-at faults. The fault coverage achieved by these test vectors, plus the number of detected and undetected(untested) faults is also reported.

4.28 Generate Test Vectors

✰ Synopsys Design Analyzer

T

✰ Command Window

• create_test_patterns -compaction_effort low↵

design_analyzer>

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

5. Click

1. Click

4. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Cancel

Create Test Patterns...

Fault Simulate...

Analyze Fault Coverage...

Restore/Delete Test Program...

Multi-pass Test Generation ?Yes No

Cancel

Compact Patterns

Additional Options...

Execute in:

Foreground Background

OK

Test Pattern Generation Options:Use Initial Pattern File:

Initial File:

Output Pattern File:

design.vdb

Contention CheckFloat Check

Efoort: Low (Backward)

2. Click

3. Click

For S

can T

est O

nly

From RTL Description to Layout 42 PN&JK

It is important to analyze the fault coverage and obtain a detailed report especially for untested faults (you can alsoreport on faults that are redundant, oscillating, etc.). Faults may be untested because of design rule violations (such ascombinational feedback loops and gated clocks), fixed logic levels at nodes (if you used the fix_test_hold command)or faults with unpredictable effects (such as faults on enable pins of three-state bus drivers may cause bus contention).

4.29 Analyze Fault Coverage

✰ Synopsys Design Analyzer

T

✰ Command Window

• report_test -coverage -faults -class untested↵

design_analyzer>

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

8. Click

1. Click

7. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Cancel

Create Test Patterns...

Fault Simulate...

Analyze Fault Coverage...

Restore/Delete Test Program...

Multi-pass Test Generation ?Yes No

2. Click

5. ClickCancelApply

Assertions

Coverage

ATPG ConflictsConstraintsDon’t Fault

Send Output To: Window File

File:

JTAG

Faults Fault Options: Untested

Mask FaultsMethodologyPortsScan PathTiming (TestSim)

Report Scope:

All (Cumulative) Last (Incremental)

3. Turn ON

4. Typeuntested

6. Click

For S

can T

est O

nly

From RTL Description to Layout 43 PN&JK

Now you have to format the test patterns into manufacturing test vectors that can be used on a specific tester or simu-lator. Basically, there are four types of vector formats: Simulation (VHDL or Verilog), Intermediate (TDS ASCII orWGL), ASIC, and Synopsys. For simulation, the test vectors are formatted as test benches, with serial or parallel loadof the scan chain. For VHDL, to speed up the simulation, the ASCII vectors can be separated from the test bench byselecting the TEXTIO option. Intermediate formats are provided by the Summit Design Software, which can translatethese vectors to formats required by various Automatic Test Equipment (ATE) systems. ASIC format uses a propri-etary Custom Test Vector (CTV) format for a specific supported ASIC vendor (such as LSI Logic, Mitsubishi, Motor-ola, Texas Instruments and Toshiba). Vectors in Synopsys format can be used by the Test Compiler to translate thevectors into your required format.

4.30 Format Test Vectors

✰ Synopsys Design Analyzer

T

✰ Command Window

• write_test -format vector_format -parallel1↵

design_analyzer>

vector_formatOne of the following supported vector formats:vhdl, verilog, wgl (TSSI WGL), tds (TSSI TDS ASCII), synopsys (Synopsys generic),mif (Mentor Interchange Format (MIF)),pla (Berkeley (Espresso) PLA format).

1-parallelUse this option only with VHDL or Verilog formats.

wgl

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports... 1. Click

4. Click

❒5. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Input Pattern File:

Parallel

Output File:

design.vdb

design

Format: synopsys

Only Format Current Test ProgramFormat Entire Test Program Sequence

OK Cancel

2. Selectvector_format

3. Optionally1

Turn ON/OFF

For S

can T

est O

nly

From RTL Description to Layout 44 PN&JK

Synopsys comes with a TestSim fault simulator that can be used to fault simulate the ATPG vectors generated in theprevious steps. But before you can perform fault simulation, you must generate TestSim libraries (usingwrite_test_lib command) for all the libraries specified in the link_library variable. You must also create a TestSimmodel of your design.NOTE: In most cases, the technology libraries and symbol libraries have the same names. Therefore, in order to implya unique library when specifying the library name in write_testsim_lib, you must first remove from memory (usingfree command) all symbol libraries that have the same names as the libraries specified in the link_library, then runwrite_testsim_lib command on all link libraries, and finally read back into memory all the symbol libraries youremoved earlier.

4.31 Generate TestSim (Fault Simulation) Libraries

✰ Command Window

• free symbol_library↵• write_testsim_lib link_library↵• read symbol_library↵• create_testsim_model design_chip_testsim.db↵

design_analyzer>

symbol_libraryThe file of the symbol library that have the same rootname with one of the link libraries. Run the freecommand on all such symbol libraries before runningthe next command.

link_libraryA technology library specified in the link_libraryvariable. If there are more than one library specified,run the write_testsim_lib command on each library,one at a time.

designThe root name of your design.

hcells.sdb

hcells

test

Errors, Warnings, & Reports

✰ Synopsys Design Analyzer

T

File Edit View Attributes Analysis Tools Help Setup

For S

can T

est O

nly

From RTL Description to Layout 45 PN&JK

Simulating the ATPG vectors in parallel-load format means that the scan chains are loaded by forcing data directlyonto the scan input net of each scan cell and then applying the test clock to load the scan input nets. Captured valuesare measured directly from the scan output nets after the parallel capture cycle has occurred. Simulation time is thusproportional only to the number of scan patterns being simulated. This leads to significant decrease in the simulationrun time when compared to serial-load format in which simulation time is proportional to both the number of test pat-terns as well as the length of the longest scan chain.

4.32 Fault Simulate ATPG Vectors in Parallel Mode

✰ Synopsys Design Analyzer

T

✰ Command Window

• fault_simulate -input design_chip.vdb -format vdb -output parallel -use_testsim_model design_chip_testsim.db↵

design_analyzer>

designThe root name of your design.

test

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

1. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Cancel

Create Test Patterns...

Fault Simulate...

Analyze Fault Coverage...

Restore/Delete Test Program...

Multi-pass Test Generation ?Yes No

2. Click

5. Turn ON

7. Typedesign_chip_testsim.db Cancel

Fault Simulation Context:

Input Format: vdb

Save TestSim Model File:

Verify Timing Parameters

Pre Fault Simulation Check:

Use TestSim Model File:Signal Defn. (SDF) File:

Input Vectore File:

Output Test Program:

Stuck-at Faults: On OffMode: Normal Evaluate Probables

IDDQ Defect Model:Transistor Shorts Node Toggle

IDDQ Defects: On Off

Maximum Measurements:Incremental Coverage %:

OK

9. Click

10.Click

3. Typedesign_chip.vdb

4. Selectvdb (Native TC)

6. Typeparallel

8. Click

For S

can T

est O

nly

From RTL Description to Layout 46 PN&JK

In this step, you analyze the fault coverage produced by the TestSim (parallel-load) and then compare it to that pro-duced by Test Compiler. Therefore after analyzing the TestSim fault coverage (and recording the results), you mustrestore the test status to the state after ATPG, and then analyze fault coverage again and record the results.

4.33 Compare TestSim & Test Compiler Fault Coverage

✰ Synopsys Design Analyzer

T

✰ Command Window

• report_test -coverage -faults -class untested↵• restore_test design_chip.vdb↵• report_test -coverage -faults -class untested↵

design_analyzer>

designThe root name of your design.

test

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

1. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Cancel

Create Test Patterns...

Fault Simulate...

Analyze Fault Coverage...

Restore/Delete Test Program...

Multi-pass Test Generation ?Yes No

2. Click

3. Turn ON

8. Click

4. Typedesign_chip.vdb

5. Click

CancelApply

Name:Restore Test Programdelete Current Test Program

7. Click

6. Click

Step 4.29 (Analyze Fault Coverage)

Step 4.29 (Analyze Fault Coverage)

For S

can T

est O

nly

From RTL Description to Layout 47 PN&JK

As mentioned earlier, the serial-load format requires longer simulation time and larger disk space than parallel-loadbecause the scan cells are loaded by applying data to the scan input ports and results are measured at the scan outputports, thus requiring a clock cycle to load/compare each bit in the scan chain. However, unlike parallel-load simula-tions which verify only the normal operation (parallel) cycles of the scan patterns, serial-load simulations verify boththe scan shift and the normal operation as is the case on ATE systems. Therefore, if the number of scan patterns issmall, or if you want to simulate the scan-check testbench, use serial-load simulation, otherwise for a large number oftest patterns, use parallel-load. Serial fault simulation can only be used on multiplexed flip flop scan style, andrequires that vectors be in the TSSI TDS ASCII or TSSI WGL format.

4.34 Fault Simulate ATPG Vectors in Serial Mode

✰ Synopsys Design Analyzer

T

✰ Command Window

• fault_simulate -input design_chip_0.WGL -format wgl -output serial↵

design_analyzer>

designThe root name of your design.

clock_pinPin to be used as the test clock.

test

CLK

Errors, Warnings, & Reports

Cancel

VerboseCheck Design Rules

Contains Existing Scan Circuitry

Methodology: Full Scan Partial Scan

Scan Style: Multiplexed Flip Flop

Insert Internal Scan Circuitry...

Insert Boundary (JTAG) Scan Circuitry...

Test Manager...

Format Vectors...

Display Reports...

1. Click

File Edit View Attributes Analysis Tools Help Setup

Design Optimization...Finite State Machines...FPGA Compiler...Test Synthesis...

Cancel

Create Test Patterns...

Fault Simulate...

Analyze Fault Coverage...

Restore/Delete Test Program...

Multi-pass Test Generation ?Yes No

2. Click

5. Turn ON

7. Typedesign_chip_testsim.db Cancel

Fault Simulation Context:

Input Format: wgl

Save TestSim Model File:

Verify Timing Parameters

Pre Fault Simulation Check:

Use TestSim Model File:Signal Defn. (SDF) File:

Input Vectore File:

Output Test Program:

Stuck-at Faults: On OffMode: Normal Evaluate Probables

IDDQ Defect Model:Transistor Shorts Node Toggle

IDDQ Defects: On Off

Maximum Measurements:Incremental Coverage %:

OK

9. Click

10.Click

3. Typedesign_chip_0.WGL

4. Selectwgl

6. Typeserial

8. Click

For S

can T

est O

nly

From RTL Description to Layout 48 PN&JK

5

After synthesizing the circuit, it is important that you run the simulation on the resulting circuit in order to verify that the design still meets the intended functionality and timing. The simulation is run similarly to the way it was done for behavioral simulation (Section 4/5), except that now you make use of the timing models of the gates in the target library.

Simulate the Gate-Level HDL Netlist❒ Verify the Functionality and Timing of the Synthesized Circuit ❒

o

b

clkqdba c

clk

From RTL Description to Layout 49 PN&JK

Since the HDL netlist of the synthesized circuit consists of target library gates, you need to specify the library asdirectory where the simulation models of these gates are. Also, you need to set the test bench simulation time scale toconform with the time scale specified in these simulation models. To do this, add the following lines in your testbench:

5.1 Setup the Test Bench for Gate-Level Simulation

In the test bench, include the following lines:

‘define HCELLS dir=/CMC/kits/cmosis5/synop-sys/cmosis5.1.1/verilog/nwb

‘define HCELLUDP dir=/CMC/kits/cmosis5/syn-opsys/cmosis5.1.1/verilog/udp

‘uselib ‘HCELLS ‘HCELLUDP‘timescale 1ns/10ps

‘define library_name dir=sim_model_dir‘uselib library_name

‘timescale unit_time/resolution_time

where,

library_nameThe name you choose to give the library. Again, this doesn’t have to be the same name as the actual name of the library - it is simply a symbolic name. Example MYLIB, KCELLS, etc.

sim_model_dirThe full path of the directory containing the simulation models of the target library gates. For example, for the cmosis technology, the path is are /CMC/kits/cmosis5/synopsys/cmosis5.1.1/verilog/nwb and /CMC/kits/cmosis5/synopsys/cmosis5.1.1/verilog/udp.

unit_timeThe unit of time to be used in the simulation e.g 1ns.

resolution_timeThe simulation resolution, to the unit time. For exam-ple, if the unit_time is 1ns, and a resolution of 0.01ns is required, specify resolution_time as 10ps.

TUTORIAL STEP

From RTL Description to Layout 50 PN&JK

Run the simulation on the test bench and the HDL file containing the gate-level netlist (the later is the file created inStep 4.26). If you did not do scan test insertion, your gate-level design should have excatly the same port list as youroriginal HDL (behavioral) design and hence no further changes are required to your test bench. Otherwise, if youinserted scan test circuitry, your gate-level design should have two new ports: test_se, and test_si. Therefore, includethese ports in the port mapping of the instance of your design in the test bench. Also, include the following statementsin the test bench to create reg variables to which these three ports are connected, and in one of the initial blocks, setthese variables to 0 (i.e. test_se = 0; test_si = 0;)

reg test_se, test_si;

5.2 Run Simulation and View Waveforms

1When running the simulation, your design file (design.v or design.vhd) must now be the gate-level netlist file created in Step 4.26 (design_g.v or design_g.vhd).

Step 3.2/5.X (Run the Simulation)1

Step 3.3 - Step 3.4/5.X (View the Waveforms)2• Warning: Too few module port connections...

- Manually add the scan test ports (test_se, test_si,and test_so) in the port mapping of the instance ofyour design in the test bench as suggested above.

• Warning: Implicit wire has no fanin ...- If this warning is on the three scan test ports men-

tioned above, simply add the two statements (regtest_se, test_si; and wire test_so;) in the testbench. Otherwise, the warning means that some ofthe module ports are not connected to anything.

Errors, Warnings, & Reports

From RTL Description to Layout 51 PN&JK

6

Now that both the functionality and gate-level timing of the design has been verified, the design is imported toCadence for cell placement and routing. The design can be imported using the gate-level HDL or EDIF netlist. In thismanual, the design is imported using Verilog netlist.

Import the Design to Cadence❒ Import the HDL or EDIF Netlist to Cadence DFII ❒

wire n1;hnd2 u1 (.op(n1), .p1(a),hdrpq u2 (.q(O), .d0(n1),endmodule

qdba c

clk

From RTL Description to Layout 52 PN&JK

The Cadence software contains all the tools that will be used place and route the design. You must start Cadence fromyour design directory, with the target technology specified on the command line. After Cadence is successfullylaunched, the Command Interface Window (CIW) should appear (It takes a few minutes for the software to load!).

6.1 Start Cadence Tools

At the Unix prompt, type:

startCds -t cmosis5↵

To start the Cadence, at the Unix prompt, type:

startCds -t technology

where,

technologyThe name of the target technology. This must be thesame technology that was used to synthesize thedesign in Synopsys (Step 2.1). Valid technologynames (supported by CMC) are:

cmosis5 - 0.5 µm CMOS.cmosp35 - 0.35 µm CMOS.bicmos - Nortel 0.8 µm BiCMOS.mitel15 - Mitel 1.5 µm CMOS.

cmosis5

TUTORIAL STEP

From RTL Description to Layout 53 PN&JK

The design that you import to Cadence will have to be placed in one of your libraries. If you already have a libraryearmarked for this, then you should skip this step. Otherwise you must create a new library now.

6.2 Create a Cadence Design Library

design_libName of your design library.

tech_libThe technology library, e.g. cmosis5, cmosp35, bic-mos, mitel15.

DESIGNS

cmosis5

Errors, Warnings, & Reports

5. Selecttech_lib

2. Click

✰ icfb - Log:... (CIW)

CMOSIS5 Options Technology File CMC Gateway Tools Help File

Conversion Tool Box...Library Manager...Library Path Editor...CheckPlus...

Display Resources

Verilog-XL Integration...VHDL Tool Box...Synergy Tool Box...Synopsys Integration...Tantools...

SKILL Development...

Mixed signal Environ-

Switched Capacitor

Automatic Cell Chara-

DANTES

P&I Library Tools

CDF

Design Flows

Camera

Show Categories

View

Messages

✰ Library Manager:

File Edit View Design Manager Help

abstractextractedlayoutschematicverilog

Cell

padvddrccpadvddringpadvsscorepadvssrccpadvssring

Library

basiccdsDefTechcmcpadscmosis5designFlow

Open...Open (Read Only) Open Shell WindowExit

New

Cell View...Category...

Library...

Name:

Library

Use

..dir1dir2dir3

No DM

OK Cancel

Directory

Design Manager

Apply Help

Attach to an existing techfile

Don’t need a techfile

Compile a new techfile

Technology File for library “design_lib”

If you will be creating mask layout orother physical data in this library, youwill need a technology file. If you planto use only schematic or HDL data, atechnology file is not required.

You can:

OK Cancel Help

OK Cancel Help

New Design Library

cmosis5Attach To Technology Library

design_lib

Defaults Apply

1. Typedesign_lib

3. Turn ON

4. Click

6. Click

From RTL Description to Layout 54 PN&JK

Import the design Verilog file into Cadence. The reference libraries in the Verilog In form are shadow libraries usedto tell Cadence which cells in the Verilog netlist exist in the target technology libraries (hcells and cmcpads librariesfor cmosis5). Shadow libraries are required since Synopsys netlists do not contain all required power ports.

6.3 Import the Verilog File

design_libName of the design library to import the design into (or the one you created in Step 6.2).

shadow_libsShadow libraries (described at the beginning of this step).

design_fileThe Verilog file to import. This is the gate-level netlist file you saved in Synopsys in Step 4.26.

nwb_dirThe Cadence directory that contains the Verilog models of the cells in the technology libraries.

DESIGNS

_hcells _cmcpads

test_g.v

/CMC/tools/cadence/tools/dfII/local/lib/cmosis5/models/verilog/nwb

Errors, Warnings, & Reports

5. Click

✰ icfb - Log:... (CIW)

CMOSIS5 Options Technology File CMC Gateway Tools Help File

1. Typedesign_lib

NewOpen...Import

Refresh...Make Read Only...What’s New...Exit...

Export

EDIF...Verilog...VHDL...

SDL...CDL...DEF...LEF...TEGAS...

CALMP...

SILOS...Stream...CIF...Applicon...

OK Cancel Load

File Filter Name

schematicImport Structural Modules As

Defaults Apply HelpSave

Create Symbol Only

Import As Functional

ImportVerilog Cell Modules

./verilogIn.map.table

../dir1dir2dir3

Target Library Name Browse

Reference Libraries

Verilog Files To Import Add

-f Options Add

-v Options Add

-y Options Add

Library Extension

Ignore Modules File Add

Structural Vie Names

Name Map Table

schematicSchematic

functionalFuctional

netlistNetlist

symbolSymbol

./verilogIn.logLog File /tmpWork Area

Overwrite Existing Views

Schematic Generation Options >>

OK Cancel

Pin Placement FileName

Defaults Apply Help

Left and Right Sides

Import As Functional

All Sides

Maximum Number Of Rows

Global Nets

Power Net Name

Global Signals

Ground Net Name

Pin Placement

1024

Component DensityLowest Highest

Sheet Symbol none

Font Hieght 0.0625

Maximum Number Of Columns 1024

Line To Component Spacing 0.5

Line To Line Spacing 0.2

Optimize Wire Label Locations

Full Place and RouteGenerate Square Schematics

Extract Schematics

Minimize Crossovers

OK Cancel Help

Verilog import completed. Pleaselook at logfile ./verilogIn.log!

2. Typeshadow_libs

3. Typedesign_file

4. Typenwb_dir

6. TypeVDD!

7. TypeVSS!

8. Click

9. Click

10.Click

From RTL Description to Layout 55 PN&JK

If your design was imported successfully, you should have a schematic view of i in your design library. Open theschematic now.

6.4 Open the Schematic

design_libName of your design library.

cell_nameThe name of your design. This is the name you gaveto the top-level module (Verilog) or entity (VHDL).Note that this is NOT the name of the imported Ver-ilog file (even though these two might sometimes bethe same).

DESIGNS

test_chip

Errors, Warnings, & Reports

4. Click❒

✰ icfb - Log:... (CIW)

CMOSIS5 Options Technology File CMC Gateway Tools Help FileNewOpen...Import

Refresh...Make Read Only...What’s New...Exit...

Export

OK Cancel Help

Cell Name

design_libLibrary Name

Defaults

cell_name

schematicView Name

Browse

edit readMode

Library Path Fileyour_design_directory/cds.lib

cell1cell2cell3cell4

Cell Names

3. Selectschematic

1. Selectdesign_lib

2. Selectcell_name

From RTL Description to Layout 56 PN&JK

The schematic generated in Step 6.3 might have solders where wires (nets) cross. This will cause warnings when youcheck the design. Rather than modify the schematic, it is better to just disable these unimportant warnings.

6.5 Suppress Solder On CrossOver Warnings

Errors, Warnings, & Reports✰ Composer - Schematic Editing: ...

Tools Design Window Edit Help Add Check Sheet Mxd-Sig CMC Skill

Current CellviewHierarchy...Options...Rules Setup...

Schematic Monitors ∆

Label Attachment...Find Marker...Delete MarkerDelete All Markers...

OK Cancel

Percent Overlap Allowed

Defaults Apply Help

warningignored error

Logical Checks

warningignored error

Floating Nets

Offsheet Connector Check

NonePackaged Checks

warningignored errorFloating Input Pinswarningignored errorFloating Output Pinswarningignored errorFloating I/O Pinswarningignored errorFloating Switch Pinswarningignored errorShorted Output Pins

Physical Checks

warningignored errorUnconnected Wires

warningignored errorOverlapping Instanceswarningignored errorSolder On CrossOver

warningignored errorMaximum Label OffsetMax Distance from Wire

Name Checks

warningignored errorInstance/Net Name Collis-warningignored errorPin/Net Name Collision

warningignored errorInstance Name SyntaxInstance Name Expression

warningignored errorVerilog HDL Syntaxwarningignored errorVHDL Syntaxwarningignored errorAHDL Syntax

warningignored errorPin Name SyntaxPin Name Expression

warningignored errorNet Name SyntaxNet Name Expression

1. Turn ON

2. Click

From RTL Description to Layout 57 PN&JK

As mentioned in Step 6.3, the schematic is currently composed of cells from the shadow libraries (i.e. _hcells and_cmcpads for cmosis5). You must now replace these cells with cells from the functional Cadence libraries (i.e. hcellsand cmcpads for cmosis5).

6.6 Replace Shadow Library Cells

• Warning: Unable to enter/create cellview...- Ignore these warnings

Errors, Warnings, & Reports✰ Composer - Schematic Editing: ...

Tools Design Window Edit Help Add Check Sheet Mxd-Sig CMC Skill

Layout/Extract ∆

Schematic ∆

RET ∆

P&R ∆ Check and Save Design Hierarchy

Check Supply IO

From RTL Description to Layout 58 PN&JK

Add power and ground bonding pads to the schematic. These will be used to connect power and to the chip. NOTE: This step is to be done twice, first to add power pads (select padvddrcc in Step 3), and then to add groundpads (select padvssrcc in Step 3).

6.7 Add Power Pads

1To place the selected component in the schematic, sim-ply left-click anywhere in the schematic editor window.But make sure that the component does not touch otherparts of the circuit.

Errors, Warnings, & Reports✰ Composer - Schematic Editing: ...

Tools Design Window Edit Help Add Check Sheet Mxd-Sig CMC Skill

Component...Wire (narrow)Wire (wide)Wire Name...

Note

Pin...Block...Solder Dot

Show Categories

View

Messages

✰ Library Manager:

File Edit View Design Manager Help

abstractextractedlayoutschematicsymbol

Cell

padvddrccpadvddringpadvsscorepadvssrccpadvssring

Library

basiccdsDefTechcmcpadscmosis5designFlow

Hide Cancel Defaults Help

Library Name BrowseCell Names

Upsidedown

ColumnsArray

Rotate

Rows

Sideways

View NameInstance Names

1. Click

2. Select cmcpads

3. Selectpadvddrcc

4. Selectsymbol

5. Click1

Repeat steps 3-5, but select padvssrcc in step 3.

From RTL Description to Layout 59 PN&JK

Use a CMC-provided script to verify that appropriate power/ground pads are included in the schematic. Make surethat you get the “IO check OK” report in the CIW.

6.8 Check Supply I/O

• Warning: Failed to open cellview...- Ignore these warnings

• Report: IO check OK.- If you don’t get this report in the CIW, then there is

something you have done wrongly. You shouldcorrect the mistake you made, or simply redo allthe steps from Step 6.3.

Errors, Warnings, & Reports✰ Composer - Schematic Editing: ...

Tools Design Window Edit Help Add Check Sheet Mxd-Sig CMC Skill

Layout/Extract ∆

Schematic ∆

RET ∆

P&R ∆ Check and Save Design Hierarchy

Check Supply IO

From RTL Description to Layout 60 PN&JK

Finally, check that the whole schematic is OK. Checking will also save the schematic if there are no errors. Again, ifterrors or warnings that you don’t understand are reported, you should not proceed. Some warnings (mentionedbelow) are normal and can be ignored.

6.9 Check and Save the Design Hierarchy

• Warning: Pin WORLD on ... floating ...- Ignore these warnings

Errors, Warnings, & Reports✰ Composer - Schematic Editing: ...

Tools Design Window Edit Help Add Check Sheet Mxd-Sig CMC Skill

Current CellviewHierarchy...Options...Rules Setup...

Schematic Monitors ∆

Label Attachment...Find Marker...Delete MarkerDelete All Markers...

1. Click

OK Cancel HelpDefaults

Ask Methose with errors

do not checkevery schematicProcess

View Name List

Apply

Referenced Libraries check

no

only those that need it

yesSave Schematics

SpectreS extracted schematic symbol

From RTL Description to Layout 61 PN&JK

7

In this step, you will layout the chip. First, the pads and gates are placed, and then the design is routed.

Place and Route the Design❒ Place and Rout the Design Using Cell Ensemble ❒

qdba c

clk

From RTL Description to Layout 62 PN&JK

From the schematic editor, open the design in a hierarchy browser, from where you will be able to create an autoLay-out view. NOTE that to launch the hierachy browser, the schematic editor menus must first be changed to Floorplan/Schematics menus.

7.1 Open the Design in a Hierarchy Browser

Errors, Warnings, & Reports✰ Composer - Schematic Editing: ...

Tools Design Window Edit Help Add Check Sheet Mxd-Sig CMC Skill

Analog ArtistDatapath/SchematicDesign SynthesisDiva

Simulation ∆

Floorplan/SchematicsMixed Signal Opts.Module MakerSchematics

✰ Composer - Schematic Editing: ...

Tools Design Window Edit Add Check Sheet Floorplan CMC Skill He

OK Cancel Help

Library Name DESIGN

Defaults Apply

Cell Name test_chip

View Name schematic

Cross SelectCross Highlight

Hierarchy Browser...

1. Click

From RTL Description to Layout 63 PN&JK

Specify the names for global signals, i.e. global power signal name and global ground signal name.

7.2 Specify the Chip Global Signal Names

tech_libThe technology library, e.g. cmosis5, cmosp35, bic-mos, mitel15.

cmosis5

Errors, Warnings, & Reports✰ Hierarchy Browser: ...

Window Utilities Hierarchy Help

Cross SelectCross Highlight

Deselect All

Environment...

OK Cancel Help

======Display Options======

Defaults Apply

Instance Count On Node

Default Area Utilization (%) 80

Default Area Per Gate 10

Instance Node LabelInstance Filter

Fit Tree Graphics in Window

Tree Expansion DirectionTree Routes

instance namemaster nameIO core cell block

horizontalverticalfanlevered

======Expand Options======Levels

all1

======Generate AutoLayout/AutoAbstract Options======

Change Default Global Signal Names

simpleDefault Area Estimation Function

Obstruction On BlockHierarchy Delimiter Character

OK Cancel Help

Library To Store New Global Names

Defaults Apply

Global Power Signal Name vdd!

Global Ground Signal Name gnd!

Use Existing Global Names in Library

1. Click

3. Click

2. Typetech_lib

From RTL Description to Layout 64 PN&JK

Create the autoLayout view.

7.3 Generate an AutoLayout View

• Report: The layout hierarchy has been createdsuccessfully.- If you don’t get this report in the CIW, then there is

something you have done wrongly. You shouldcorrect the mistake you made, or simply redo allthe steps.

Errors, Warnings, & Reports✰ Hierarchy Browser: ...

Window Utilities Hierarchy Help

Expand SelectedUnexpand SelectedGenerate Physical HierarchyGenerate Abstract From Symbol

∆ Properties

From RTL Description to Layout 65 PN&JK

Open the autoLayout into the Virtuoso layout editor. You do this from the Command Interpreter Window (CIW).ASfter a few seconds, the layout editor (shown in Step 7.5) should appear.

7.4 Open the AutoLayout

design_libName of your design library.

cell_nameThe name of your design.

DESIGNS

test_chip

Errors, Warnings, & Reports

4. Click❒

✰ icfb - Log:... (CIW)

CMOSIS5 Options Technology File CMC Gateway Tools Help FileNewOpen...Import

Refresh...Make Read Only...What’s New...Exit...

Export

OK Cancel Help

Cell Name

design_libLibrary Name

Defaults

cell_name

schematicView Name

Browse

edit readMode

Library Path Fileyour_design_directory/cds.lib

cell1cell2cell3cell4

Cell Names

3. SelectautoLayout

1. Selectdesign_lib

2. Selectcell_name

From RTL Description to Layout 66 PN&JK

Cell Ensemble is the place and route engine that will be used to automatically place and route the design. You startCell Ensemble from the layout editor menus. Again, notice that the Cell Ensemble menus (shown in Step 7.6) areslightly different from the layout menus shown in this step.

7.5 Start Cell Ensemble

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Help Edit Verify Misc CMC Skill

AbstractAnalog ArtistCompactorDevice-Level Editor

Microwave

Device-Level RouterFloorplan/P&RInQueryLayoutLayout Synthesis

Module MakerPcellSimulation ∆

Structure-CompilerVerilog-XL

Block EnsembleCell Ensemble

Base Array Editor

Datapath/Cell EnsembleDatapath/Cell3 Ensemble

Cell3 Ensemble

Gate Ensemble

From RTL Description to Layout 67 PN&JK

Initialize the layout. This will place all the pads and gates outside th placement area. Because for small layouts thecore cells will have a small area relative to the area occupied by the pads, the aspect ratio is adjusted to reduce thisamount of “white space” around the core cells. Also, an aspect ratio of less than 1.0 results in a vertical core whichCadence can route more efficiently than a flat core. This is more significant for small designs.

7.6 Initialize the Layout

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

Reinitialize...I/O Place...PartitionBlock Place... ∆

Soft PinsUpdate AutoLayouts...Floorplan FileSynthesis Link

Replace View...

OK Cancel HelpDefaults Apply

Chip Aspect Ratio (Width/Height)Load a Floorplan File

Preserve pre-placed

Estimate Design Size

Initialize

IOs macros standard cellsspecial routing

lower leftChip Origin

File Name

final routingchip size instances statusregions groupsall none

Load a SDF File File Name

2. Click

1. Type0.8

From RTL Description to Layout 68 PN&JK

In this step, you will place the pads and the standard cells automatically.

7.7 Place the Design

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

1. Click

IO CommandsAutomatic...Qplace...CTS Place...

Spare Cell...Power CellGlue CellSnap To Grid...

∆ ∆

Sequencer...Check...

OK Cancel Defaults Apply Help

Method initial

Feedthru Master Name hft

Feedthru Library Name hcells

Placement Snap Grid 0.1

Feedthru Master View abstract

Mirror Cells

Insert Feedthru

Browse

Initial ImproveOptions

improve both

From RTL Description to Layout 69 PN&JK

Insert I/O corner cells. If you have not already done so, you should first copy the file glue.map from the technologysamples directory (this is usually /CMC/kits/technology/cadence/technology.version/samples) into your designdirectory. For the tutorial, make sure you are in your design directory and at the Unix prompt, execute the followingcommand:

cp /CMC/kits/cmosis5/cadence/cmosis5.2.3/samples/glue.map .

7.8 Insert I/O Corner Cells

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

IO CommandsAutomatic...Qplace...CTS Place...

Spare Cell...Power CellGlue CellSnap To Grid...

∆ ∆

Sequencer...Check...

OK Cancel Defaults Apply Help

Net Association match TermName

Glue Cell Master Name

Glue Cell Library Name cmcpads

Terminal Mapping File

Glue Cell Master View abstract

Browse

none file

Justify...Add Corners...

Read Initial File...

3. Click

1. TypeCORNERc

2. Type./glue.map

From RTL Description to Layout 70 PN&JK

Create the channels that will be used for routing the chip.

7.9 Create Routing Channels

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

1. Click

OK Cancel Defaults Apply Help

Initial Cut vertical

Channel Name Channels

Cut With Barriers

horizontal automatic

Remove Cutlines...Create...

Display Cutlines... ChannelsModify NetSpecial Net RouteGlobal Route

Detail RouteSequencer...Check...

Delete

From RTL Description to Layout 71 PN&JK

Set the net properties from a file. There is a sample file in the Cadence directory, which should have been copied intoyour working directory. Make sure that this file is in the current directory, otherwise specify the full path to it in theFile Name field below. The sample file, called net.props, is in the same directory as the one used in Step 7.8.

7.10 Set Net Properties

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

4. Click❒3. Type./net.props

ChannelsModify NetSpecial Net RouteGlobal Route

Detail RouteSequencer...Check...

OK Cancel Defaults Apply Help

Net Properties File write

Properties File Name

read

Net Properties File...Split Net

Modify Net Properties...

Unsplit Net

Nets all selected

Properties To Save P&R all

1. Turn ON

2. Turn ON

From RTL Description to Layout 72 PN&JK

Global signals include power and ground signlas. These signals have to be routed first.

7.11 Route the Global Signals

• Error: ..auiGetBoolFieldValue error..- Ignore this error.

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

1. Click

ChannelsModify NetSpecial Net RouteGlobal Route

Detail RouteSequencer...Check...

∆ Delete...

Single Net Global Route...

Automatic...

Interactive Global Route...

OK Cancel Defaults Apply Help

Method both

Automatic OptimizerOptions

optimizeauto

Display Channel Density...Remove Channel Density...Adjust Channel Density...Topology Display...Global Routing File...

From RTL Description to Layout 73 PN&JK

Now route all the other signals.

7.12 Route the Whole Chip

• Error: ..auiGetBoolFieldValue error..- Ignore this error.

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

1. Click

ChannelsModify NetSpecial Net RouteGlobal Route

Detail RouteSequencer...Check...

OK Cancel Defaults Apply Help

Compaction Mode automatic

Max Horiz Jog Length for half-layer

Max Vert Jog Length for half-layer

Add Conditional Via

CompactOptions

rigid rigidIO

Reserve Tracks...Automatic...

Switch Layer...

Delete...Explode ChannelsStrip Outer Channels...

Contact Style centered offcentered pushed

Routing Layers 2 or 2 1/2 Layers 3 Layers

Tie Pin To Cell Instance

From RTL Description to Layout 74 PN&JK

Run the two CMC scripts. The first one ..., and the second one prevents bad shape errors on the VIA12 and VIA23instances when a DIVA DRC is performed..

7.13 Run the CMC Scripts

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

Layout/Extract ∆

Schematic ∆

RET ∆

P&R ∆

Flatten SymbolicViasSlot wide metal3 busses

✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

Layout/Extract ∆

Schematic ∆

RET ∆

P&R ∆

Flatten SymbolicViasSlot wide metal3 busses

From RTL Description to Layout 75 PN&JK

To create a layout view of the design, replace the views of all the design cells with their layout views. NOTE: normally after completing this step, the design cells will be displayed with instance views. To display the flat-tened views, press “shift-f”. To go back to instance views, press “control-f”.

7.14 Create a Layout View

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

3. Click❒ 2. Selectlayout

1. Turn ON

Reinitialize...I/O Place...PartitionBlock Place... ∆

Soft PinsUpdate AutoLayouts...Floorplan FileSynthesis Link

Replace View...

OK Cancel Help

layoutTo View Name

Defaults Apply

Instances To Work On selected all

From RTL Description to Layout 76 PN&JK

You must save both the autolayout and layout views of the design. If you want to re-run the aouto place and routeagain, you do it on the autolayout view. Otherwise the remaining steps, Design Rule Checking (DRC) and LayoutVersus Schematic (LVS) will be done on the layout view. After this step, you may close the autoLayout editorwindow.

7.15 Save the Design

Errors, Warnings, & Reports✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

2. Click❒1. Type

layout

SaveSave As...Discard EditsLoad...

Make Read OnlyShow Selected...HierarchyPlot

OptionsEnvironment ∆

✰ Virtuoso Editing: ...

Tools Design Window Create Route Edit Floorplan Place Analyze Help CMC

SaveSave As...Discard EditsLoad...

Make Read OnlyShow Selected...HierarchyPlot

OptionsEnvironment ∆

OK Cancel Help

Library Name DESIGN

Defaults Apply

Cell Name test

View Name layout

From RTL Description to Layout 77 PN&JK

All designs submitted to CMC for fabrication should have a logo that is typically a 5-character string composed ofyour University’s two-character ID followed by three characters chosed by the designer. In this tutorial, we will createa logo with CMC’s ID “IC” followed by the string “XXX”. The logo is added to the layout view. So make sure youclose the autolayout view in Step 7.15. Take note that this step is performed in two windows: the layout window andthe CIW window.

7.16 Place the CMC Logo

Errors, Warnings, & Reports

1When opening the layout view, make sure you select layout on the View Name.

Open the Layout View (Step 7.4)1

✰ Virtuoso Editing: ...

Tools Design Window Create Help Edit Verify Misc CMC Skill

AbstractAnalog ArtistCompactorDevice-Level Editor

Microwave

Device-Level RouterFloorplan/P&RInQueryLayoutLayout Synthesis

Module MakerPcellSimulation ∆

Structure-CompilerVerilog-XL

✰ icfb - Log:... (CIW)

CMOSIS5 Options Technology File CMC Gateway Tools Help File

On Connecting to CMCOn Getting Help with Cadence Tools

CMC-Added Documentation

Bug Submission FormStart Cadence DocumentationPlace Logo

From RTL Description to Layout 78 PN&JK

From RTL Description to Layout 79 PN&JK