Training Course of Design Compiler REF: CIC Training Manual Logic Synthesis with Design Compiler, July, 2006 TSMC 0.18um Process 1.8-Volt SAGE-X TM Stand Cell Library Databook, September, 2003 TPZ973G TSMC 0.18um Standard d I/O Library Databook, Version 240a, December 10, 2003 Artisan User Manual Speaker: T. W. Tseng Advanced Reliable Systems (ARES) Lab. 1
Outline Basic Concept of the Synthesis Synthesis Using Design Compiler Simulation-Based Power Estimation Using PrimePower Artisan Memory Compiler LAB Advanced Reliable Systems (ARES) Lab. 2
Basic Concept of the Synthesis Advanced Reliable Systems (ARES) Lab. 3
Cell-Based Design Flow Spec. System Level MATLAB/ C/ C++/ System C/ ADS/ Covergen (MaxSim) Memory Generator RTL Level Verilog/ VHDL NC-Verilog/ ModelSim Debussy (Verdi)/ VCS Syntest Logic Synthesis Design for Test Gate Level Layout Level Post-Layout Verification Conformal/ Formality Design/ Power Compiler DFT Compiler/ TetraMAX NC-Verilog/ ModelSim Debussy (Verdi)/ VCS SOC Encounter/ Astro GDS II DRC/ LVS (Calibre) mpiler/ Fusion hysical Com gma Blast Ph Mag PVS: Calibre xrc/ NanoSim (Time/ Power Mill) Advanced Reliable Systems (ARES) Lab. Tape Out 4
What is Synthesis Synthesis = translation + optimization + mapping if(high_bits == 2 b10)begin residue = state_ table[i]; []; end else begin residue = 16 h0000; end HDL Source (RTL) Translate (HDL Compiler) No Timing Info. Generic Boolean (GTECT) Optimize + Mapping (HDL Compiler) Timing Info. The synthesis is constraint driven and technology independent!! Advanced Reliable Systems (ARES) Lab. Target Technology 5
Logic Synthesis Overview RTL Design Architecture Optimization HDL Compiler Design Ware Library DW Developer Logic Optimization Design Compiler Technology Library Lib Compiler Optimized Gate-Level Netlist Advanced Reliable Systems (ARES) Lab. 6
Compile RTL code or netlist Attributes & Constraints Compile Optimized Design (Gate-Level Netlist) Schematic Reports (Timing, Area, Power,,, etc) Technology Library Flatten Structure (Can be set by the GUI interface or user-defined Script File!!) Logic Level Optimization Gate Level Optimization Technology Library Map Advanced Reliable Systems (ARES) Lab. 7
Logic Level Optimization Operate with Boolean representation of a circuit Has a global effect on the overall area/speed characteristic of a design Strategy Structure Flatten (default OFF) If both are true, the design is first flattened and then structured Ex: f = acd + bcd +e f = xy + e g = ae + be g = xe h = cde h = ye x = a + b y = cd (Structure) f0 = at f1 = d + t f2 = t e t = b + c (Flatten) f0 = ab + ac f1 = b + c + d f2 = b c e Advanced Reliable Systems (ARES) Lab. 8
Gate Level Optimization - Mapping Combinational Mapping Mapping rearranges components, combining and re-combining logic into different components May use different algorithms such as cloning, resizing, or buffering Try to meet the design rule constraints and the timing/area goals Sequential Mapping Optimize the mapping to sequential cells technology library Analyze combinational logics surrounding a sequential cell to see if it can absorb the logic attribute with HDL Try to save speed and area by using a more complex sequential cells Advanced Reliable Systems (ARES) Lab. 9
Mapping Combinational Mapping Sequential Mapping a b a b c c a b a b c c A B D Q A B Q AND_FF a a c c x1 x1 x2 x4 Critical Path Critical Path A B D Q A B Q Loop_FF a (assume g loading high) f g a f g Advanced Reliable Systems (ARES) Lab. 10
Boundary Optimization Design Compiler can do some optimizations across boundaries 1. Removes logic driving unconnected output ports 2. Removes redundant inverters across boundaries 3. Propagates constants to reduce logic Advanced Reliable Systems (ARES) Lab. 11
Static Timing Analysis Main steps of STA Break the design into sets of timing paths Calculate the delay of each path Check all path delays to see if the given timing constraints are met Four types of paths Register - Register (Reg - Reg) Primary Input - Register (PI - Reg) Register - Primary Output (Reg - PO) Primary Input - Primary Output (PI - PO) Advanced Reliable Systems (ARES) Lab. 12
Static Timing Analysis (Cont ) - Setup Time To meet the setup time requirement: T require >= T arrival (T slack > 0 denotes Reg to Reg no timing violation ) T arrival = T clk1 + T DFF1(clk->Q) + T PATH T require = T clk2 - T DFF2(setup) T slack = T require -T arrival Clk_source DFF1 D Q PATH T arrival DFF2 D Q clk1 T DFF1 + T path T arrival data clk1 Q clk2 Q clk2 T setup T require T slack Advanced Reliable Systems (ARES) Lab. 13
Static Timing Analysis (Cont ) PI to Reg - Setup Time T arrival = T PI(delay) + T PATH T require = T clk1 - T DFF1(setup) T slack = T require -T arrival Clk_source T arrival PI PATH T arrival DFF1 D Q T PI(delay) clk1 T path data T setup clk1 Q T require T slack Advanced Reliable Systems (ARES) Lab. 14
Static Timing Analysis (Cont ) Reg to PO - Setup Time T arrival = T clk1 + T DFF1(clk->Q) + T PATH T require = T cycle - T PO(output delay) T slack = T require -T arrival Clk_source clk1 DFF1 D Q PATH PO T arrival T DFF1 + T path T arrival data T PO(output delay) clk1 Q T require T slack Advanced Reliable Systems (ARES) Lab. 15
Static Timing Analysis (Cont ) PI to PO - Setup Time T arrival = T PI(delay) + T PATH T require =T cycle - T PO(output delay) T slack = T require -T arrival Clk_source T PI + T path PI PATH PO T arrival data T PO(output delay) T arrival T require T slack Advanced Reliable Systems (ARES) Lab. 16
Static Timing Analysis (Cont ) To meet the hold time requirement: - Hold Time T require <= T arrival Reg to Reg T arrival = T clk1 + T DFF1(clk->Q) + T PATH T require = T clk2 +T DFF2(hold) T slack = T arrival -T require Clk_source clk1 TDFF1 + T path clk1 DFF1 D Q Q PATH T arrival clk2 DFF2 D Q Q clk2 data 0 T holdtslack data 1 T require T arrival Advanced Reliable Systems (ARES) Lab. 17
Static Timing Analysis (Cont ) PI to Reg - Hold Time T arrival = T PI(delay) + T PATH T require = T clk1 + T DFF(hold) T slack = T arrival -T require Reg to PO T arrival = T clk1 + T DFF(clk->Q) + T PATH T require = - T PO(output delay) T slack = T arrival - T require PI to PO T arrival = T PI(delay) + T PATH T require = - T PO(output delay) T slack = T arrival -T require Advanced Reliable Systems (ARES) Lab. 18
Synthesizable Verilog Verilog Basis parameter declarations wire, wand, wor declarations reg declarations input, output, inout continuous assignment module instructions gate instructions always blocks task statement function definitions for, while loop Synthesizable Verilog primitives cells and, or, not, nand, nor, xor, xnor bufif0, bufif1, notif0, notif1 Advanced Reliable Systems (ARES) Lab. 19
Synthesizable Verilog (Cont ) Operators Binary bit-wise ( ~, &,, ^, ~^ ) Unary reduction ( &, ~&,, ~, ^, ~^ ) Logical (!, &&, ) 2 s 2s complement arithmetic ( +, -, *, /, % ) Relational ( >, <, >=, <= ) Equality ( ==,!= ) Logic shift ( >>, << ) Conditional (?: ) Concatenation ( {}) Advanced Reliable Systems (ARES) Lab. 20
Notice Before Synthesis Your RTL design Functional verification by some high-level language Area Better Cycle Time Also, the code coverage of your test benches should be verified (i.e. VN) Coding style checking (i.e. n-lint) Good coding style will reduce most hazards while synthesis Better optimization process results in better circuit performance Easy debugging after synthesis Constraints The area and timing of your circuit are mainly determined by your circuit architecture and coding style There is always a trade-off between the circuit timing and area In fact, a super tight timing constraint may be worked while synthesis, but failed in the Place & Route (P&R) procedure Advanced Reliable Systems (ARES) Lab. 21
Synthesis Using Design Compiler Advanced Reliable Systems (ARES) Lab. 22
<.synopsys_dc.setup> File link_library : the library used for interpreting input description Any cells instantiated in your HDL code Wire load or operating condition modules used during synthesis target_library : the ASIC technology which the design is mapped symbol_library library : used for schematic generation search_path : the path for unsolved reference library synthetic_path : designware library Advanced Reliable Systems (ARES) Lab. 23
Ex: <.synopsys_dc.setup> File (Cont ) MEMs libraries are also included in this file MEM Libraries (.db file) Note that the MEM DB files are converted from the LIB files which are generated from the Artisan!! (.synopsys_dc.setup File) Advanced Reliable Systems (ARES) Lab. 24
Settings for Using Memory Convert *.lib to *.db %> dc_shell t any memory LIB file dc_shell-t> read_lib t13spsram512x32_slow_syn.lib dc_shell-t> write_lib t13spsram512x32 -output \ t13spsram512x32_slow_syn.db user library name, which should be the same as the library name Modify <.synopsys_dc.setup> File: in the Artisan set link_library * slow.db t13spsram512x32_slow.db memory DB file dw_foundation.sldb add to the file set target_library slow.db t13spsram512x32_slow.dbslow db Before the synthesis, the memory HDL model should be blocked in your netlist Advanced Reliable Systems (ARES) Lab. 25
Test Pins Reservation You can add the floating test pins to your design before synthesis se: scan enable si: scan input so: scan output scantest: control signal for memory shadow wrapper (i.e. memory is used) Ex: Normal IO Declaration Test IO Declaration The pins will be connected to scans after the scan chain insertion Advanced Reliable Systems (ARES) Lab. 26
CHIP-Level Netlist The CHIP-level netlist consists of your Core-level netlist and the PADs Ex: CORE.v CHIP.v CORNER1 CORNER2 (CHIP-Level Declaration) I_CLK CORE CLK CSO O_CSO CORNER3 CORNER4 (CORE-Level Design) (Input PAD) I_CLK PAD C CLK (Output PAD) CSO I PAD O_CSO Advanced Reliable Systems (ARES) Lab. (IO PAD Declaration) 27
How To Choose the IO PAD You can reference the Databook of the IO PAD in CIC Design Kit Generally, the PDIDGZ is used as the input PAD Trade-off when considering the output PAD High driving SSN Low driving Delay Note that the loading of the CIC tester is 40pf Ex: [REF: TPZ973G TSMC 0.18um Standard I/O Library Databook, Version 240a, December 10, 2003] Advanced Reliable Systems (ARES) Lab. 28
Synthesis Flow Design Import DFT Insertion Setting Design Environment Setting Clock Constraints Setting Design Rule Constraints Compile After DFT Assign Violation Avoidance Naming Rule Changing Compile the Design Save Design Advanced Reliable Systems (ARES) Lab. 29
Getting Started Prepare Files: *.v files *.db files (i.e. memory is used) Synthesis script file (i.e. described d later) linux %> source /APP/cshbank/synthesis.csh linux %> source /APP/verdi/CIC/debussy.cshrc linux %> dv db_mode& (DB Mode) or linux %> dv& (XG Mode) Logic Hierarchy View Tool Bar Log Window Advanced Reliable Systems (ARES) Lab. Command Line (GUI view of the Design Vision) i 30
Read File Design Import Read netlists or other design descriptions into Design Compiler File/Read Supported formats Verilog:.v VHDL:.vhd System Verilog:.sv EDIF PLA (Berkeley Espresso):.pla Synopsys internal formats: DB (binary):.db Enhance db file:.ddc Equation:.eqn State table:.st read_file format verilog file name { Command Line } Advanced Reliable Systems (ARES) Lab. 31
PAD Parameters Extraction Input PAD Input delay Input driving Output PAD Output t delay Output loading (delay, driving) CORE.v (delay, loading) (chip_const.tcl) CHIP.v { Command Line } current_design CHIP characterize [get_cells CORE] current_design CORE write_script format dctcl o o chip_const.tcl const.tcl Advanced Reliable Systems (ARES) Lab. 32
Uniquify Select the most top design of the hierarchy Hierarchy/Uniquify/Hierarchy (Design View) (Log Window) uniquify { Command Line } Advanced Reliable Systems (ARES) Lab. 33
Design Environment Setting Design Environment Setting Operating Environment Setting Input Driving Strength Setting Output Loading Setting Input/Output Delay Setting Wire Load Model Advanced Reliable Systems (ARES) Lab. 34
Setting Operating Condition Attributes/Operating Environment/Operating Conditions Setup/Hold time is evaluated { Command Line } set_operating_conditions max slow max_library slow min fast \ -min_library fast Advanced Reliable Systems (ARES) Lab. 35
Setting Drive Strength/Input Delay for PADs Assume that we use the input PAD PDIDGZ my design Input PAD b D FF Q PAD C (PDIDGZ) { Command Line } set_drive [expr 0.288001] [all_inputs] set_ input _ delay y[ [expr 0.34] ][all_ inputs] Advanced Reliable Systems (ARES) Lab. 36
Setting Load/Output Delay for PADs Assume that we use the output PAD PDO24CDG my design clk D FF Q d Output PAD I PAD OEN (PDO24CDG) { Command Line } set_load [expr 0.06132] [all_outputs] set_output_delay _ [expr 2] [all_outputs] Advanced Reliable Systems (ARES) Lab. 37
Setting Wire Load Model Attributes/Operating Environment/Wire Load (Worst Case) Recommend { Command Line } set_wire_load_model name tsmc18_wl10 library slow set_wire_lode_mode top Advanced Reliable Systems (ARES) Lab. 38
Clock Constraints Setting Clock Constraints Period Waveform Uncertainty Skew Latency Source latency Network latency Transition Input transition Clock transition Combination Circuit Maximum Delay Constraints Advanced Reliable Systems (ARES) Lab. 39
Sequential Circuit Specify Clock Select the clk pin on the symbol Attributes/Specify Clock set_fix_hold: respect the hold time requirement of all clocked flip-flops set_ dont_ touch_ network: do not re-buffer the clock network { Command Line } creat_clock period 10 [get_ports clk] set_dont_touch_network [get_clocks clk] set_fix_hold [get_clocks clk] Advanced Reliable Systems (ARES) Lab. 40
Setting Clock Skew Ex: Different clock arrival time clk FF FF FF FF experience Small circuit: 0.1 ns Large circuit: 0.3 ns (Timing i Report) { Command Line } set_clock_uncertainty 0.1 [get_clocks clk] Advanced Reliable Systems (ARES) Lab. 41
Setting Clock Latency Source latency is the propagation time from the actual clock origin to the clock definition point in the design This setting can be avoid if the design is without the clock generator Ex: Your Design Origin of Clock experience Small circuit: 1 ns Large circuit: 3 ns 3ns Source Latency set_clock_latency latency 1 [get_clocks clk] { Command Line } Advanced Reliable Systems (ARES) Lab. 42
Setting Ideal Clock Since we usually let the clock tree synthesis (CTS) procedure performed in the P&R (i.e. set_dont_touch_network), the clock source driving capability is poor Thus, we can set the clock tree as an ideal network without driving issues Avoid the hazard in the timing evaluation set_ideal_network [get_clocks clk] { Command Line } Advanced Reliable Systems (ARES) Lab. 43
Setting Clock Transition create_clock set_clock_transition CLK experience < 0.5ns CICtester:05ns 0.5 { Command Line } set_ input_transition sto max a 0.5 [get_clocks sc clk] Advanced Reliable Systems (ARES) Lab. 44
Combination Circuit Maximum Delay Constraints For combinational circuits primarily (i.e. design with no clock) Select the start & end points of the timing path Attributes/Optimization Constraints/Timing Constraints Ex: Maximum Delay Constraint (5ns = 200 MHz) Minimum Delay Constraint Advanced Reliable Systems (ARES) Lab. 45
Design Rule Constraints Setting Design Rule Constraints Area Constraint Fanout Constraint Advanced Reliable Systems (ARES) Lab. 46
Setting Area/Fanout Constraint Attributes/Optimization Constraints/Design Constraints If you only concern the circuit area, but don t care about the timing You can set the max area constraints to 0 { Command Line } set_max_area 0 set_max_fanout 50 [get_designs CORE] Advanced Reliable Systems (ARES) Lab. 47
Compile the Design Compile the Design Design/Compile Design { Command Line } compile map_effort high boundary_optimization Advanced Reliable Systems (ARES) Lab. 48
Example for DFT Insertion DFT Insertion { Command Line } ####DB mode#### set_dft_configuration -autofix DB set_dft_configuration -shadow_wrapperwrapper Mode set_scan_configuration -style multiplexed_flip_flop set_scan_configuration -clock_mixing no_mix set_scan_configuration -methodology full_scan set_scan_signal scan signal test_scan_in scan -port si set_scan_signal test_scan_out -port so set_scan_signal test_scan_enable -port se set_dft_signal test_mode -port scantest set_test_hold test 0 rst set_test_hold 1 scantest set_test_hold 1 se create_test_clock -period 100 -waveform [list 40 60] [find port "clk"] set_port_configuration -cell RA1SHD256x8 -clock clk set_port_configuration -cell RA1SHD256x8 -port "Q" -tristate -read {"OEN" 0} -clock clk set_port_configuration -cell RA1SHD256x8 -port "A" -write {"WEN" 0} -clock clk set_port_configuration -cell RA1SHD256x8 -port "D" -write {"WEN" 0} -clock clk set_ wrapper _element e e RA1SHD256x8 -type shadow set_wrapper_element FJU_MEM -type shadow set_fix_multiple_port_nets -all -constants -buffer_constants [get_designs *] insert_dft Advanced Reliable Systems (ARES) Lab. 49
Example for DFT Insertion (Cont ) { Command Line } ####XG mode#### create_port dir in scan_in XG create_port dir out scan_out Mode create_port dir in scan_en compile scan boundary_optimization set_scan_configuration scan configuration internal_clocks single chain_count count 1 clock_mixing no_mix set_dft_signal view exist type TestClock timing {45 55} port {clk} set_dft_signal view exist type Reset active 1 port reset set_dft_signal view spec type ScanEnable port scan_en active 1 set_dft_signal view spec type ScanDataIn port scan_in set_dft_signal view spec type ScanDataOut port scan_out set_scan_path chain1 view spec scan_data_in scan_in scan_data_out scan_out create_test_protocol dft_drc preview_dft show scan_clocks set_false_path from [get_ports scan_en] insert_dft Advanced Reliable Systems (ARES) Lab. 50
Compile After DFT Compile After DFT compile -scan check_scan report_test -scan_path estimate_test_coverage { Command Line } The fault coverage will be shown as below: Advanced Reliable Systems (ARES) Lab. 51
Assign Problem Assign Violation Avoidance The syntax of assign may cause problems in the LVS assign \A[19] = A[19]; assign \A[18] = A[18]; assign \A[17] = A[17]; assign \A[16] = A[16]; assign \A[15] = A[15]; assign ABSVAL[19] = \A[19]; assign ABSVAL[18] = \A[18]; assign ABSVAL[17] = \A[17]; assign ABSVAL[16] = \A[16]; assign ABSVAL[15] = \A[15]; BUFX1 X37X(.I(A[19]),.Z(ABSVAL[19]) ); BUFX1 X38X(.I(A[18]),.Z(ABSVAL[18]) ); BUFX1 X39X(.I(A[17]),.Z(ABSVAL[17]) ); BUFX1 X40X(.I(A[16]),.Z(ABSVAL[16]) ); BUFX1 X41X(.I(A[15]),.Z(ABSVAL[15]) ); { Command Line } set_fix_multiple_port_nets all constants buffer_constants [get_designs *] Advanced Reliable Systems (ARES) Lab. 52
Floating Port Removing Due to some ports in the standard cells are not used in your design { Command Line } remove_unconnected_ports blast_buses [get_cells hierarchical *] Advanced Reliable Systems (ARES) Lab. 53
Chang Naming Rule Script Naming Rule Changing Purpose: Let the naming-rule definitions in the gate-level netlist are the same as in the timing file (e.g. *.sdf file) Also, the wrong naming rules may cause problems in the LVS { Command Line } set bus_inference_style {%s[%d]} set bus_naming_style {%s[%d]} set hdlout_internal_busses true change_names -hierarchy -rule verilog define_name_rules name_rule -allowed "A-Z a-z 0-9 _" -max_length 255 -type cell define_name_rules name_rule -allowed "A-Z a-z 0-9 _[]" -max_length 255 -type net define_name_rules name name_rule -map {{"\\*cell\\*""cell"}} define_name_rules name_rule -case_insensitive change_names -hierarchy -rules name_rule Advanced Reliable Systems (ARES) Lab. 54
Save Design Save Design Five design files: *.spf: test protocol file for ATPG tools (i.e. TetraMax) *.sdc: timing constraint file for P&R *.vg: gate-level netlist for P&R *.sdf: timing file for Verilog simulation *.db: binary file (i.e. all the constraints and synthesis results are recorded) { Command Line } write_test_protocol -f stil -out "CHIP.spf" write_sdc CHIP.sdc write -format verilog -hierarchy -output "CHIP.vg" write_sdf -version 1.0 CHIP.sdf write -format db -hierarchy -output "CHIP.db" Advanced Reliable Systems (ARES) Lab. 55
Synthesis Report Report Design Hierarchy Report Area Design View Report Timing Critical Path Highlighting Timing Slack Histogram Advanced Reliable Systems (ARES) Lab. 56
Report Design Hierarchy Hierarchy report shows the component used in your each block & its hierarchy Design/Report Design Hierarchy Ex: Advanced Reliable Systems (ARES) Lab. 57
Report Area Ex: Design/Report Area (0.18um Cell-Library: 1 gate 10 um 2 ) (0.13um Cell-Library: 1 gate 5 um 2 ) (um 2 ) Advanced Reliable Systems (ARES) Lab. 58
Design View List/Design View Ex: All the block area are listed!! Advanced Reliable Systems (ARES) Lab. 59
Report Timing Timing/Report Timing Ex: setup time Critical Path max: setup time min: hold time Slack = Data Require Time Data Arrival Time Advanced Reliable Systems (ARES) Lab. 60
Critical Path Highlighting Ex: View/Highlight/Critical Path Advanced Reliable Systems (ARES) Lab. 61
Timing Slack Histogram Timing/Endpoint Slack Totally 190 paths are in the slack range between 0 to 1.78 Ex: Resolution Advanced Reliable Systems (ARES) Lab. 62
Edit Your Own Script File For convenient, you should edit your own synthesis script file. Whenever you want to synthesis a new design, you just only change some parameters in this file. Ex: Execute Script File Setup/Execute Script Or use source your_ script.dc in dc_ shell command line Advanced Reliable Systems (ARES) Lab. 63
Gate-Level Simulation Include the Verilog model of standard cell and gate-level netlist to your test bench Standard Cell Library Gate- Level Netlist Add the following Synopsys directives to the test bench *.sdf File Instance Name Delay Advanced Reliable Systems (ARES) Lab. 64
Simulation-Based Power Estimation Using PrimePower Advanced Reliable Systems (ARES) Lab. 65
<.synopsys_pp.setup> File Modify the <.synopsys_dc.setup> file, and then save as <.synopsys_pp.setup pp setup > Add the path where you put this file Delete the directives (.synopsys_pp.setup) Advanced Reliable Systems (ARES) Lab. 66
VCD File Generation Add the following Synopsys directives to the test bench Then, run the Verilog simulation Advanced Reliable Systems (ARES) Lab. 67
Instructions linux %> source /APP/cshbank/primepower.csh linux %> pp_ shell pp_shell> read_verilog CORE.vg pp_shell> current_design CORE TOP Module Name pp_shell> read_vcd strip_path test/core CORE.vcd Module Name of Test Bench Instance Name pp_shell> set_waveform_options interval 1 format fsdb file pwr1 pp_shell> calculate_power waveform statistics pp_shell> report_power file pwr_rpt hier 2 Power Report File Name Resolution Waveform Waveform Format File Name Estimation Hierarchy Advanced Reliable Systems (ARES) Lab. 68
Power Report Ex: Advanced Reliable Systems (ARES) Lab. 69
Power Waveforms Ex: For example, the figure shows the power waveforms of the BIST execution. We can observe that the power varies drastically while the memory is accessed Advanced Reliable Systems (ARES) Lab. 70
Artisan Memory Compiler Advanced Reliable Systems (ARES) Lab. 71
Overview Artisan SRAM Types: Generator Product Name Executable High-Speed/Density Single-Port SRAM SRAM-SP ra1sh High-Speed/Density Dual-Port SRAM SRAM-DP ra2sh High-Density it Single-Port SRAM SRAM-SP-HDSP ra1shd 1hd High-Density Dual-Port SRAM SRAM-DP-HD ra2shd Low-Power Single-Port SRAM SRAM-SP-LP ra1shl [REF: Artisan User Manual] Only ra1shd and ra2sh are supported in school Generated files: Memory Spec. (i.e. used for layout-replacement procedure in CIC flow) Memory Data Sheet Simulation models: Verilog Model & VHDL Model Memory Libraries for P&R: Synopsys Model & VCLEF Footprint Timing Files: TLF Model & PrimeTime Model Advanced Reliable Systems (ARES) Lab. 72
Pin Descriptions for Single-Port SRAM CLK WEN[*] CEN OEN A[m-1:0] D[n-1:0] SRAM Q[n-1:0] Name Type Description CLK Input Clock Basic Pins WEN[*] Input Write enable, active low. *If word-write mask is enabled, this becomes a bus CEN Input Chip enable, active low OEN Input Tri-state output enable A[m-1:0] Input Address (A[0]=LSB) D[n-1:0] Input Data inputs (D[0]=LSB) Q[n-1:0] Output Data outputs (Q[0]=LSB) Advanced Reliable Systems (ARES) Lab. 73
Example for Word-Write Mask Word Width: 64 bits Word Partition Size: 32 bits Mask Width = WEN Width = 2 WEN[1:0] 11: No write 10: Write to LSB part 01: Write to MSB part 00: Write to the whole word CLK WEN[*] CEN OEN A[9:0] D[63:0] 64k RAM Q[63:0] 1. 2. D[63:0] D[63:0] WEN = 2 b11 word WEN = 2 b10 word 3. 4. D[63:0] D[63:0] WEN = 2 b01 word WEN = 2 b00 word Advanced Reliable Systems (ARES) Lab. 74
Waveforms for Single-Port SRAM Read Cycle t cyc t cyc t ckh t ckl t ckh t ckl CLK t cs t ch t cs t ch t cs t ch CEN WEN 1 t ws t wh t ws t wh A[ j ] t as t ah t as t ah ADD1 ADD2 t a t a Q[ i ] Q1 Q2 Advanced Reliable Systems (ARES) Lab. 75
Waveforms for Single-Port SRAM (Cont ) Write Cycle t cyc t cyc t ckh t ckl t ckh t ckl CLK t cs t ch t cs t ch t cs t ch CEN t t h t t WEN 1 t ws t wh t ws t wh t as t ah t as t ah A[ j ] ADD1 ADD2 t ds t dh t ds t dh D[ i ] Q[ i ] DATA1 t a Q1 DATA2 t a Q2 Advanced Reliable Systems (ARES) Lab. 76
Getting Started linux %> ssh -l user name cae18.ee.ncu.edu.tw Connect to Unix (1-port RAM) unix%> ~jfli/cell_lib/cbdk018_tsmc_artisan/cic/memory/ra1shd/bin/ra1shd (2-port RAM) unix%> ~jfli/cell_lib/cbdk018_tsmc_artisan/cic/memory/ra2sh/bin/ra2sh Memory Spec. Configuration Generated Files Selection Advanced Reliable Systems (ARES) Lab. (GUI view of the Artisan) 77
Memory Spec Configuration (Example 1) Instance Name mem_32k Ex: 32k RAM (no mask write) Number of Words 1024 Number of Bits 32 CLK Frequency <MHz> 100 WEN Ring Width <um> CEN 2 32k RAM Multiplexer l Width OEN A[9:0] 4 8 16 D[31:0] Drive Strength Word-Write Mask 4 on off Top Metal Layer m4 m5 m6 Power Type 256 Horizontal Ring Layer m1 m2 m3 m4 Vertical Ring Layer m2 m3 m4 32 bits 32 CLK Q[31:0] Advanced Reliable Systems (ARES) Lab. 78
Memory Spec Configuration (Example 2) Instance Name mem_64k Ex: 64k RAM (with mask write) Number of Words 2048 Number of Bits 32 CLK Frequency <MHz> 100 WEN[3:0] Ring Width <um> CEN Multiplexer Width 2 64k RAM OEN 4 8 16 A[9:0] Drive Strength D[31:0] Word-Write Mask on off Word Partition Size 8 8 Top Metal Layer m4 m5 m6 Power Type Horizontal Ring Layer 256 m1 m2 m3 m4 Vertical Ring Layer m2 m3 m4 32 CLK Q[31:0] 32 bits Advanced Reliable Systems (ARES) Lab. 79
File Generation (Method 1) Pop-up window PostScript Datasheet (.ps) Convert to PDF file: ps2pdf *.ps ASCII Datatable (.dat) Verilog Model (.v) VHDL Model (.vhd) Synopsys y Model (.lib) The default library name is USERLIB PrimeTime Model TLF Model VCLEF Footprint (.vclef) (File Selection) Advanced Reliable Systems (ARES) Lab. 80
File Generation (Method 2) From the menu Spec. Generation The memory spec. file will be used for the Layout Replacement procedure in the CIC server Advanced Reliable Systems (ARES) Lab. 81
LAB Advanced Reliable Systems (ARES) Lab. 82