Beruflich Dokumente
Kultur Dokumente
Release 4.0
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD
TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
Trademarks (™)
AFGen, Apollo, ARC, ASAP, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, BEST, Columbia, Columbia-CE, Cosmos,
CosmosLE, CosmosScope, CRITIC, CustomExplorer, CustomSim, DC Expert, DC Professional, DC Ultra, Design Analyzer,
Design Vision, DesignerHDL, DesignPower, DFTMAX, Direct Silicon Access, Discovery, Eclypse, Encore, EPIC, Galaxy,
HANEX, HDL Compiler, Hercules, Hierarchical Optimization Technology, High-performance ASIC Prototyping System,
HSIMplus, i-Virtual Stepper, IICE, in-Sync, iN-Tandem, Intelli, Jupiter, Jupiter-DP, JupiterXT, JupiterXT-ASIC, Liberty, Libra-
Passport, Library Compiler, Macro-PLUS, Magellan, Mars, Mars-Rail, Mars-Xtalk, Milkyway, ModelSource, Module Compiler,
MultiPoint, ORAengineering, Physical Analyst, Planet, Planet-PL, Polaris, Power Compiler, Raphael, RippledMixer, Saturn,
Scirocco, Scirocco-i, SiWare, Star-RCXT, Star-SimXT, StarRC, System Compiler, System Designer, Taurus, TotalRecall,
TSUPREM-4, VCSi, VHDL Compiler, VMC, and Worksheet Buffer are trademarks of Synopsys, Inc.
Service Marks ( )
SM
MAP-in, SVP Café, and TAP-in are service marks of Synopsys, Inc.
SystemC is a trademark of the Open SystemC Initiative and is used under license.
ARM and AMBA are registered trademarks of ARM Limited.
Saber is a registered trademark of SabreMark Limited Partnership and is used under license.
PCI Express is a trademark of PCI-SIG.
All other product or company names may be trademarks of their respective owners.
Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
The key steps of the SMS Network EDA Interoperability verification are as follows:
1. Generate memories, Wrappers, Processors, and Server.
2. Bottom-up synthesis of the SMS Network components.
3. Bottom-up scan insertion in the SMS Network components.
4. SMS level STA
5. ATPG
6. Formal equivalence checking of SMS RTL vs. netlist designs.
7. Formal equivalence checking of SMS RTL vs. DFT ready netlist designs.
8. Gate level simulation with SDF annotation.
The frequency of all clocks inside SMS can be manually set during wrapper configuration via following fields:
Memory clock frequency defines the memory clock frequency in MHz
SMS clock (clk_sms) frequency defines the SMS clock (clk_sms) frequency in MHz
IEEE 1500 clock frequency defines the IEEE 1500 clock (WRCK) frequency in MHz
Wrapper clock frequency defines the wrapper clock (clk_wr) frequency in MHz (for serial
architecture only)
The reset type of wrapper registers and the active level of rst_sms signal can be manually set during wrapper
configuration via “Reset type” field. Available values are as follows:
0 Wrapper registers have synchronous reset, synchronizers for both WRCK and clk_sms clock domains are
set on reset (rst_sms) signal inside wrapper. The active level of rst_sms signal is Logic High.
1 Wrapper registers have asynchronous reset, synchronizers for both WRCK and clk_sms clock
domains are set on reset (rst_sms) signal inside wrapper. The active level of rst_sms signal is Logic Low.
In case if the memory doesn’t have dedicated test clock and frequencies in test and functional mode are different,
a clock muxing should be added in SMS wrapper by setting the Clock multiplexing enable option value to true.
Based on these values the timing constraints and the corresponding input file for STAR Builder are generated.
These options apply to the RTL views only. Constraints and scripts are not affected.
The Wrapper input pipeline registers option define the number of pipe-line registers added on Wrapper test
address, data and other high-speed control inputs (if 0, pipe-line registers will not be added).This option allows to
extend the processor-to-wrapper path for up to 3 fast-clock cycle passing distance improving data exchange speed
between processor and wrapper.
The Pipeline output in BIST mode option enabled the sets pipe-line register on the memory data output for high-
speed BIST. Memory data output functional path is not affected.
The DFT operations file path option defines the path to the file in which DFT operation modes are defined.
The Reuse dm0 pin as ATPG scan enable option defines the wrapper dm0 pin as test scan enable pin.
This option allows to separate shift and capture stages by having separate modes for each stage.
The Additional DFT coverage (Func. Inputs) option enables the generation of observable logic on the memory
functional inputs in wrapper in case if the memory does not have dedicated test inputs (soft wrapper).
The Processor, Wrapper and Server compilers generate synthesis and DFT scripts as well as environment
constraints according to the default value of some Synthesis scripts parameters. Customization can be made
through the custom.glb files of the SMS Network components as well as via the Integrator GUI illustrated below.
RESET SYNCHRONIZATION
1 to Wrapper FFs
RST
CLR
Q RST
CLR
Q
rst_sms
clk_sms
dft_mode*
vl_ra_rst_sms_syncs_r[1:0]
1 to Wrapper FFs
RST
CLR
Q RST
CLR
Q
rst_sms
WRCK
dft_mode*
* When DFT operations are declared during wrapper generation, dft_mode = dm2|dm1|dm0, otherwise dft_mode = dm2.
vl_ra_rst_sms_syncf_r[1:0]
RST
CLR
Q RST
CLR
Q
clk_sms
vl_ra_rst_sms_syncs_r[1:0]
RST
CLR
Q RST
CLR
Q
WRCK
two-flip-flop synchronizers are implemented on control signals crossing the slow to fast domain border
data signals crossing the slow to fast domain border are synchronized using enable techniques
functionality of SMS Network does not require synchronizers on signals crossing the fast to slow domain
border
signals are registered in the source clock domain before passing to the destination clock domain to avoid a
combinational settling
Data flow diagrams for SMS Processor and Wrapper synchronizers are illustrated below.
0
m_scan_step
shift_dr
1
*_vlsmsmeta pos_wrck
half_wrck SET SET SET SET
D Q D Q D Q
D Q scan_step_r
CLR Q CLR Q CLR Q CLR Q
m_update_wir
update_wir *_vlsmsmeta
SET SET SET
D Q D Q D Q
*_vlsmsmeta m_updatedr
update_dr
SET SET SET
D Q D Q D Q
*_vlsmsmeta m_capturedr
capture_dr
SET SET SET
D Q D Q D Q
*_vlsmsmeta pos_wrck
half_wrck SET SET SET SET
D Q D Q D Q
D Q scan_step_r
CLR Q CLR Q CLR Q CLR Q
m_bira_mode
bira_mode *_vlsmsmeta
SET SET SET
D Q D Q D Q
*_vlsmsmeta m_biste
biste
SET SET SET
D Q D Q D Q
set_max_delay [expr 2 * $T_bist] -from [get_cells -hierarchical *wr_se_r*] -to [get_clocks {clkgrp_bist}]
set_max_delay [expr 3 * $T_bist] -from [get_clocks {clkgrpslow}] -to [get_clocks {clkgrp_bist}]
Where:
T_bist is period of fast clock
clkgrp_bist is name of fast clock (clk_sms)
clkgrpslow is name of fast clock (WRCK)
For high speed design end user can replace two-flip-flop synchronizer with N-flip-flop synchronizer. In this case the
timing constraints should be changed accordingly.
set_max_delay [expr N * $T_bist] -from [get_cells -hierarchical *wr_se_r*] -to [get_clocks {clkgrp_bist}]
set_max_delay [expr (N+1) * $T_bist] -from [get_clocks {clkgrpslow}] -to [get_clocks {clkgrp_bist}]
Serial outputs of scan chains from fast clock domain are not synchronized before capturing in slow clock domain,
because serial outputs are passed and held stable for enough time (at least 4 clk_sms periods) before being
sampled, there is no danger that the sampled value will go metastable.
set_max_delay [expr $T_slow - (4 * $T_bist)] -from [get_clocks {clkgrp_bist}] -to [get_clocks {clkgrpslow}]
set dft_op_table(RAMSEQ,enable) {}
set dft_op_table(RAMSEQ,disable) { TCLKE CDB DFTCLKEN BISTE DFTMASK TEST1 RME }
The first line describes the names of the DFT operation modes and their codes (dm2, dm1, dm0).
NOTE: The first pair of elements of this list should specify the DFT mode name and the dm2, dm1, dm0 pins
values which satisfy the design rules. These values will be used to create the test protocol, based on which the test
DRC (design rule checks) will be made. After successfully passing the test DRC on these values the CTL model of
design will be created also.
The following pairs of lines describe the memory pins excluding memory data and address inputs or from the
specific wrapper internal signals (any of available) which should be enabled and disabled, correspondingly, during
a certain DFT mode. In case if the memory does not have internal test logic/DFT logic some wrapper internal
signals (refer to User’s Manual on Wrapper Compiler, chapter 9.3.1 for details.) could be described in this way as
well. Each memory in design could have such a .tcl file defining its DFT operation modes. Different memories
could have the same .tcl file, provided that they have similar pinout and functionality. Further, the paths of .tcl files
should be provided to Wrapper Compiler, in order Wrapper Compiler to generate the corresponding DFT control
circuitry in RTL. It is mandatory for the memories/wrappers grouped under the same processor to have the same
DFT mode names and their corresponding codes (the first line in .tcl file), since the dm2, dm1, dm0 pins for all
wrappers being grouped under the same processor are shared. There is no limitation for grouping
memories/wrappers which do not have a DFT operation table. However, for different processors these pins are not
When Reuse dm0 pin as ATPG scan enable option is active the wrappers dm0 pin should be defined as scan
enable. In the DFT operation table the shift and capture stages should be described as separate modes.
An example of a tcl file for DFT operations table for this option is presented below.
set dft_op_names {ATPG_func_shift 111 ATPG_func_capture 110 ATPG_bist_shiftt 101 ATPG_bist_capture 100 }
The Reuse dm0 pin as ATPG scan enable option defines the wrapper dm0 pin as a test scan enable pin.
Each ATPG_func and ATPG_bist mode is separated into 2 modes: capture and shift. The shift mode is the same for
each mode. During the capture mode it is possible to switch Memory Data, Address, control and clock pins to
functional or BIST inputs.
If the memory does not have BIST interface on its hard macro then multiplexers will be set on memory data,
address, control and clock inputs. If the memory does not have internal AWT or SWT function, then AWT or SWT
function can be generated in soft wrapper RTL.
In this case the following wrapper internal signals can also be defined in DFT operations file allowing increasing
the ATPG coverage of BIST logic:
bist_en_int Control signal to the multiplexer switching memory data, address and control input signals. If set to
1, the signals from BIST logic take the control over the memory, otherwise the memory is controlled
by the User's input signals. If this signal is not included in a particular array for particular DFT mode,
then the signal will be toggling during that particular mode by default.
tclk_en_int1 Control signal to the multiplexer switching the memory clocks. If set to 1, the BIST clock signal is
provided to the memory, otherwise if set to 0, the functional clock signal is to the memory. If this
signal is not included in particular array for particular DFT mode, then the signal will be set to 1
during that particular mode by default.
Note: During the functional mode this signal is set to 0 to provide the functional clock to the memory.
wt_en_int2 Control signal enabling Write Though Mode. If this signal is not included in a particular array for
particular DFT mode, then the signal will be set to 1 during that particular mode by default, i.e. Write
Though Mode will be enabled.
wr_tclk_en_int Control signal to the multiplexer switching clocks to wrapper DFT related sequential
logic (observable flops, SWT, if available). If set to 1, the BIST clock signal is provided to the
wrapper DFT related logic, otherwise if set to 0, the functional clock signal is provided to the
Note: During the functional mode this signal is set to 1 to provide clk_sms to the wrapper flops.
1
Available if “Multiplexers on user clock” option is enabled.
2
Available if “External Write-Through mode” option is enabled.
NOTE: wt_en_int, tclk_en_int and wr_tclk_en_int are not allowed to toggle during any DFT mode.
Data preparation
Block-level synthesis, scan chains insertion and stitching
Synthesis and scan insertion should be run for the following sequence of modules:
1. Wrappers
2. Processors
3. Server
eda_verify
constr mem_virt_views run_all run_fm_dft rm_folders run_tetramax test_scripts run_lib run_syn run_pt run_fm
mem_arcs_dis.tcl wr_rtl_postdft.fms
mem_dt.tcl tetramax.tcl
create_wr_int_ctl.tcl
For wrapper synthesis and DFT verification purposes the following types of virtual memory description files are
required. Those files are:
1. memory timing model libraries;
2. memory ATPG model;
3. memory Tetramax model;
4. Verilog, Timing, Tetramax and FastScan models of standard cells library.
All off the above-mentioned types are generated based on MASIS description. Those files are located in
eda_verify/mem_virt_views folder. In case if there are no real memory models these virtual models are used for
verification purposes.
mem_virt_views folder
Preliminary SMS synthesis and DFT verification can be done with memory virtual models located in
eda_verify/mem_virt_views folder.
To perform data preparation run run_lib command file from eda_verify directory. As a result, mem_db and logs
folders are created in eda_verify folder. In case if memory MASIS view contains IntScanChain section mem_ctl
folder will be created also.
Memory CTL models <MemName>.ctl are created based on <MemName>_atpg_netlist.v file and std_cells.lib
library.
mem_db folder contains <MemName>.db compiled timing and test model of the memory. This model is based on
the results of <MemName>.lib and <MemName>.ctl compilation.
mem_ctl folder also contains CTL test model of wrapper’s <WrName>_int module when at least one chain is
reused in the Comparator section. This module will be used for stitching memories shared scan chains (BIST and
DFT modes).
The above mentioned operation can be done with memory real timing and atpg models. For this purpose run_lib
should be invoked with -real option. In this case, the project will be synthesized with real memory timing model
library, path to which should be written manually in <mem_lib.tcl> file in appropriate location. For Synopsys
memories those paths are generated automatically.
Generated memory CTL model is used for scan chain stitching between hard and soft macros. It can be applied as
test model during reading memory Synopsys .lib file. For example,
Generated <ProjName>_int_wr CTL model is used for scan chain stitching between SMS <ProjName>_int_wr
module and other logic. It can be applied as standalone test model for reading in DFT scripts. For example,
NOTE: Some memories can have shared scan chain for functional and DFT purposes, with shared ScanEnable
and ScanIn inputs. Those memories can be differentiated from MASIS description. For not shared memories, ports
described as ScanEnable and DataScanIn in the MASIS’s IntScanChain section have tag None. In general there is
no necessity to create CTL test model for <WrName>_int module. In this case, for shared memories, ports
described as ScanEnable and DataScanIn can have tag Comparator. Here it is necessary to create CTL test
model for <WrName>_int module for further DFT usage purposes. After memory library has been compiled, the
main synthesis phase begins.
Files containing timing and area reports will be generated in reports folder. The synthesis log file will be created in
the logs folder.
COMPILATION STRATEGY
Synopsys uses top-down compile strategy for wrappers. Synthesis script is wr_syn.tcl, which is located in the
test_scripts folder.
wr_syn.log exceptions.rpt
wr_dft.log timing_min.rpt
change_names.log timing_max.rpt
design_check_wr.log tetramax
tetramax.log detected.flt
wr_rtl_gate.log undeteced.flt
wr_rtl_vs_dft.log summary_report.rpt
<WrName>_<freq>.rpt
wr_rtl_gate.rpt
wr_rtl_vs_dft.rpt
wr_rtl_vs_dft_ver.status
Folders
Library compilation
Main synthesis
run_pt, run_tetramax, run_fm, run_fm_dft
mem_exc.sdc sms_pt.tcl
msff_annot.tcl sms_syn.tcl
disable_timing_proc.tcl stp_dft.tcl
<ProcName>_stp_env.sdc stp_syn.tcl
<ProcName>_sms_tim.sdc proc_rtl_gate.fms
<ProcName>_sms_env.sdc proc_rtl_postdft.fms
<ProcName>_stp_dft_constraints.tcl
mem_dt.tcl
Folders
Files containing timing and area reports will be generated in the reports folder. The synthesis log file will be
created in the logs folder.
Wrapper synthesis can be run from Processor’s eda_verify folder by running run_wrappers file. If it is preferable
to run the whole process of Wrappers and Processor synthesis and scan insertion from Processor’s eda_verify
folder then run_all file should be run. This run_all file is intended to run all scripts needed to synthesize at first
Wrappers and after that Processor.
COMPILATION STRATEGY
Synopsys uses bottom-up compile strategy for internal verification. For SMS design each wrapper and STP are
compiled separately, and later are incorporated in the top-level design. The top-level constraints are applied and
the whole design is checked for violations. Synthesis scripts stp_syn.tcl and sms_syn.tcl are located in the
test_scripts directory.
To get the complete top-level constraints to be used in customer’s design scripts, STAR Builder’s Script_Gen plug-
in must be used, which is described in the STAR Builder documentation.
design_check_sms.log timing_max.rpt
tetramax.log tetramax
proc_rtl_gate.log detected.flt
proc_rtl_vs_dft.log undeteced.flt
summary_report.rpt
<ProcName>_sms_<freq>.rpt
<ProcName>_stp_<freq>.rpt
proc_rtl_vs_dft.rpt
proc_rtl_gate.rpt
proc_rtl_vs_dft_ver.status
Figure 12 Added Files and Folders tree after synthesis’s for processor
Folders
Main synthesis
run_pt, run_tetramax, run_fm, run_fm_dft
Tetramax simulation and fault coverage estimation is done by tetramax.tcl script. Results are located in
eda_verify/reports/tetramax folder.
During JPC/SFP generation the following tree of synthesis specific files and folders is created:
eda_verify
jpc_sfp_env.sdc fuse_lib.tcl
jpc_sfp_tim.sdc jpc_sfp_pt.tcl
jpc_sfp_dft_constr.tcl jpc_sfp_dft.tcl
jpc_sfp_syn.tcl
jpc_sfp_tmax.tcl
srv_rtl_postdft.fms
srv_sfp_rtl_gate.fms
Folders
Files
Scripts (test_scripts folder)
To perform a data preparation run run_lib file from eda_verify directory. Running run_lib file will create logs and
mem_db folders in eda_verify folder, compile all e-fuses, put the compiled files into the mem_db folder, and the
compilation log file into the logs folder.
eda_verify
<SerName>_jpc_sfp_dft.log check_timimg.rpt
change_names.log exceptions.rpt
design_check.log timing_min.rpt
tetramax.log timing_max.rpt
<SerName>_jpc_sfp_RTL_gate_fm.log tetramax
srv_rtl_vs_dft_fm.log detected.flt
undeteced.flt
summary_report.rpt
<SerName>_jpc_sfp.rpt
<SerName>_jpc_sfp_RTL_gate_fm.rpt
srv_rtl_vs_dft_fm.rpt
srv_rtl_vs_dft_ver_fm.status
Figure 14 Added Files and Folders tree after synthesis for JPC/SFP
Folders
Tetramax simulation and fault coverage estimation is done by jpc_sfp_tmax.tcl/jpc_tmax.tcl script. Results are
located in eda_verify/reports/tetramax folder.
For generating these portions of code syn_fix_hold_enable parameter must be set to “true” in GUI or “1” in
*custom.glb file.
Gate level simulation is done using the Cadence NCVerilog simulator. There are corresponding lines in wrappers’,
processor’s and JPC and SFP testbenches that invoke the SDF back annotator. In order to invoke the SDF back
annotator, add the following command from the NCVerilog command line: +define GATE_LEVEL.
`ifdef GATE_LEVEL
//======== sdf annotation block ========================
initial
begin
$sdf_annotate(”<eda_verify/syn_out/ProjName>_ModuleName.sdf”,
<instance_name>);
end
//======== sdf annotation block ========================
`endif