Compiler Document
Compiler Document
September 2019
Copyright ➞ 2019, Taiwan Semiconductor Manufacturing Company, Ltd. All Rights Reserved. No part of this
publication may be reproduced in whole or in part by any means without prior written consent.
NOTICE
Taiwan Semiconductor Manufacturing Company Ltd. reserves the right to make changes in the contents of this
document without notice. No responsibility is assumed by Taiwan Semiconductor Manufacturing Company Ltd. for
any infringements of patents or other rights of the third parties that may result from its use. Taiwan Semiconductor
Manufacturing Company Ltd. assumes no responsibility for any error that appears in this document.
Table of Contents
2 Compiler Profile 16
2.1 Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.1 Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.2 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.3 Compiler Range Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.4 Pin Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.5 Major Pin Setting Requirement During Different Operation Modes . . . . . . . . . . . . . . . . 28
2.1.6 Logic Truth Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.7 Hazard Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.1.8 Timing Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.1.9 Timing Waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.10 Integration Guideline of Dual Rail and Power Management . . . . . . . . . . . . . . . . . . . . 47
2.1.11 Redundancy Repair Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1.12 DFT Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.1.13 Characterization Corners & Slew Rate Definition . . . . . . . . . . . . . . . . . . . . . . . . . . 85
2.1.14 Power Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.1.15 Metal Layer Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.1.16 Scramble Diagram and Mapping Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.1.17 Power/Ground Connection Guideline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.1.18 Routing Blockage Guideline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.1.19 Placement Guideline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.2 Reference Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.2.1 Release Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.2.2 Quick Reference Table (QRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6 References 131
6.1 Abbreviation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.2 Quick Troubleshooting for MC2 License Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
6.3 Other Related Problems and Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3 of 132
List of Figures
2.1 Block diagram of 1PRF/SPMB/HSSP/SPSB (TSEL pins are described in pin description table Table 2.11) 16
2.2 Block diagram of 2PRF (TSEL pins are described in pin description table Table 2.12) . . . . . . . . . 17
2.3 Block diagram of ROM (TSEL pins are described in pin description table Table 2.12) . . . . . . . . . 18
2.4 Timing protocol of SRAM Read-only operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5 Timing protocol of SRAM Write-only operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6 Timing protocol of port contention Read then Write (AA=AB) . . . . . . . . . . . . . . . . . . . . . . 41
2.7 Timing protocol of port contention Write then Read (AA=AB, D=D0) . . . . . . . . . . . . . . . . . 42
2.8 Timing protocol of ROM Read-only operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.9 Timing diagram of ROM unknown Q state between clock cycles with same address . . . . . . . . . . . 43
2.10 Clock Separation with Addresses Contention . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.11 Timing protocol of BIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.12 Timing protocol of redundancy function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.13 Timing protocol of TSEL pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.14 Illustration of power rails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.15 VDDM power gating with SD or DSLP asserted logic high . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.16 Power ramp-up sequence with SD or DSLP asserted logic high . . . . . . . . . . . . . . . . . . . . . . 50
2.17 Power ramp-down sequence (VDDM down first) with SD or DSLP asserted logic high . . . . . . . . . 50
2.18 Power ramp-down sequence (VDD down first) with SD or DSLP de-asserted . . . . . . . . . . . . . . . 51
2.19 Power ramp-down sequence (VDD down first) with SD or DSLP asserted logic high . . . . . . . . . . 51
2.20 VDD can be power-off when SD=1, VDDM=ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.21 Timing protocol of deep sleep mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.22 Timing protocol of shut down mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.23 Redundancy shift and decode direction with mux2/4 for 1PRF . . . . . . . . . . . . . . . . . . . . . . 57
2.24 Redundancy shift and decode direction with mux1 for 1PRF . . . . . . . . . . . . . . . . . . . . . . . 58
2.25 Redundancy shift and decode direction with mux2/4 for 2PRF . . . . . . . . . . . . . . . . . . . . . . 59
2.26 Redundancy shift and decode direction with mux1 for 2PRF . . . . . . . . . . . . . . . . . . . . . . . 60
2.27 Redundancy shift and decode direction with mux4/8/16 for SPSB . . . . . . . . . . . . . . . . . . . . 61
2.28 Redundancy shift and decode direction with mux2 for SPSB . . . . . . . . . . . . . . . . . . . . . . . . 62
2.29 Redundancy shift and decode direction for SPMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.30 Redundancy shift and decode direction for HSSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.31 Scan chain block diagram of 1PRF, SPSB, SPMB, HSSP compilers . . . . . . . . . . . . . . . . . . . . 66
2.32 Scan chain block diagram of 2PRF compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.33 Scan chain block diagram of ROM compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.34 Scan chain of 1PRF, 2PRF, SPSB, SPMB,HSSP, compilers . . . . . . . . . . . . . . . . . . . . . . . . 69
2.35 Scan chain of ROM compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.36 Shift/Capture mode timing protocol with DFTBYP=1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.37 Debug shift and normal mode timing protocol with DFTBYP=0 . . . . . . . . . . . . . . . . . . . . . 79
2.38 Shift/Capture mode timing protocol with DFTBYP=1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.39 Debug shift and normal mode timing protocol with DFTBYP=0 . . . . . . . . . . . . . . . . . . . . . 80
2.40 Shift/Capture mode timing protocol with DFTBYP=1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.41 Debug shift and normal mode timing protocol with DFTBYP=0 . . . . . . . . . . . . . . . . . . . . . 81
2.42 Isolation timing protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.43 Compiler scramble diagram for 1PRF mux1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.44 Compiler scramble diagram for 1PRF mux2/4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
2.45 Compiler scramble diagram for 2PRF mux1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4 of 132
2.46 Compiler scramble diagram for 2PRF mux2/4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.47 Compiler scramble diagram for SPSB mux2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
2.48 Compiler scramble diagram for SPSB mux4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.49 Compiler scramble diagram for SPSB mux8/16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.50 Compiler scramble diagram for SPMB with 1 bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.51 Compiler scramble diagram for SPMB 2 banks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.52 Compiler scramble diagram for SPMB with 1000 rows . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.53 Compiler scramble diagram for SPMB with 520 rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.54 Compiler scramble diagram for HSSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.55 Compiler scramble diagram for ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
2.56 Chip level power routing guideline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.57 APR Chip Integration Guideline for SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.58 Memory space guideline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5 of 132
List of Tables
7 of 132
Revision History of Databook
i
8 of 132
Databook version and Compiler version mapping table
9 of 132
About this Databook
This databook describes both the overview and details of a TSMC memory compiler family. Profiles, features, op-
tions, directory structures, front-end and back-end design kits, user modes and user-specified configurable files will be
described.
Section Description
Chapter 1 Overview of Compiler Introduction of the common key features of this compiler family
Family Product
Chapter 2 Compiler Profile Specification and features Specification and features among compilers
Chapter 3 Compiler In-Output File Input and output files for the compiler execution
Structure
Chapter 4 Application Note Verilog usage, DFT application and memory placement guidelines
Chapter 5 Compiler Installation and How to run memory compiler to generate macros
Execution
Chapter 6 References Useful information of compiler installation, general guideline and
license issue debugging
Reference Documents
In addition to this databook, a PPA (Performance, Power and Area) overview of each compiler will be provided in the
delivery package. Additionally a release note is included where tech files used for compiler development and revision
history will be described. Please see Chapter 2 for details.
Technical Support
For technical support, please contact Field Technical Support (FTS) at a TSMC regional office near you.
10 of 132
Chapter 1
1.1 Introduction
TSMC Memory Compiler family provides a total system solution of embedded memory IP for short turn-around time
of design process and a fast reliable path to market for leading SOC companies. The family is developed with 7nm Low
Leakage HKMG process and provides memory instances based on a variety of parameters, aspect ratio and support
views of corresponding EDA tools. The family includes 1PRF, 2PRF, SPSBSRAM, SPMBSRAM, HSSPSRAM, and
ROM.
In order for users to understand what features of macro are presented with each postfix letter/term, Table 1.2 is
provided to illustrate the meaning of each letter/term.
11 of 132
Naming Decode Description
vt Periphery Vt
a or b after ”vt” Bit cell type
depth Word depth
width Word width
mux Number of mux
seg Segment type
w Bit write
b BIST
z SWT
h Deep sleep
o Shut down
d Dual rail
x Write assist
cp Column redundancy
l Half power gate
ver Version
Multiple compilers are offered in compiler family for this technology generation, major aspect of each compiler is
described in following Table 1.3
12 of 132
1.1.2 General Features of Compiler Family
❼ Pins and metal layer
❼ Power management :
– Deep sleep mode powers down the most of peripheral circuit for leakage reduction and retains memory
array content with lower voltage
– Shut down mode achieves highest leakage reduction without data retention
– Dual rail design to support Dynamic Voltage Frequency Scaling (DVFS) application
– Power detector embedded in dual rail option to support VDD on followed by VDDM ramping up sequence
❼ General :
– Frequently used EDA model support, refer to Table 3.1 for supported commercial EDA tools
13 of 132
1.1.3 Compiler Options
During compilation to generate macros, users can choose desired features for application with command options, all
combinations of option are described in following sections:
Y Y Y Y Y Y -h Help
Y Y Y Y Y Y -NonTsmcName To use user-defined naming
convention (default is TSMC
naming convention)
Y Y Y Y Y Y -file <configfile> To use the input file from user
as configuration file (default
is config.txt)
Y Y Y Y Y Y -DualRail To enable Dual Rail option
(default is Disable)
Y Y Y Y N Y -ULVT To enable ulvt option (default
is lvt). Mixed Vt design with
device majority of ULVT for
high speed purpose
Y Y Y Y Y Y -SVT To enable svt option (default
is lvt). Mixed Vt design with
device majority of SVT for
low power purpose
Y Y Y Y N Y -NonBWEB To disable BWEB option
Y Y Y Y Y Y -NonBIST To disable BIST option.
Y Y N N N Y -NonColRed To disable column redun-
dancy option
N N N N Y N -GenROMCode To generate the default rom
code
Y Y Y Y Y Y -PVT To choose specific PVT cor-
ners
Y Y Y Y Y Y -LISTPVT To list PVT corners
Y Y Y Y Y Y -DATASHEET To generate DATASHEET kit
only
Y Y Y Y Y Y -lefM2Metal To change the metal
naming rule in LEF,
from M0,M1,...,M4 to
METAL0,METAL1,...,METAL4
Y Y Y Y Y Y -datasheet merged To produce only merged
datasheet (* mergedpvt.ds)
Y Y Y Y Y Y -datasheet separate To produce only individual
datasheet
Y Y Y Y Y Y -DS To put the value with the spe-
<clk>X<input>X<load>cific ”clock slew index & in-
put slew index & output load-
ing index” in DATASHEET
<clk>, <input>and
<load>only support from 1
to 5
The default setting is -DS
1X1X1
14 of 132
1.1.3.2 Combinations of power rails and power management
Please note that not all power management options associated with power rails are independently available, combina-
tions of option are described in following tables:
PM (Power Management) :
Table 1.5: Pins presented in combination of power rails and PM for compilers except ROM
Power Rail SD
Single Rail OFF
Single Rail ON
Dual Rail ON
15 of 132
Chapter 2
Compiler Profile
TSMC 7nm compilers operates within a voltage range from 0.675V to 0.825V and a junction temperature range from
-40C to 125C.
2.1 Specification
2.1.1 Block Diagram
Figure 2.1: Block diagram of 1PRF/SPMB/HSSP/SPSB (TSEL pins are described in pin description table Table 2.11)
16 of 132
Figure 2.2: Block diagram of 2PRF (TSEL pins are described in pin description table Table 2.12)
17 of 132
Figure 2.3: Block diagram of ROM (TSEL pins are described in pin description table Table 2.12)
18 of 132
2.1.2 Function
The synchronized compiler is triggered by a clock rising edge, CLK. All input control pins, for example, input address
A, input data D, chip enable CEB and write enable WEB are latched by the rising edge of clock. The following
explains major operation of each compiler.
ROM compiler :
The chip enable pin, CEB must be low at CLK rising edge. The read operation accesses the memory bits specified by
address A[M-1:0] and places the data outputs on bus Q[N-1:0] after the read access time.
2PRF compiler :
The chip enable, REB must be low at CLKR rising edge. Data is read and then transmitted to output bus Q[N-1:0]
from memory location specified by AB[M-1:0].
The write-enable pin, WEB must be low and chip enable pin, CEB stays low at CLK rising edge. Data on bus
D[N-1:0] is written into memory bits specified by address A[M-1:0]. The bit-write mask feature is controlled by bus
BWEB[N-1:0]. The data bit is not written into the memory when the corresponding BWEB pin is set to high.
2PRF compiler :
The write-enable, WEB must be low at CLKW rising edge. Data D[N-1:0] is written into memory location specified
by address AA[M-1:0]. The bit-write feature is controlled by BWEB[N-1:0].
19 of 132
2.1.2.5 Shut Down Mode
The shut down mode pin, SD must be high to enter the mode. It reduces most standby leakage by switching off the
power supply to most of periphery circuit and whole bit cell array. Thus the memory content will be corrupted after
entering this mode.
2.1.2.7 Redundancy
Column redundancy is built-in for repairing defect bit cells. To start the repair function, the defective IO number
must be addressed by parallel in redundancy input pins. Once repair function is asserted, the defective IO will be
replaced by the redundant IO. Refer to subsection 2.1.11 for more details of the redundancy mechanism and repair
setting.
20 of 132
2.1.3 Compiler Range Information
Memory macros can be configured by column mux option, number of words (Word Depth), and number of bits per
word (Word Width). The valid range of these parameters is specified in below tables.
1PRF:
SEG Option Mux Option Word Depth (WD) WD Increment Word Width I/O Increment
NA 1 8 4 24-288 2
NA 1 12 4 20-288 2
NA 1 16-128 4 16-288 2
NA 2 16-256 8 8-144 1
NA 4 32-512 16 8-72 1
2PRF:
SPSBSRAM:
SEG Option Mux Option Word Depth (WD) WD Increment Word Width I/O Increment
NA 2 16 8 10-288 2
NA 2 24-512 8 8-288 2
NA 4 32-1024 16 8-144 1
NA 8 64-2048 32 8-72 1
NA 16 128-4096 64 8-39 1
21 of 132
SPMBSRAM:
SEG Option Mux Option Word Depth (WD) WD Increment Word Width I/O Increment
T 4 512-2048 16 8-144 1
T 8 1024-4096 32 8-72 1
T 16 2048-8192 64 8-39 1
Q 4 512-4096 16 8-144 1
Q 8 1024-8192 32 8-72 1
Q 16 2048-16384 64 8-39 1
HSSPSRAM:
SEG Option Mux Option Word Depth (WD) WD Increment Word Width I/O Increment
NA 2 64-512 8 8-144 1
NA 4 128-1024 16 8-72 1
ROM:
SEG Option Mux Option Word Depth (WD) WD Increment Word Width I/O Increment
NA 16 256-16384 256 8-72 1
22 of 132
2.1.4 Pin Description
2.1.4.1 Pin list tables
Refer to tables below for detail pin description of each compiler.
23 of 132
Due to difference of layout structure and limitation of scan FF length, the required amount of scan in/out pins varies,
table(Table 2.8) below lists number of pins corresponding to types of compiler.
Table 2.8: Scan chain related input/output pin description of 1PRF/SPSB/SPMB/HSSP/ compilers
24 of 132
Pin list of 2PRF compiler :
25 of 132
Pin list of ROM compiler :
26 of 132
2.1.4.2 Default values of TSEL pins
Default values of TSEL pin setting are listed in Table 2.11, Table 2.12 and ??, they are stringently required to guar-
antee correct memory function since all timing data is characterized with default setting. TSEL pin setting might be
subject to change in future revision release after silicon validation. Other setting combinations of logic state would
only be used for silicon debugging purpose only.
Table 2.11: Default setting of TSEL pins for 1PRF, SPSB, SPMB, HSSP, UHD2PRF
27 of 132
2.1.5 Major Pin Setting Requirement During Different Operation Modes
Below pin constraints are required in different modes of memory operation to ensure that logic and timing models
behave as exactly as silicon does.
The interface timing is characterized with TSEL pin default setting only in both Scan/DFT mode and normal function
mode.
In Scan/DFT mode, TSEL pins are allowed to be unknown ”X” or toggling, and output timing keeps no change even
if TSEL pin values change.
In normal function mode, TSEL pins must be default setting to assure timing is matched to timing model. TSEL pins
different from default setting may cause silicon setup/hold timing failure.
28 of 132
2.1.6 Logic Truth Table
States of memory array content and behavior of output data Q associated with active pins in normal function and
power management modes are described in following tables for different types of compiler.
1PRF/SPSB/SPMB/HSSP compiler:
Table 2.13: Active pins in normal function mode for 1PRF/SPSB/SPMB/ HSSP
ROM compiler :
2PRF compiler :
29 of 132
1PRF/SPSB/SPMB/HSSP/compiler:
Function SD DSLP CLK CEB/ WEB/ BWEB/ D/ A/ BIST RED. FAD. Q PUD.DSLP PUD.SD Memory
CEBM WEBM BWEBM DM AM Contents
Deep sleep L** H -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z L H L No change
Deep sleep L** ❫ L/H - - - - - - - - X ❫ L No change
(enter)
Deep sleep L** ❴ L - - - - - - - - X ❴ L No change
(wake up)
Shut down H - -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z L - H all X
Shut down ❫ - L/H - - - - - - - - X - ❫ all X
(enter)
Shut down ❴ L*** L/H - - - - - - - - X L ❴ all X
(wake up)
Table 2.16: Active pins in deep sleep and shut down modes for 1PRF/SPSB/SPMB/ HSSP/
30 of 132
2PRF compiler :
Function SD DSLP CLKR/ REB/ WEB/ BWEB/ D/ AA/AMA BIST RED. FAD. Q PUD.DSLP PUD.SD Memory
CLKW REBM WEBM BWEBM DA AB/AMB con-
tent
Deep Sleep L** H -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z L H L No
change
Deep Sleep L** ❫ L/H - - - - - - - - X ❫ L No
(enter) change
Deep Sleep L** ❴ L - - - - - - - - X ❴ L No
(wake up) change
Shut down H - -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z -/Z L - H All x
Shut down ❫ - L/H - - - - - - - - X - ❫ All x
(enter)
Shut down ❴ L*** L/H - - - - - - - - X L ❴ All x
(wake up)
Note1 : RED. stands for REDENIO
Note2 : FAD. stands for FADIO[J:0]
Note3 : PUD.DSLP stands for PUDELAY DSLP
Note4 : PUD.SD stands for PUDELAY SD
Note5 : L** indicates SD must be ”Low” before entering to or wakeup from deep sleep mode
Note6 : L*** indicates DSLP must be ”Low” before wakeup from shut down mode
Table 2.17: Active pins in deep sleep and shut down modes for 2PRF
31 of 132
2.1.7 Hazard Conditions
Hazard conditions happen when certain inputs of memory are unknown or floating, they could result in unknown
output data Q and/or corrupted memory content.
32 of 132
2PRF compiler:
ROM compiler:
33 of 132
2.1.7.2 Hazard Conditions with redundancy pins
States of pin combinations in following tables that do not exist in repair function truth table may cause unknown
memory content or output data. User should be aware of or avoid these combinations.
Table 2.22: SRAM hazard conditions: redundancy fuse setting cycle for 1PRF/SPSB/SPMB/HSSP compilers
2PRF compiler:
Table 2.23: SRAM hazard conditions: redundancy fuse setting cycle for 2PRF compiler
34 of 132
General terms used in the above truth or hazard tables
Condition:
❼ L : logic low
❼ H : logic high
❼ Z : high impedance
❼ - : L, H, X, not include Z
Output Q:
❼ L : logic low
Mem:
❼ mem[a][i] = X : memory content is unpredictable at the specific memory address and specific IO
35 of 132
2.1.8 Timing Parameter
All timing parameters are listed in following tables and described with pin of reference and measurement. All timing
is measured from a logic threshold at 50% of the power supply VDD.
1PRF/SPSB/SPMB/HSSP/ compiler:
36 of 132
2PRF compiler:
37 of 132
ROM compiler:
38 of 132
2.1.9 Timing Waveform
All timing parameters are illustrated with input signal waveforms in following sections.
39 of 132
1PRF/SPSB/SPMB/HSSP compiler:
40 of 132
2PRF compiler :
Figure 2.6: Timing protocol of port contention Read then Write (AA=AB)
41 of 132
2PRF compiler :
Figure 2.7: Timing protocol of port contention Write then Read (AA=AB, D=D0)
42 of 132
ROM compiler:
Figure 2.9: Timing diagram of ROM unknown Q state between clock cycles with same address
43 of 132
Figure 2.10: Clock Separation with Addresses Contention
44 of 132
2.1.9.3 Timing waveform of redundancy function
Redundancy function is not applicable to ROM compiler.
Redundancy behavior :
❼ If REDENIO toggles, or FADIO[J:0] toggle when REDENIO=1’b1 during write operation(WEB=L), memory
contents will become X.
45 of 132
2.1.9.4 Timing waveform of TSEL pins
TSEL pin states are required to be stable with default values during normal operation, changing values during oper-
ation cycle could result in function failure.
46 of 132
2.1.10 Integration Guideline of Dual Rail and Power Management
Definition of power domains and pins for Dual Rail option, and rail connections are described in following sections:
2.1.10.1 Definition and requirement of power domains and power management pins
❼ All compiler types provide Interface Dual Rail (IDR) for lowest VDDmin with level shifter implemented at
interface.
❼ VDD and VDDM represent power pins of two different domains as dual rail supplying voltages to memory
macro, where VDD domain is the outer rail of macro, same as the domain of input signal pins and output Q
pins, VDDM domain is the inner rail of macro for partial periphery and cell array. Internal power switches are
embedded separately for both VDD and VDDM rails to provide users with capability of power management
functions to save leakage power.
❼ All input/output pins are in VDD domain.
❼ In order to have correct function of Dual Rail option, VDD and VDDM pins must be connected to external
VDD and VDDM respectively.
❼ VDD supply voltage is not allowed to have 100mV higher than VDDM supply voltage in all kinds of operation
modes. VDD can not exceed 300mV lower than VDDM in all kinds of operation modes except SD mode.
❼ VDD power rail must always ramp up first to guarantee memory function.
❼ When VDD is ON, VDDM can be floating without extra leakage if SD or DSLP is asserted logic high. Refer to
Figure 2.15.
❼ If DSLP pin is used to control power ramp up/down sequence, SD pin is required to be tied to 0V. In this case,
PUDELAY DSLP pin is not allowed to be used to connect to SD pin of other macros.
❼ DSLP mode can be expanded with pin DSLPLV which makes supply to array with diode drop if DSLPLV=0 as
well as supply to array with direct connection to external rail if DSLPLV=1.
47 of 132
Figures below illustrate different power domains of in/output pins and power ramp up/down sequence and requirement.
Figure 2.15: VDDM power gating with SD or DSLP asserted logic high
48 of 132
2.1.10.2 Voltage operation range of DualRail
❼ Summary of VDDmin and VDDMmin
– IDR SVT/LVT/uLVT
49 of 132
2.1.10.3 Power ramping sequence for dual rail memory
Sequence of power ramping up/down with states of PM pins and output Q state are illustrated in following waveform
diagrams.
VDD power rail must always ramp up first to guarantee memory function. During VDD is power on and VDDM is
not power on, VDDM must be at 0V voltage level to avoid leakage on VDD rail. During VDDM ramping up, SD
and/or DSLP must be asserted to avoid leakage on VDD rail.
Figure 2.16: Power ramp-up sequence with SD or DSLP asserted logic high
VDDM power rail is recommended to ramp down first with SD and/or DSPLP asserted during VDDM is ramping
down.
VDDM must be at 0V voltage level to avoid leakage on VDD rail. When VDDM is power off and VDD is still power
on.
Figure 2.17: Power ramp-down sequence (VDDM down first) with SD or DSLP asserted logic high
50 of 132
VDD ramps down earlier than VDDM without SD and/or DSLP assertion is not recommended. During VDD is
ramping down, potential leakage on VDDM rail is unavoidable when SD and/or DSLP are not asserted.
After VDD ramps down, VDD must be at 0V to avoid leakage on VDDM rail.
Figure 2.18: Power ramp-down sequence (VDD down first) with SD or DSLP de-asserted
VDD ramps down earlier than VDDM with SD and/or DSLP assertion is recommended. During VDD is ramping
down, VDDM rail power switch will be clamped until VDD reaches functional Vmin, and the leakage on VDDM rail
can be minimized.
After VDD ramps down, VDD must be at 0V to avoid leakage on VDDM rail.
Figure 2.19: Power ramp-down sequence (VDD down first) with SD or DSLP asserted logic high
Allowed for SD is asserted but Q will be floating due to VDD is off.Isolation is required between memory output and
down stream logic
51 of 132
2.1.10.4 Truth table for power domain states and power management (PM) pins
States combinations of power domains, PM pins, and result states of output pins and storage content are described in
following tables.
All compilers:
Table below is not applicable to ROM compiler since ROM does not have Deep Sleep feature.
Table 2.28: Condition & description of rails with on/off states vs. DSLP/SD
ROM compiler :
Table 2.29: Condition & description of rails with on/off states vs. SD
52 of 132
2.1.10.5 Timing waveform of power management
Deep Sleep Mode for all compilers
Waveform diagram(Figure 2.21) below is not applicable to ROM compiler since ROM does not have Deep Sleep feature.
❼ DSLP pin must be asserted high for entering deep sleep mode (1’b1 = power saving) and compliant to setup
and hold time requirement.
❼ Most of input pins can be floating or unknown (x) during deep sleep mode (DSLP = 1’b1) except SD.
❼ After DSLP goes high (1’b1), tdslpx timing shall be met before input pins become floating or unknown (x)
states, Similarly, txdslp timing shall be met before DSLP goes low (1’b0) to ensure input pins are valid (0/1).
❼ The SRAM data output (Q) is logic low after DSLP is asserted (DSLP = 1’b1) with certain waiting time, tdslpq.
While DSLP is still asserted, data output (Q) remains logic low.
❼ SRAM wake up time from deep sleep mode to normal mode (tdslpwk2clk) is required and must be sufficiently
guaranteed for instance to have healthy power supply.
❼ DSLP pin must be asserted high and meets the required timing ”tclk2dslp” for entering deep sleep mode.
❼ DSLP falling edges must be within CLK=0 duration for waking up from DSLP mode.
53 of 132
Shut Down Mode for all compilers:
Input signal DSLP and output signal PUDELAY DSLP are not applicable to ROM compiler since ROM does not
have Deep Sleep feature. Please note that PUDELAY SD is renamed as PUDELAY for ROM.
❼ All input pins except SD and DSLP can be floating or unknown (X) during shut down mode (SD=1’b1). DSLP
pin can be unknown but not floating during shut down mode.
❼ After SD goes high (1’b1) , tsdx timing shall be met before input pins become floating or unknown (x) states.
Similarly, txsd timing shall be met before SD goes low (1’b0) to ensure input pins are valid(0/1).
❼ After SD goes low (wakeup condition) the values of data output (Q) changes from logic low (shut down mode)
to unknown-X (normal stand-by mode), there is no high-Z on output Q.
❼ In order to have DSLP wake-up time of macro behavior matched tdslpwk2clk exactly, a condition of no entering
DSLP mode is required while still in process of SD waking up.
– DSLP must remain asserted low while macro waking up from shut-down mode with SD being asserted low.
54 of 132
2.1.10.6 Deep Sleep Bypass Mode
For achieving lowest retention power in DSLP mode, a specific pin ”DSLPLV” to bypass retention diodes is provided.
When DSLPLV=1, a power switch is turned on to bypass retention diode in DSLP mode. DSLPLV default setting is 0,
the SRAM array retention voltage is biased by retention diodes. Both leakage number in DSLPLV=1 and DSLPLV=0
are provided in NLDM model.
55 of 132
2.1.11 Redundancy Repair Setting
2.1.11.1 Column redundancy
One redundant chunk of cell array associating with an IO access is built-in additionally for column repair function. To
enable repair, the REDENIO pin must be ”high”, the defective IO address will be defined by FADIO[J:0]. Once the
repair function is activated for write mode, input data D[m] of this defective IO[m] is shifted to adjacent IO[m+1] and
D[m+1] shifted to IO[m+2] until the last D[n-1] shifted to redundant IO. Whereas the inputs of D[0] to D[m-1] still
enter their original IOs without shifting. For read operation, the data out path follows the same path as write but in
opposite direction. The IO[m+1] outputs its data to Q[m] of the defective IO and IO[m+2] outputs to Q[m+1] until
redundant IO outputs to Q[n-1]. Then same as write, the Q[0] to Q[m-1] receive the outputs of their corresponding
IOs. Due to size of word width, the address to number of IO varies, therefore, the amount of FADIO pins varies
accordingly, table below lists down number of FADIO required for each type of memory.
Note:
1.n: total IO number
2.S: number of IOs are grouped as one for the data shifting
1. Check on figure above, Table 2.30: FADIO[J:0] mapping table, to determine the shift (S) of per IO or per 2 IO’s
for different types of memory.
Shifting scheme of input and output data are illustrated for each type of memory in following diagrams.
56 of 132
Figure 2.23: Redundancy shift and decode direction with mux2/4 for 1PRF
57 of 132
1PRF compiler MUX1:
For mux1 case, the repair mechanism is similar but only differs on that two IOs are grouped as one for the data
shifting.Please refer to Figure 2.24
Figure 2.24: Redundancy shift and decode direction with mux1 for 1PRF
58 of 132
2PRF compiler MUX2/4:
Figure 2.25: Redundancy shift and decode direction with mux2/4 for 2PRF
59 of 132
2PRF compiler MUX1:
For mux1 case, the repair mechanism is similar but only differs on that two IOs are grouped as one for the data
shifting.
Please refer to Figure 2.26
Figure 2.26: Redundancy shift and decode direction with mux1 for 2PRF
60 of 132
SPSB compiler MUX4/8/16 :
Figure 2.27: Redundancy shift and decode direction with mux4/8/16 for SPSB
61 of 132
SPSB compiler MUX 2:
For mux2 case, the repair mechanism is similar but only differs on that two IOs are grouped as one for the data shifting.
Figure 2.28: Redundancy shift and decode direction with mux2 for SPSB
62 of 132
SPMB compiler :
63 of 132
HSSP compiler :
Two redundant chunks of cell array associating with IO access are built-in additionally in left and right banks for
column repair function respectively. To enable repair, the REDENIO pin must be ”high”, the defective IO address
will be defined by FADIO[J:0]. If the failure bit is located in left bank, once the repair function is activated for write
mode, input data D[m] of this defective IO[m] is shifted to adjacent IO[m+1] and D[m+1] shifted to IO[m+2] until
the last D[n-1] shifted to redundant IO. Whereas the inputs of D[0] to D[m-1] still enter their original IOs without
shifting. For read operation, the data out path follows the same path as write but in opposite direction. The IO[m+1]
outputs its data to Q[m] of the defective IO and IO[m+2] outputs to Q[m+1] until redundant IO outputs to Q[n-1].
Then same as write, the Q[0] to Q[m-1] receive the outputs of their corresponding IOs. If the failure bit is located in
right bank, the direction of shifting is opposite. Though 2 redundant chunks are built in, only one defect IO can be
repaired. Figure 2.30 below illustrates the direction of shifting in left and right bank.
64 of 132
2.1.12 DFT Scheme
2.1.12.1 Introduction
To increase test coverage and improve overall testability at the SOC level the compiler is designed with DFT and
BIST functions. Input multiplexers are embedded in the memory macro to provide interface to the memory BIST.
The compiler also supports scan chain data bypass function for ATPG test.
❼ BIST interface
– All input pins to the memory core (except the clock input) can be from normal function path(D, BWEB,
A, CEB..) or BIST logic path (DM, BWEBM, AM, CEBM..).
– The interface multiplexers are controlled by BIST input signal for path selection.
❼ Scan chain with synchronous write through (bypass) function.
65 of 132
2.1.12.2 Block Diagram of Scan Flip-Flop
In this section, the SWT for input signal pins are illustrated in following figures for each type of memory, detail
grouping of pins, for instance, PIN A and PIN B groups are listed in tables of section ”Scan Chain Configuration
Order”.
1PRF/SPSB/SPMB/HSSP/ compiler :
Figure 2.31: Scan chain block diagram of 1PRF, SPSB, SPMB, HSSP compilers
66 of 132
2PRF compiler :
Note : The pin order of PIN A, PIN B and PIN C group are listed in Table 2.32
67 of 132
ROM compiler :
68 of 132
2.1.12.3 Scan Chain Configuration
Orientation of scan register chaining for input control signals and data is illustrated in following figures.
69 of 132
ROM compiler :
1PRF compiler:
2PRF compiler :
SPMB compiler:
HSSP compiler:
ROM compiler:
71 of 132
2.1.12.5 Scan Chain Truth Table
Behavior of functional, scan capture, scan shift and debug shift modes are described in following tables.
Table 2.37: Scan chain truth table for all compiler (except 2PRF and ROM)
2PRF compiler:
72 of 132
ROM compiler:
73 of 132
2.1.12.6 Timing Parameters
Timing parameters related to DFT scheme are listed in following tables for each type of memory.
1PRF/SPSB/SPMB/HSSP/ compiler:
74 of 132
Parameter Definition From To
tdfts SWT enable pin setup time DFTBYP CLK❫
tdfth SWT enable pin hold time CLK❫ DFTBYP
tses Scan enable pin setup time SE CLK❫
tseh Scan enable pin hold time CLK❫ SE
tsids Data scan input setup time SID CLK❫
tsidh Data scan input hold time CLK❫ SID
tsics Control scan input setup time SIC CLK❫
tsich Control scan input hold time CLK❫ SIC
tsodq sc Delay from CLK to valid data scan output SOD in DFT capture mode CLK❴ SOD
tsodqh sc Delay from CLK to invalid data scan output SOD in DFT capture mode CLK❴ SOD
tsocq sc Delay from CLK to valid data scan output SOC in DFT capture mode CLK❴ SOC
tsocqh sc Delay from CLK to invalid data scan output SOC in DFT capture mode CLK❴ SOC
tsodq ss Delay from CLK to valid data scan output SOD in DFT shift mode CLK❴ SOD
tsodqh ss Delay from CLK to invalid data scan output SOD in DFT shift mode CLK❴ SOD
tsocq ss Delay from CLK to valid data scan output SOC in DFT shift mode CLK❴ SOC
tsocqh ss Delay from CLK to invalid data scan output SOC in DFT shift mode CLK❴ SOC
tcddft Delay from CLK to valid output Q with DFTBYP = HIGH CLK❫ Q
tholddft Delay from CLK to invalid output Q with DFTBYP = HIGH CLK❫ Q
tdslpsoc SOC(low) delay time after DSLP enable DSLP SOC
tdslpsoch SOC to invalid SOC after DSLP enable DSLP SOC
tdslpsod SOD(low) delay time after DSLP enable DSLP SOD
tdslpsodh SOD to invalid SOD after DSLP enable DSLP SOD
tsdsoc SOC(low) delay time after SD enable SD SOC
tsdsoch SOC to invalid SOC after SD enable SD SOC
tsdsod SOD(low) delay time after SD enable SD SOD
tsdsodh SOD to invalid SOD after SD enable SD SOD
tws sc WEB setup before CLK in DFT mode WEB CLK❫
twh sc WEB hold after CLK in DFT mode CLK❫ WEB
twms sc WEBM setup before CLK in DFT mode WEBM CLK❫
twmh sc WEBM hold after CLK in DFT mode CLK❫ WEBM
tds sc D setup before CLK in DFT mode D CLK❫
tdh sc D hold after CLK in DFT mode CLK❫ D
tdms sc DM setup before CLK in DFT mode DM CLK❫
tdmh sc DM hold after CLK in DFT mode CLK❫ DM
tbws sc BWEB setup before CLK in DFT mode BWEB CLK❫
tbwh sc BWEB hold after CLK in DFT mode CLK❫ BWEB
tbwms sc BWEBM setup before CLK in DFT mode BWEBM CLK❫
tbwmh sc BWEBM hold after CLK in DFT mode CLK❫ BWEBM
tas sc A setup before CLK in DFT mode A CLK❫
tah sc A hold after CLK in DFT mode CLK❫ A
tams sc AM setup before CLK in DFT mode AM CLK❫
tamh sc AM hold after CLK in DFT mode CLK❫ AM
tcs sc CEB setup before CLK in DFT mode CEB CLK❫
tch sc CEB hold after CLK in DFT mode CLK❫ CEB
tcms sc CEBM setup before CLK in DFT mode CEBM CLK❫
tcmh sc CEBM hold after CLK in DFT mode CLK❫ CEBM
tcyc ss Minimum CLK cycle time in Shift mode CLK❫ CLK❫
tckh ss Minimum CLK pulse high in Shift mode CLK❫ CLK❴
tckl ss Minimum CLK pulse low in Shift mode CLK❴ CLK❫
tcyc sc Minimum CLK cycle time in Capture mode CLK❫ CLK❫
tckh sc Minimum CLK pulse high in Capture mode CLK❫ CLK❴
tckl sc Minimum CLK pulse low in Capture mode CLK❴ CLK❫
75 of 132
2PRF compiler :
76 of 132
Parameter Definition From To
tdfts SWT enable pin setup time DFTBYP CLKW❫
tdfth SWT enable pin hold time CLKW❫ DFTBYP
tses Scan enable pin setup time SE CLKW❫
tseh Scan enable pin hold time CLKW❫ SE
tsids Data scan input setup time SID CLKW❫
tsidh Data scan input hold time CLKW❫ SID
tsics Control scan input setup time SIC CLKW❫
tsich Control scan input hold time CLKW❫ SIC
tsodq sc Delay from CLK to valid data scan output SOD in DFT capture mode CLK❴ SOD
tsodqh sc Delay from CLK to invalid data scan output SOD in DFT capture mode CLK❴ SOD
tsocq sc Delay from CLK to valid data scan output SOC in DFT capture mode CLK❴ SOC
tsocqh sc Delay from CLK to invalid data scan output SOC in DFT capture mode CLK❴ SOC
tsodq ss Delay from CLK to valid data scan output SOD in DFT shift mode CLK❴ SOD
tsodqh ss Delay from CLK to invalid data scan output SOD in DFT shift mode CLK❴ SOD
tsocq ss Delay from CLK to valid data scan output SOC in DFT shift mode CLK❴ SOC
tsocqh ss Delay from CLK to invalid data scan output SOC in DFT shift mode CLK❴ SOC
tcddft Delay from CLKW to valid output Q with DFTBYP = HIGH CLKW❫ Q
tholddft Delay from CLKW to invalid output Q with DFTBYP = HIGH CLKW❫ Q
tdslpsoc SOC(low) delay time after DSLP enable DSLP SOC
tdslpsoch SOC to invalid SOC after DSLP enable DSLP SOC
tdslpsod SOD(low) delay time after DSLP enable DSLP SOD
tdslpsodh SOD to invalid SOD after DSLP enable DSLP SOD
tsdsoc SOC(low) delay time after SD enable SD SOC
tsdsoch SOC to invalid SOC after SD enable SD SOC
tsdsod SOD(low) delay time after SD enable SD SOD
tsdsodh SOD to invalid SOD after SD enable SD SOD
tws sc WEB setup before CLKW❫ in scan mode WEB CLKW
twh sc WEB hold after CLKW❫ in scan mode CLKW WEB
twms sc WEBM setup before CLKW❫ in scan mode WEBM CLKW
twmh sc WEBM hold after CLKW❫ in scan mode CLKW WEBM
tds sc D setup before CLKW❫ in scan mode D CLKW
tdh sc D hold after CLKW❫ in scan mode CLKW D
tdms sc DM setup before CLKW❫ in scan mode DM CLKW
tdmh sc DM hold after CLKW❫ in scan mode CLKW DM
tbws sc BWEB setup before CLKW❫ in scan mode BWEB CLKW
tbwh sc BWEB hold after CLKW❫ in scan mode CLKW BWEB
tbwms sc BWEBM setup before CLKW❫ in scan mode BWEBM CLKW
tbwmh sc BWEBM hold after CLKW❫ in scan mode CLKW BWEBM
taas sc AA setup before CLKW❫ in scan mode AA CLKW
taah sc AA hold after CLKW❫ in scan mode CLKW AA
tamas sc AMA setup before CLKW❫ in scan mode AMA CLKW
tamah sc AMA hold after CLKW❫ in scan mode CLKW AMA
tabs sc AB setup before CLKW❫ in scan mode AB CLKW
tabh sc AB hold after CLKW❫ in scan mode CLKW AB
tambs sc AMB setup before CLKW❫ in scan mode AMB CLKW
tambh sc AMB hold after CLKW❫ in scan mode CLKW AMB
trs sc REB setup before CLKW❫ in scan mode REB CLKW
trh sc REB hold after CLKW❫ in scan mode CLKW REB
trms sc REBM setup before CLKW❫ in scan mode REBM CLKW
trmh sc REBM hold after CLKW❫ in scan mode CLKW REBM
twcyc ss Minimum CLKW cycle time in Shift mode CLKW❫ CLKW❫
twckh ss Minimum CLKW pulse high in Shift mode CLKW❫ CLKW❴
twckl ss Minimum CLKW pulse low in Shift mode CLKW❴ CLKW❫
twcyc sc Minimum CLKW cycle time in Capture mode CLKW❫ CLKW❫
twckh sc Minimum CLKW pulse high in Capture mode CLKW❫ CLKW❴
twckl sc Minimum CLKW pulse low in Capture mode CLKW❴ CLKW❫
77 of 132
ROM compiler :
78 of 132
2.1.12.7 Timing Protocol for Shift Mode, Capture Mode and Debug Shift Mode
1PRF/SPSB/SPMB/HSSP/ compiler:
Figure 2.37: Debug shift and normal mode timing protocol with DFTBYP=0
79 of 132
2PRF compiler:
Figure 2.39: Debug shift and normal mode timing protocol with DFTBYP=0
80 of 132
ROM compiler :
Figure 2.41: Debug shift and normal mode timing protocol with DFTBYP=0
81 of 132
Notes of Shift and Capture modes :
❼ DFTBYP is an asynchronous input pin to enable function of shift and capture modes.
❼ SE is a synchronous input pin to switch between shift and capture modes, asserted high for shift mode whereas
asserted low for capture mode.
❼ Output Q is rippled in shift mode with the corresponding content of scan FF while shifting.
82 of 132
Figure 2.42: Isolation timing protocol
❼ SOC/SOD[1:0], same as output Q are isolated and clamped to low while DSLP/SD is being asserted.
❼ SIC and SID[1:0] pins are allowed to be floating in DSLP and SD mode.
❼ SOD & SID are not applicable to ROM, since there is no Data pin for ROM.
❼ SOC, SOQ[1:0], same as output Q are isolated with pull down to low while SD is being asserted.
83 of 132
DFT behavior :
❼ Redundancy enable pin REDENIO must be static-low or static-high or toggled during shift, capture and debug
shift modes.
❼ TSEL pins can be unknown during shift, capture and debug shift modes. Names of TSEL pins for each compiler
are listed below:
– 1PRF/SPSB/ SPMB/HSSP: RTSEL,WTSEL,
– 2PRF :RCT, WCT, KP
– ROM :CKHE, CKLE, SKP, DT
❼ Delay timing of SOC, SOD and Q pins are characterized with default setting of TSEL pins.
❼ Delay timing of SOC, SOD and Q pins are independent to TSEL pin setting in capture, shift and debug shift
modes.
84 of 132
2.1.13 Characterization Corners & Slew Rate Definition
2.1.13.1 Slew Rate Definition and Measurement Points
All timing is measured with a logic threshold at 50% of power supply VDD. Slew time is measured from 10% to 90%
of power supply VDD.
All timing data is characterized with 5 output load 0.00128/0.01679/0.03452/0.06998/0.1409(pf) and 5 input slew
time as indexes of timing arc for those periphery voltages as shown in Table 2.43 and Table 2.44
85 of 132
2.1.13.2 Characterization PVT Corners
The voltage value in PVT larger than 0.825v DRM spec is characterized for timing sign-off only. TSMC does not
guarantee the SRAM reliability and yield if the user operates the SRAM above 0.825v
86 of 132
2.1.14 Power Definition
DC and AC power number can be found in macro datasheet after compiling, definitions as following:
❼ Read current: Clock read current which excludes leakage and pin power.
❼ Write current: Clock write current which excludes leakage and pin power.
❼ Deselect current: memory is disabled by CEB pin, and clock is toggling; all signals are in steady state.
❼ Static standby (leakage) current: memory is disabled by CEB pin, and clock is not toggling; all signals are in
steady state.
❼ Dynamic standby current: memory is disabled by CEB pin, and clock is toggling in 50% clock activity; address
and data pins maintain 50% activity.
❼ Pin power: specific power for pin/bus contribution information, please refer to ”Dynamic Power break down per
pin” table in datasheet of memory macros.
87 of 132
2.1.15 Metal Layer Usage
❼ Metal scheme is 1P3M 1X1Xa.
❼ Power pins are brought up to top level as M3 pins for easy access
88 of 132
2.1.16 Scramble Diagram and Mapping Example
In order to efficiently for users to test on silicon, users may need to understand of how memory bit lines and word
lines are organized, following figures illustrate the scramble diagram for each type of memory.
89 of 132
2PRF compiler MUX1:
90 of 132
SPSB compiler MUX2:
91 of 132
SPSB MUX4 :
92 of 132
SPMB compiler :
93 of 132
Figure 2.52: Compiler scramble diagram for SPMB with 1000 rows
Figure 2.53: Compiler scramble diagram for SPMB with 520 rows
94 of 132
HSSP compiler :
ROM compiler :
95 of 132
Note
cm : the number of column-mux
m : the number of row
n : the number of word width(bits)
If n is equal to even number, all IO(bits) will be allocated evenly into left and right bank, namely each bank has the
same number of IO(bits), whereas, if n is equal to odd number, left bank always has one more IO(bit) than right bank
and 4 columns for redundancy.
Table 2.46 is an example that shows how address pins decoded for word line (WL) and Bit lines (BL, BLB).
96 of 132
2.1.17 Power/Ground Connection Guideline
In chip design level, users shall meet the lower bound of voltage level for Vccmin specification, for example, (>=Vdd-
10%) at the memory IP boundary to avoid performance degradation due to voltage drop from system power. Guidelines
are listed below to provide better IR drop result and EM management:
❼ Connect Mn VDD/VDDM and VSS power lines through M(n+1) and VIA as many as possible.
❼ All power and ground pins MUST be connected to VDD/VDDM and VSS, respectively.
❼ Metal hookup of power supply shall be taken more care around memory IO buffer area where data input and
output pins are located.
❼ An example of power mesh implementation is shown below in Figure 2.56. M(n+1) power line width must be
larger than 0.038um and the pitch is not allowed larger than 2.5um. The fashion of power hookup illustrated in
figure below ensures the accuracy of timing and power modeling.
❼ To prevent potential VIAya DRC violation in chip level. Please make sure APR tool honor VIA spacing rule in
PG routing.
Note1 : Mn = Top metal
Note2 : VDDM = additional power domain when dual rail feature is enabled
97 of 132
2.1.18 Routing Blockage Guideline
❼ M1 and M2 obstruction layers allow zero space to enable maximum pin access tracks on vertical M1 signal pins.
❼ Although M0,M1,M2 and M3 obstruction layers are defined in LEF and M1/M2 allow zero space, additional
routing blockages are still required to prevent DRC violation between APR and internal drawings. The minimum
width of routing blockage from IP boundary is 0.38um around macro for M0 and M3. The M2 routing blockage
is required except signal pin side for M2 pin access, and the minimum width is 0.38um. The M1 routing blockage
is also required around macro, and the minimum width is 0.26um.
❼ The width of M3 power and ground pins are 40nm, 60nm and 180nm. The width of M3 obstruction(OBS) may
have 20nm, 22nm and 24nm. Though OBS geometry is exactly the same as internal M3 drawing, current place
and route tools may have limitation to identify M3 OBS width for minimum required space between M3 routes
and OBS. To prevent potential DRC violation between OBS and chip level routes, please follow M3 routing
guidance below.
– Create route-guide layer to cover the whole macro completely and exactly to prevent router from routing
through macro.
Example: icc shell>create route guide -coordinate [get attr ✩RAM bbox] -no signal layers M3 -name RAM
M3 RG ✩num
❼ The minimum space between memory and Std. cell is 0.912um in horizontal direction and 0.912um in vertical
direction.
❼ Space guideline is subject to be updated due to revision for SRAM, dummy utility and Std. cell library.
98 of 132
Memory Space Guideline S/D Direction (um) ENDCAP Direction (um)
Same SRAM Macro >=0.912 >=0.912
Different SRAM macros >=0.912 >=0.912
Memory to Std. cell >=0.912 >=0.912
Note : this spacing value is base on v0.9 DRM.
99 of 132
2.2 Reference Document
2.2.1 Release Note
The major contents include revision history, design documents/version (DRM/DRC, LVS, RC tech file, spice model,
etc.), PVT conditions, special note and tapeout layer information.
Terms Description
type Compiler type
word Word depth
io Word width (Bit number)
mux Column mux
seg Segment type (bit-line partition)
drawing dimension area (um2 ) Macro size in GDS layout
access time (ns) Access time (CLK to output Q)
cycle time (ns) Cycle time
adr setup (ns) Address setup time
adr hold (ns) Address hold time
data setup (ns) Data setup time
data hold (ns) Data hold time
readc (uA/MHz) Read current, excludes pin power
writec (uA/MHz) Write current, excludes pin power
leakage (uA) Static power
leakage dslp (uA) Static power in deep-sleep mode
leakage sd (uA) Static power in shut-down mode
total kbits (word * io) / 1024
100 of 132
Chapter 3
The compiler tar file (example: tsn7 1prf 20151201 c190115 120b.tar.gz) contains below files after further decompress.
– The SRAM compiler database which is utilized to generate the macro design kits with MC2 software engine
❼ tsn7 1prf 120b.exe
– The raw file of antenna parameters for Antenna LEF kit generation
❼ UTIL/PWL
– Post processing for Datasheet to allow users determine the timing value with specified slew rate and loading
❼ MC2 2015.12.01.g.tar.gz
– The compiler software engine that generates all the macro design kits by extracting the information from
the database *.mco file
❼ mc2 install.pl
– The script installs MC2 by decompressing MC2 2015.12.01.g.tar.gz and setting related path. It is also used
to start up compiler license
❼ install.sh
– Called by ”mc2 install.pl” script to decompress MC2 2015.12.01.g.tar.gz for MC2 installation
❼ install.txt
– The user-defined file used by ”mc2 install.pl” script to specify path for MC2 installation, license file and
*.mco file. These path are used for license startup and compiler execution
102 of 132
3.2 Output file
Below is the illustration of file directory structure of design kits for SRAM macro generated from compiler. The
LOG folder contains a log file from the macro compilation. The other folders contain the design kits that are further
described in next section.
103 of 132
3.3 Design kit and associated tools
Design kits generated by compilers are described in Table 3.1
104 of 132
Chapter 4
Application Note
1. For fast functional simulation, we recommend to use the built-in directive TSMC CM UNIT DELAY
2. In a non-fully decoded array, a write operation to a non-existed address location does not change the memory
array contents whereas the output value remains the same as previous cycle.
3. In a non-fully decoded array, a read operation to a non-existed address location does not change the memory
array contents but the output of the current cycle becomes unknown.
4. The unknown clock will corrupt the memory data when CEB or CEBM (selected by BIST) is not high and
WEB or WEBM (selected by BIST) is not high. Corruption is limited to the written location only, but if the
address is unknown, all memory is corrupted.
5. When BIST is unknown, and the non-BIST control signal is equal to BIST signal, for example CEB and
CEBM WEB and WEBM, and so on, this condition will not be treated as hazard condition.
6. Assertion in SystemVerilog format is enclosed by directive TSMC ASSERTION ADOPT, and the
corresponding code in Verilog format is also provided.
7. Though toggling TSEL pins in scan shift, scan capture, and debug shift modes is allowed, Verilogs still display
informative messages.
4.1.2 Deliverables
Model VERILOG
Behavioral model VERILOG/*.v
4.1.3.1 Directives
1. TSMC PWR AWARE
2. TSMC NO HAZARD CHECK
4.1.3.2 Parameters
1. SRAM DELAY
2. INITIAL MEM DELAY
3. TRWCC(2PRF only)
4. TWRCC(2PRF only)
5. TSDWK2CLK
6. TDSLPWK2CLK
7. cdeFileInit
4.1.3.3 Tasks
1. injectSA
2. preloadData
3. writeMemory
4. readMemory
5. printMemory
6. printMemoryFromTo
7. printRMemory
8. xMemoryAll/zeroMemoryAll/oneMemoryAll/randomMemoryAll
9. xMemoryQ/zeroMemoryQ/oneMemoryQ/randomMemoryQ
107 of 132
Figure 4.1: ASIC design flow
108 of 132
4.1.6 Detail of Directive, Parameter and Task
1. Directive
(a) TSMC PWR AWARE
❼ Description
i. Include power/ground pins behavior
ii. Disable (default)
– The states of power/ground pins are not taken into account
iii. Enable
– In addition to port declaration, power/ground pins would influence how sram behaves
(b) TSMC NO HAZARD CHECK
❼ Description
i. De-activate hazard condition checking
(c) TSMC CM UNIT DELAY
❼ Description
i. Speed up the simulation without timing check and delay
ii. All module path delays are replaced by variable <SRAM DELAY >, which is 1ps by default
iii. Used in fast functional simulation
iv. Disable (default)
– All timing checks and delays are included
v. Enable
– Disable all timing checks and SDF back annotation
(d) TSMC MEM DISABLE EMU REDUNDANCY
❼ Description
i. Disable all redundancy descriptions, except for port declaration
ii. Disable (default)
– Redundancy behavior is completely deployed
iii. Enable
– Redundancy ports are declared without any functionality description and resource allocation
(e) TSMC INITIALIZE MEM
❼ Description
i. Preload the memory to predefined values
ii. At time <INITIAL MEM DELAY>, 10ps by default, load <cdeFileInit> to the whole memory
iii. The format of <cdeFileInit> follows IEEE STANDARD FOR VERILOG, IEEE Std 1364
iv. The default file name of <cdeFileInit> is <module name> initial.cde
v. Disable (default)
– All memory contents are unknown initially
vi. Enable
– Preload the memory to predefined values
(f) TSMC INITIALIZE FAULT
❼ Description
i. Provide a mechanism to validate the internal redundancy logic
ii. At time <INITIAL FAULT DELAY> , 10ps by default, set the bitcell as faulty or not, based on
<cdeFileFault>
iii. When the flag is 1, the bits specified by the faulty table <cdeFileFault> in legal write operation
are flipped
iv. <cdeFileFault> follows IEEE STANDARD FOR VERILOG, IEEE Std 1364
v. The default file name of <cdeFileFault> is <module name> fault.cde
vi. Disable (default)
– No fault in memory
109 of 132
vii. Enable
– When the flag is 1, the bits specified by the faulty table <cdeFileFault> in legal write
operation are flipped
(g) TSMC INITIALIZE FORMAT BINARY
❼ Description
i. Set the radix of the initial memory file to binary
ii. Without the directive, the radix is hexadecimal by default
iii. Disable (default)
– Hexadecimal
iv. Enable
– Binary
(h) TSMC INITIALIZE MEM USING DEFAULT TASKS
❼ Description
i. Depending on whichever directive is defined (TSMC MEM LOAD (0/1/RANDOM), preset
memory to all 0/1/random
(i) TSMC MEM LOAD (0/1/RANDOM)
❼ Description
i. If TSMC INITIALIZE MEM is defined,preset memory to all 0/1/random at timing of INITIAL
MEM DELAY
ii. When entering shut-down mode, the memory contents will be reset to all 0/1/random
iii. When leaving sleep/deep-sleep/shut-down mode, outputs will be all 0/1/random
iv. Disable (default)
– The memory contents are all unknown initially
– The memory contents will be flushed as unknown when entering shut-down mode
– The outputs will be unknown when leaving sleep/deep-sleep/shut-down mode
v. Enable
– Initialize the memory contents to all 0/1/random
– When entering shut-down mode, the memory contents will be reset to all 0/1/random
– When leaving sleep/deep-sleep/shut-down mode, outputs will be all 0/1/random
(j) TSMC NO TESTPINS DEFAULT VALUE CHECK
❼ Description
i. All TSEL pins are required to connect to default values
ii. If any TSEL pin is not connected to the default value, memory contents and outputs are corrupted
iii. Disable (default)
– All TSEL pins must connect to default values in functional mode. If not, memory contents and
outputs are corrupted as unknown with warning messages, and simulation can continue to
proceed. All TSEL pins can be unknown in SWT mode.
iv. Enable
– No check on TSEL pins with default values, but toggling will be enforced. If any TSEL pins
toggles in functional read, write, scan shift, scan capture, and debug shift modes, warning
message will be displayed, and timing violations could cause memory contents corrupted.
Though TSEL pins are free to toggle anytime except for read and write modes, Verilog behaves
conservatively.
(k) TSMC ASSERTION ADOPT
❼ Description
i. Disable (default)
– use verilog to display assertion message
ii. Enable
– use systemverilog to display assertion message
(l) TSMC CM ACCESS/TSMC CM RETAIN
110 of 132
❼ If SDF is not back-annotated and TSMC CM UNIT DELAY is not defined, they are used for all
delays from input to output
❼ By default, TSMC CM ACCESS is 20ps and TSMC CM RETAIN is the same as 20ps
(m) TSMC CM SETUP/TSMC CM HOLD
❼ If SDF is not back-annotated and TSMC CM UNIT DELAY is not defined, they are used for all
timing constraints, including synchronous related to clock, and asynchronous to SD/DSLP
❼ By default, TSMC CM SETUP is 9ps and TSMC CM HOLD is the same as 9 ps
(n) TSMC CM PERIOD/TSMC CM WIDTH
❼ If SDF is not back-annotated and TSMC CM UNIT DELAY is not defined, they are used for all
timing constraints in clock pin
❼ By default, TSMC CM PERIOD is 1.2ns and TSMC CM WIDTH is 0.5ns
(o) TSMC CM CONTENTION(2PRF only)
❼ If SDF is not back-annotated and TSMC CM UNIT DELAY is not defined, this is for contention
check in multiple-port srams
❼ By default, TSMC CM CONTENTION is 9ps
(p) TSMC NO GENERATE CONSTRUCT(synthesizable model)
❼ Replace generate statements with non-behavioral constructs.
(q) TSMC STUCKAT FAULT
❼ Description
i. Enable the capability to inject stuck-at faults to memory
ii. Disable (default)
– No error injection tasks in the model
iii. Enable
– Provide the task <injectSA> to inject stuck-at faults
(r) TSMC CM UPF
❼ Description
i. Enable to include UPF package
(s) TSMC DISABLE CONTENTION BEHAVIORAL CHECK (2PRF only)
❼ Description
i. Disable contention check in behavioral level
(t) TSMC TRWCC (2PRF only)
❼ Description
i. The contention constraint between read and write
(u) TSMC TWRCC (2PRF only)
❼ Description
– The contention constraint between write and read
(v) TSMC DISABLE WAKEUP BEHAVIORAL CHECK
❼ Description
– Disable wakeup check in behavioral level
(w) TSMC TSDWK2CLK
❼ Description
– The wakeup constraint for wakeup from shut down
(x) TSMC TDSLPWK2CLK
❼ Description
– The wakeup constraint for wakeup from deep sleep
(y) TSMC DISABLE ISO TOGGLE CHECK
❼ Description
– Disable (default)
111 of 132
✯ Show error message that ISO is asserted; moreover, memory contents and scan flops will be
flushed.
– Enable
✯ Disable the error message that ISO is asserted; moreover, memory contents will NOT be
flushed. This could induce mismatches between circuit and Verilog.
2. Directive for Warning and Error Message
(a) TSMC NO XADDR WARNING
❼ Description
i. Disable (default)
– Pop up warning message when address is unknown in read cycle
ii. Enable
– No message when read address is unknown
(b) TSMC DISABLE WARNING MESSAGE
❼ Description
i. Suppress all runtime warning messages related to SRAM
(c) TSMC DISABLE INFO MESSAGE
❼ Description
i. Suppress all runtime information messages related to SRAM
(d) TSMC DISABLE CONTENTION MESSAGE(2PRF only)
❼ Description
i. Suppress all contention warnings/errors
(e) TSMC FULL CONTENTION WARNING(2PRF only)
❼ Description
i. Disable (default)
– Display error when all bits are written and read simultaneously
ii. Enable
– Display warning when all bits are written and read simultaneously
(f) TSMC PARTIAL CONTENTION WARNING(2PRF only)
❼ Description
i. Disable (default)
– Display error when some bits are written and read simultaneously
ii. Enable
– Display warning when some bits are written and read simultaneously
3. Parameter
(a) SRAM DELAY
❼ The delay value for simulation in TSMC CM UNIT DELAY mode
(b) TRWCC(2PRF only)
❼ The contention constraint between read and write
(c) TWRCC(2PRF only)
❼ The contention constraint between write and read
(d) TSDWK2CLK
❼ The wakeup constraint for wakeup from shut down
(e) TDSLPWK2CLK
❼ The wakeup constraint for wakeup from deep sleep
(f) cdeFileFault
❼ The input filename for TSMC INITIALIZE FAULT
❼ default is <module name> fault.cde
112 of 132
(g) INITIAL MEM DELAY
❼ The absolute simulation time to initialize memory content
❼ default is 0.01 ns
(h) INITIAL FAULT DELAY
❼ The absolute simulation time to initialize memory fault
❼ default is 0.01 ns
4. Task
(a) preloadData
❼ Preload data from text file to memory
❼ Input argument
– Filename (max 256 characters)
(b) writeMemory
❼ Directly write to memory
❼ Input arguments
– Write address
– Data to be written
– redenio to flag normal or redundant area
– fadio if redundancy is enable
(c) readMemory
❼ Directly read out memory content
❼ Input argument
– Read address
(d) printMemory
❼ Print out memory content
❼ No input argument
(e) printMemoryFromTo
❼ Print out memory content in range
❼ Input argument
– start and end address
(f) printRMemory
❼ Print out memory content of redundancy array only
❼ No input argument
(g) xMemoryAll/zeroMemoryAll/oneMemoryAll/randomMemoryAll
❼ Set memory contents to x/zero/one/random for both normal and redundancy arrays
❼ No input argument
(h) xMemoryQ/zeroMemoryQ/oneMemoryQ/randomMemoryQ
❼ Set Q to x/zero/one/random
❼ No input argument
(i) injectSA
❼ To inject a stuck-at error, please invoke the injectSA task with correct hierarchical names
❼ Input arguments
– The address location where the fault is to be injected
– Specific bit in word
– Fault polarity of stuck-at 0 or 1
❼ In order to avoid race condition, do not invoke this task at simulation time #0.
113 of 132
4.2 TSMC SRAM DFT Application Notes
4.2.1 Introduction
The general purpose of TSMC SRAM DFT feature is to enable better test coverage of SoC logic. It describes the
settings on SDC files and command to connect SoC scan chains with TSMC SRAM internal scan chains for Synopsys
tools (DFT Compiler, TetraMax, and Star Memory System). In the later section, more information is provided for
TSMC SRAM ATPG model and SoC DFT implementation SMS guidelines for generating and applying test patterns.
114 of 132
4.2.3 ATPG and Synchronous Write Through (SWT)
4.2.3.1 General Description and Objectives
The purpose of memory ATPG model is to facilitate test pattern generation for the memory surrounding logic to
improve test coverage of a design. In general, the memory internal faults are tested by other means, such as memory
BIST. Moreover, due to the limited Verilog syntax supported by ATPG tools, only the partial functionalities are
described in the ATPG model.
TSMC SRAM ATPG model supports four modes of operations, Normal,Scan Shift,Scan Capture and Debug Shift
modes. The operation mode is controlled by the SE and DFTBYP input pins as described in Table 4.2 and Table 4.3.
Asserting the asynchronous DFTBYP (force High) puts the memory in DFT scan mode. While in DFT scan mode
the asynchronous SE signal controls the scan chain shift and capture operations. Additional shifting function is also
offered as Debug Shift mode to allow user assert SE only, however Debug Shift mode is only supported when DFTBYP
is de-asserted (force Low).
Table 4.2: SRAM ATPG operation modes for all compilers except 2PRF and ROM
Table 4.3: SRAM ATPG operation modes for 2PRF and ROM
115 of 132
Normal Operating Mode When SE and DFTBYP are disabled (de-asserted), normal mode of operation, memory
read and write operations are allowed. In this mode the memory data, address and control signals are involved in the
memory operations as shown in red lines in Figure 4.3.
The ATPG model utilizes these signals to propagate faults through the memory(when sequential atpg mode is used).
Figure 4.3: SRAM normal mode of operation except 2PRF and ROM
116 of 132
Capture/Shift Mode Asserting DFTBYP pin will put the memory in Shift (SE = 1) or Capture (SE = 0) mode,
and the memory core will not be involved in the test. In Shift mode, the SRAM internal scan flip-flops are used to
shift out the test result for analysis or to shift in the test patterns for testing the surrounding logic driven by the
SRAM data output (Q pins). In Capture mode, internal scan flip-flops will capture the XOR result of related inputs.
The memory outputs (Q) will also be the propagated result of corresponding XOR result except 2PRF and ROM.
The data paths of Shift and Capture modes are shown in Figure 4.4 and Figure 4.5 respectively for non 2PRF and
ROM memories.
For 2PRF and ROM DFT block diagram please refer to Figure 2.32 and Figure 2.33.
Figure 4.4: SRAM shift mode of operation except 2PRF and ROM
117 of 132
Figure 4.5: SRAM capture mode of operation except 2PRF and ROM
118 of 132
4.2.4 Using ATPG model
This section provides guidelines on how the SRAM ATPG model can be used to create high test coverage patterns.
It also defines the required circuit constraints in different modes of operation to maximize the test coverage.
❼ Normal mode
❼ Capture/Shift mode
❼ ATPG model checks the values of the pins to ensure proper setting of power-mode pins and repair-related pins
to de-asserted level when generating and applying test patterns. It is recommended testing power-mode pins
using memory BIST since the outputs may be unknown during wake-up or shut-down.
Note : Different compilers could have different lists of power-mode pins
119 of 132
4.2.4.2 Implementation Guidelines
Scan Chain Design/Insertion In general the inputs of TSMC SRAM can be divided into SE, DFTBYP, power-
mode pins, repair-related pins, test pins and other pins as shown in Figure 4.6. The constraints for SE, DFTBYP,
power-mode pins, repair-related pins, and test pins are listed below
Note :
4.2.4.3 Recommendations on TMAX options to provide high fault coverage during fault propagation
through the memories
To achieve high fault coverage of the shadow logic it is recommended to run the ATPG tool in default mode first
followed by another ATPG run in fast sequential mode. For the second run it is recommended to set the ATPG tool
120 of 132
capture phase to 4 cycles.
For example, for the Synopsys TetraMax ATPG tool the recommended steps are
In addition the following atpg setting might be useful for the fault simulation part of TetraMax.
set drc -load nonscan cells -nodslave remodel -noreclassify invalid dslave
set simulation -shift cycles 6
Please note DON’T use ”set drc -noshadows” option in case of any coverage loss.
121 of 132
Chapter 5
The available files after decompressing the above package are described in detail in Chapter 3.
122 of 132
5.3.1 Evaluation License (Front-End Kits & LEF Only)
❼ The license feature includes MC2-CLV, MC2-Main and the corresponding memory library features.
❼ There is a six-month evaluation period. Only front-end kits and LEF can be generated.
❼ The new Cloud Compiler feature is available on Tsmc Online since 2014. While using Cloud Compiler, the user
can generate the front-end kit without compiler installation and license startup. All the user need is to ask Tsmc
FTS engineer to grant the kits and user can start using the compiler GUI for kit generation right away. Current
cloud compiler supports front-end kits only (as in June 2015) but will expand to full kits in the future.
❼ TSMC provides one year valid period. All design kits can be generated. MC2-CPV features the GDSII and
SPICE netlist generation.
123 of 132
5.4 MC2 Engine and License Installation
5.4.1 Prepare ”install.txt” File
The following illustrates an example of ”install.txt” file.
❼ ✩Install WD/memCompiler/ =>the path where users choose to install the compiler
❼ ✩Install WD/memCompiler/compiler mco =>the path where compiler tsn10tll {sram type}.mco files are located
❼ Invoke license file only (in case the license server is down)
% mc2 install.pl -file install.txt -license
❼ -file <installfile >: give the path for compiler installation (default is ”install.txt”)
124 of 132
5.4.3 Compiler and License Installation Steps
The interactive prompt & detail of execution are demonstrated below :
% mc2 install.pl -file install.txt -all
❼ The details of license installation will be shown on the screen and recorded in ”license.log” file
❼ A source file ”cshrc.mc2” will be generated under the path ✩Install WD/memCompiler by using install.txt file.
Users MUST source this file before running the memory compiler
❼ Use the following command to re-start up the license in case the license is down
% mc2 install.pl -file install.txt -license
125 of 132
5.5 Memory Macro Generation
TSMC compilers support Batch mode for sram macro generation. Users can generate more than one instance at a
time by running in Batch mode.
Before running the compilers, users must source ”cshrc.mc2” file and make sure *.mco files are put under the path
✩Install WD/memCompiler/compiler mco .
Example :
Prepare config.txt file with tsmc naming convention as default
❼ config.txt
❼ The above configuration is just an example. Please refer to chapter 2.1.3 for correct configuration setting.
❼ Default input file is config.txt, users can input user-define naming (ex: config macro.txt) then execute the fol-
lowing command.
% tsn7 1prf <ver>.exe -file config macro.txt
126 of 132
❼ In addition to following compiling option commands for kit selection, Table 1.4 shows other option commands
for feature selection.
-DATASHEET : To generate DATASHEET kit only
-VERILOG : To generate VERILOG kit only
-NLDM : To generate NLDM kit only
-LEF : To generate LEF kit only
-SPICE : To generate SPICE kit only
-GDSII : To generate GDS kit only
-DFT : To generate DFT kit only
-CCS : To generate CCS kit only
-VOLTUS : To generate VOLTUS kit only
-SIM2IPROF : To generate SIM2IPROF kit only
-CTL : To generate CTL kit
-CTL SOURCE :To generate CTL file in DFT with auto source lc shell
-MasisWrapper : To specify the TieLevel to Wrapper for the pins with ”Tag = None” in Masis kit (default is
TestBench)
-MasisMemory : To specify the TieLevel to Memory for the pins with ”Tag = None” in Masis kit (default is
TestBench)
-datasheet merged : To produce only merged datasheet (* mergedpvt.ds)
-datasheet separate : To produce only individual datasheet
127 of 132
User defined configuration file example :
❼ config macro.txt
128 of 132
❼ Usage
– tsn7 rom 120b.exe -file <config file without Rom code>-GenRomCode
✯ Example :tsn7 rom 120b.exe -file config.txt -GenROMCode
✯ config.txt file content: 16384x64m16
– tsn7 rom 120b.exe -file <config file >
✯ Example :tsn7 rom 120b.exe -file config.txt
✯ config.txt file content: 16384x64m16 16384x64m16.rcf
✯ 16384x64m16.rcf : Intel Hex format (Address+Data)
✯ Verilog example :
129 of 132
5.5.3 ROM code verification and format transformation
1. chk rom code n7.pl -intel vlg <*.rom.v> <Intel hex rom code file>
2. chk rom code n7.pl <*.spi> <Intel hex rom code file>
130 of 132
Chapter 6
References
6.1 Abbreviation
Abbreviation Description
BIST/MBIST Build In Self Test/ Memory BIST
Cu ELK Copper Extreme Low-K (dielectric)
DRM/DRC Design Rule Manual/Design Rule Check
EM Electron Migration
GUI Graphic User Interface
HKMG High-K Metal gate
IO Input Output
IP Intellectual Property
LVS Layout Versus Schematic
MC2 Memory Compiler 2 (compiler tool vendor)
MUX Multiplexor
OS Operating System
PVT Process, Voltage, Temperature
RC Resistance and Capacitance
SRAM Static Random Access Memory
ROM Read Only Memory
SOC System On Chip
SDC Synopsys Design Constraints
STA Static Timing Analysis
8. csh>uname -a
9. How to get correct hostids,
In SunOS
csh>hostid
In Linux
csh>/sbin/ifconfig eth0
and remove colons from HWaddr 00:06:5B:1C:7B:B0 ->00065B1C7BB0
Commands 6 to 9 help you find the key information which needs to match the license file and installation environment.
If license still fails to check out after these trial, send us the output on the terminal for the above commands (1 to 9),
the file ”interrad.log” and the license file so that we can understand what the issue is and solve it in a timely manner.
❼ The license server fails to start the compiler due to multiple installation with different software
132 of 132