16
VLSI Lab5 2012 1 Khoa Điện T- Viễn Thông, Trường ĐH KHTN, Tp HCM GII THIU VTOOL IC COMPILER I/ MỤC ĐÍCH - Gi i thiu và làm quen vi tool ICC ca Synopsys II/ LÝ THUYT 1/ Gii thiu quy trình layout Quý trình layout gm các c sau: Phân vùng (Partitioning) thiết kế Dng nn (Floorplanning) Sp xếp (Placement) Tng hp cây clock (Clock tree synthesis) Đi dây (Routing) Xác định RC (RC extraction) 1.1/ Phân vùng thiết kế Hình 1: Ví dvmột mô hình được phân vùng thiết kế Hai kiu thiết kế ASIC phbi ến: thiết kế san bng (flat) thiết kế phân cp (hierarchical). Thiết kế san bng thì không cn phân vùng thiết kế, mà ta ssan bng và sp xếp các cng sao cho phù hp vi các ràng buc hay tối ưu thiết kế. Cách này được áp dng vi các thi ết kế loi nh

[Lab5]IC Compiler

Embed Size (px)

Citation preview

Page 1: [Lab5]IC Compiler

VLSI Lab5 2012

1 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

GIỚI THIỆU VỀ TOOL IC COMPILER

I/ MỤC ĐÍCH

- Giới thiệu và làm quen với tool ICC của Synopsys

II/ LÝ THUYẾT

1/ Giới thiệu quy trình layout

Quý trình layout gồm các bước sau:

Phân vùng (Partitioning) thiết kế

Dựng nền (Floorplanning)

Sắp xếp (Placement)

Tổng hợp cây clock (Clock tree synthesis)

Đi dây (Routing)

Xác định RC (RC extraction)

1.1/ Phân vùng thiết kế

Hình 1: Ví dụ về một mô hình được phân vùng thiết kế

Hai kiểu thiết kế ASIC phổ biến: thiết kế san bằng (flat) và thiết kế phân cấp

(hierarchical).

Thiết kế san bằng thì không cần phân vùng thiết kế, mà ta sẽ san bằng và sắp xếp các

cổng sao cho phù hợp với các ràng buộc hay tối ưu thiết kế. Cách này được áp dụng với các thiết

kế loại nhỏ

Page 2: [Lab5]IC Compiler

VLSI Lab5 2012

2 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

Nếu chọn thiết kế phân cấp, ta tiến hành phân vùng thiết kế trong ASIC. Việc phân vùng

thiết kế này có thể được thực hiện ở bước logic gọi là phân vùng logic hoặc bước vật lý gọi là

phân vùng vật lý. Với kiểu thiết kế này, ta có thể gặp nhiều vấn đề về thời gian trễ và tốn nhiều

diện tích hơn thiết kế san bằng. Nhưng với cách này việc quản lý thiết kế dễ dàng hơn, nhờ thế

tránh được các lỗi có thể phát sinh do việc tập trung mật độ các dây ở một khu vực nào đó…

1.2/ Dựng nền (Floorplanning)

Bước dựng nền (Floorplanning) nhằm thực hiện tạo các mạng power và ground trong

chip, tạo các pad power và ground cho lõi (core) và I/O, tạo các vòng (Ring) power, ground bao

quanh core, nối các điểm power và ground cho các cell chuẩn. Ngoài ra, floorplanning còn xác

định vị trí các pad I/O, xác đinh vị trí và số lương pad power, xác định vị trí và kiểu phân phối

clock.

1.3/ Sắp xếp (Placement)

Sắp xếp (Placement) nhằm tổng hợp vật lý của thiết kế từ tập tin mức cổng (Netlist).

Bước này trong quá trình thiết kế vật lý đóng vai trò rất quan trọng vì nó sẽ quyết định nhiều yếu

tố của thiết kế như là tối ưu về thời gian, diện tích, hay công suất và khả năng đi dây…

Placement sẽ xác định kích thước cell, phân chia các lưới, chèn các buffer đệm hay nhân

đôi cổng nhằm tăng thêm độ trễ ở các đường. Mục đính là khắc phục các vấn đề về thời gian

thiết lập (Setup time), thời gian giữ (Hold time) hay tránh sự tắc nghẽn (congestion driven

placement) trong quá trình đi dây (Routing)

1.4/ Tổng hợp cây clock (Clock Tree Synthesis)

Clock Tree Synthesis (CTS) nhằm tối thiểu hóa độ lệch clock giữa clock nguồn và các

nhánh bằng cách chèn buffer vào nhằm đồng bộ các clock. Đồng thời lợi dụng sự lệch clock giữa

các tín hiệu cũng giúp cho việc sửa các lỗi về thời gian đơn giản hơn. Quá trình này phụ thuộc

nhiều vào công cụ mà ta sử dụng để tối ưu

Page 3: [Lab5]IC Compiler

VLSI Lab5 2012

3 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

Hình 2: Minh họa về chèn các buffer vào tín hiệu clock trong CTS

1.5/ Di dây (Routing)

Di dây (Routing) thực hiện nối các cổng sau khi ta đã sắp xếp trong Placement. Routing

là quá trình tạo sự liên kết vật lý dựa trên tính kết nối logic. Những chân tín hiệu thì được kết nối

bằng các liên kết kim loại. Các đường kết nối này sẽ được thực hiên sao cho đảm bảo các yêu

cầu về thời gian, độ lệch clock, độ trễ giữa các cổng, điện dung…

Do tính phức tạp của các thiết kế ASIC và số lượng liên kết rất lớn nên khi routing ta chia

thành ba giai đoạn: Routing riêng biệt (special routing), routing toàn bộ (global routing) và

routing chi tiết (detail routing).

Hình 3: Một thiết kế đã được routing

1.6/ Xác định RC (RC Extraction)

RC Extraction nhằm xác định các giá trị ký sinh RC được sinh ra trong thiết kế sau khi

được layout. Với các công nghệ ngày càng cao, các giá trị này sẽ ảnh hưởng khá lớn đến độ trễ

của các đường dữ liệu (path delay). Chính vì thế những đường mà trong quá trình ta kiểm tra ở

Page 4: [Lab5]IC Compiler

VLSI Lab5 2012

4 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

Pre-layout có thể là đúng nhưng sau khi qua layout sẽ sai. Do đó, trong bước Pre-layout có một

bước kiểm tra chức năng của thiết kế với ràng buộc về thời gian đưa ra nhưng thường đươc bỏ

qua, do kết quả của nó không có tín thuyết phục cao.

Các giá trị vật lý của layout sẽ quyết định rất lớn đến khả năng sống của thiết kế. Do đó

bước này cần tiến hành kỹ

2/ Giới thiệu về công cụ IC Compiler

Hình 4: Tổng quát về một quy trình IC Compiler

Page 5: [Lab5]IC Compiler

VLSI Lab5 2012

5 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

Tập tin mức cổng (Netlist): đuôi .v hoặc .ddc

Tập tin ràng buộc (Constraints): đuôi .sdc

Thư viện công nghệ (Library synopsys): đuôi .db, .tf …

TLUPlus là tập tin có định dạng bảng nhị phân lưu trữ các hệ số RC. Các mô hình

TLUPlus được tổng hợp bởi nhà sản xuất, nhờ nó ta có thể kiểm tra được các giá trị RC

chính xác bao gồm các hệ số chiều rộng, khoảng cách, mật độ và nhiệt độ theo các hệ số

điện trở. Các tập tin cần để thiết lập mô hình TLUPlus là :

Tập tin tham chiếu (.map) để có thể chỉ định tương ứng đến các lớp (Layer) và Via

trong tập tin công nghệ Milkyway (.tf)

File mô hình TLUPlus cực đại (maximum).

File mô hình TLUPlus cực tiểu (minimum).

3/ Các lệnh cơ bản trong IC Compiler

#Tao ra thu vien mw cua thiet ke

create_mw_lib -technology $Techfile \

-mw_reference_library $Ref_lib \

$my_mw_lib

-technology file_name: Xác định tập tin công nghệ (.tf)

-mw_reference_library file_names: Xác định thư viện tham chiếu Milkyway.

Dùng để tạo ra thư viện của thiết kế mình

library_name: Tên của thư viên thiết kế mà mình muốn tạo ra.

#Import cac tap tin thu vien TLUPlus trong layout

set_tlu_plus_files \

-max_tluplus $Tlupmax \

-min_tluplus $Tlupmin \

-tech2itf_map $Tech2itf

-max_tluplus file_name: Tập tin mô hình TLUPlus cực đại (maximum)

-min_tluplus file_name: Tập tin mô hình TLUPlus cực tiểu (minimum).

-tech2itf_map file_name: Tập tin công nghệ Milkyway (.tf)

#Import tap tin netlist

import_designs \

-format verilog \

-top $cell_name \

Page 6: [Lab5]IC Compiler

VLSI Lab5 2012

6 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

-cel $cell_name ${LinkNetlist}/${cell_name}_NL.v

#Neu import tap tin .v thi khong can tap tin .ddc

#import_designs -format ddc ${LinkNetlist}/${cell_name}_NL.ddc

#Import tap tin rang buoc cua thiet ke

read_sdc "${LinkNetlist}/${cell_name}.sdc"

Tập tin Netlist ở đây có thể là tập tin verilog (.v) hay tập tin định dạng cơ sở dự liệu của

Synopsys (.ddc) và tập tin quy định các ràng buộc (.sdc) đươc mô tả trong bước tổng hợp thiết kế

initialize_floorplan \

-core_utilization $Core_util \

-left_io2core $Core_space \

-bottom_io2core $Core_space \

-right_io2core $Core_space \

-top_io2core $Core_space

Lệnh initialize_floorplan để tiến hành khởi tạo Floorplan nhằm tạo nên khung của

thiết kế. Các thiết lập trong lệnh này là :

-core_utilization: Xác định hệ số sử dụng lõi của thiết kế. Giá trị này sẽ cho biết phạm

vi mà ta tiến hành sắp xếp các cell chuẩn là bao nhiêu của tổng diện tích thiết kế. Giá trị nằm

trong 0 đến 1. Thông thường ta nên sử dụng là 0.6 hay 0.7 vì nếu lõi chiếm quá cao thì sẽ không

có chỗ cho ta tiến hành đi dây (routing). Còn nếu quá nhỏ sẽ lãng phí không gian của thiết kế

Utilization = (Tổng diên tích các cell hay Macro) x 100% / ( Kích thước của thiết kế)

-left_io2core: Xác định khoảng cách từ lề bên trái của lõi với bên phải của cực hoặc pad

gần nhất

-bottom_io2core: Xác định khoảng cách từ lề bên dưới của lõi với bên phải của cực hoặc

pad gần nhất

-right_io2core: Xác định khoảng cách từ lề bên phải của lõi với bên phải của cực hoặc pad

gần nhất

-top_io2core: Xác định khoảng cách từ lề bên trên của lõi với bên phải của cực hoặc pad

gần nhất

Page 7: [Lab5]IC Compiler

VLSI Lab5 2012

7 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

derive_pg_connection \

-create_ports all\

-power_net VDD \

-power_pin VDD \

-ground_net VSS \

-ground_pin VSS \

-tie

Lệnh derive_pg_connection dùng để tạo các port kết nối nguồn (VDD) và đất (VSS) cho

thiết kế. Các thiết lập trong lệnh là:

-create_ports: Tạo port trên mức top của thiết kế.

-power_net: Xác định tên của lưới nguồn (Power net)

-power_pin: Xác định tên của chân nguồn (Power pin)

-ground_net: Xác định tên của lưới đất (Ground net)

-ground_pin: Xác định tên của chân đất (Ground pin)

-tie: kết nối các chân liên kết cao (tie-high) và liên kết thấp (tie-low). Các mạng power và

ground phải tồn tại trước khi kết nối các chân tie-high và tie-low

#Tao vong VDD

create_rectangular_rings \

-nets {VDD} \

-right_offset 2.0 \

-right_segment_layer M4 \

-right_segment_width 2.0 \

-left_offset 2.0 \

-left_segment_layer M4 \

-left_segment_width 2.0 \

-bottom_offset 2.0 \

-bottom_segment_layer M5 \

-bottom_segment_width 2.0 \

-top_offset 2.0 \

-top_segment_layer M5 \

-top_segment_width 2.0

#Tao vong VSS

create_rectangular_rings \

-net {VSS} \

Page 8: [Lab5]IC Compiler

VLSI Lab5 2012

8 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

-left_offset 0.5 \

-left_segment_layer M5 \

-left_segment_width 2.0 \

-right_offset 0.5 \

-right_segment_layer M5 \

-right_segment_width 2.0 \

-bottom_offset 0.5 \

-bottom_segment_layer M5 \

-bottom_segment_width 2.0 \

-top_offset 0.5 \

-top_segment_layer M5 \

-top_segment_width 2.0

Lệnh create_rectangular_rings thực hiện tạo các vòng. Với các thiết lập như sau:

-net: Loại đường ta tạo

-left_offset: khoảng lệch so với bên trái

-left_segment_layer: lớp mà ta tiến hành tạo

-left_segment_width: độ rộng của đường được tạo

#Tao cac strap VDD,VSS

create_power_straps \

-direction vertical \

-start_at 30 \

-num_placement_strap 8 \

-increment_x_or_y 20 \

-nets {VDD} \

-layer M6 \

-width 1.0 \

-do_not_route_over_macros

create_power_straps \

-direction vertical \

-start_at 40 \

-num_placement_strap 8 \

-increment_x_or_y 20 \

-nets {VSS} \

-layer M7 \

-width 1.0 \

-do_not_route_over_macros

Page 9: [Lab5]IC Compiler

VLSI Lab5 2012

9 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

Lệnh create_power_straps thực hiện tạo các lưới. Ở đây ta dùng lệnh này để tiến hành

tạo lưới nguồn và đất. Các thiết lập của lệnh này là :

-direction: Hướng mà ta tiến hành xây dựng, có hai hướng: vertical(Theo chiều ngang)

hoặc horizontal (Theo chiều dọc).

-start_at: Vị trí bắt đầu tiến hành xây dựng

-num_placement_strap: số đường mà ta muốn xây dựng

-increment_x_or_y: Khoảng cách giữa hai đường

-nets: Loại đường (net)

-layer: Lớp thực hiện

-width: Độ rộng của các đường

#Tien hanh Placement

place_opt

Tiến hành tối ưu Placement theo chế độ mặc định

#Tien hanh CTS

clock_opt -fix_hold_all_clocks -inter_clock_balance

Tương tự như quá trình Placement, Synopsys hỗ trợ ta các lệnh để thiết lập tổng hợp cây clock

(CTS) bằng lệnh clock_opt.

#Tien hanh Routing

set_fix_hold [all_clocks]

route_opt -incremental -only_hold_time

Đây là bước kế cuối trong quy trình thiết kế vật lý. Ở đây các cell chuẩn sẽ được nối lại với

nhau. Bước này sẽ phát sinh thêm các đặc tính vật lý của thiết kế. Trong IC Compiler, lệnh dùng

để thực hiện chức năng này là route_opt

#Them cac Core Filler Cells

insert_stdcell_filler \

-connect_to_power "VDD" -connect_to_ground "VSS"

Lệnh insert_stdcell_filler: Thêm các filler cells nhằm đảm bảo các đường powe và

ground liên tuc, cũng như đảm bảo tính liên tục của các n-well và p-well tại mỗi hàng của các

cell chuẩn. Các filler cells chứa trong thư viện cell chuẩn.

#Tien hanh phu kim loai o 9 lop

insert_metal_filler \

Page 10: [Lab5]IC Compiler

VLSI Lab5 2012

10 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

-purge \

-out self \

-from_metal 1 -to_metal 9 \

-timing_driven -routing_space 2

insert_metal_filler

-out self -tie_to_net ground \

-from_metal 1 -to_metal 9 -routing_space 2

Lệnh insert_metal_filler: Tiến hành phủ kim loại ở các lớp.

-purge: Làm sáng tỏ tất cả vị trí kim loại phủ trong các cell đươc thấy

-out self: Xác định vị trí để tạo ngõ ra.-from_metal 1 -to_metal 9: tạo ngõ ra từ

lớp 1 đến lớp 9

-timing_driven: Phủ kim loại được định hướng theo thới gian

-routing_space: Khoảng cách giửa các dây và kim loại phủ

-tie_to_net: Xác định kim loại phủ được kết nối với net hay không.-tie_to_net

ground: Kim loại phủ kết nối với đất (Ground)

4/ Tiến hành chạy công cụ IC Compiler

Ta có 3 cách tiến hành chạy công cụ Design Compiler

Cách 1: Tiến hành chạy trên giao diện GUI.

Gõ lệnh

icc_shell –gui

Cách 2: Tiến hành chạy trên terminal và tiến hành gõ các lệnh.

- Gõ lệnh

icc_shell

- Tiến hành gõ các lệnh trên terminal để tiến hành chạy.

Cách 3: Tiến hành chạy từ đầu đến cuối của một tập tin ràng buộc bằng cách sử dụng một file

script.tcl.

- Gõ lệnh

icc_shell –f <filescript>.tcl

Page 11: [Lab5]IC Compiler

VLSI Lab5 2012

11 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

Tiến hành chạy và các thông báo về warning, error sẽ xuất ra trên terminal

icc_shell –f <filescript>.tcl | tee <ErrorICC>.log

Sau khi chạy, các thông báo trên terminal sẽ lưu vào một file .log giúp ta quan sát dễ hơn

III/ THỰC HÀNH

Bước 1:

Sửa folder [Lab5]ICC thành Lab5_ICC

Tạo folder ThucHanh trong Lab5_ICC

Tạo folder netlist, sdc, icc trong folder ThucHanh

Tạo folder icc_report trong folder icc

Tạo file icc_script.tcl trong folder icc

Copy file counter_NL.v ở trong Lab4_PT/ThucHanh/netlist vào folder netlist mới tạo

Copy file counter_SDC.sdc ở trong Lab4_PT/ThucHanh/sdc vào folder sdc mới tạo

Bước 2:

Viết file icc_script.tcl với nội dung như sau:

1. Thiết lập các biến đường dẫn cho file script:

#Thiet lap ten thiet ke

set cell_name "Counter"

set my_mw_lib "Counter_Lib"

#Thiet lap cac duong dan

set mw_path < đường dẫn đến folder icc>

set LinkProject < đường dẫn đến folder Lab5_ICC/ThucHanh>

set LinkLibrary_mk <đường dẫn đến folder /Lib/process >

set LinkLibrary_db <đường dẫn đến folder /Lib/syn_lib/syn_lib >

set LinkReport < đường dẫn đến folder icc_report>

set LinkNetlist < đường dẫn đến folder netlist>

#Thiet lap mot so bien trong thiet ke

set Core_util "0.60"

set Core_space "4"

set mw_logic0_net VSS

set mw_logic1_net VDD

set power "VDD"

set ground "VSS"

set powerPort "VDD"

set groundPort "VSS"

Page 12: [Lab5]IC Compiler

VLSI Lab5 2012

12 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

2. Thiết lập đường dẫn các thư viện

#Thiet lap cac duong dan den cac thu vien cong nghe

set Techfile "${LinkLibrary_mk}/astro/tech/astroTechFile.tf"

set Ref_lib "${LinkLibrary_mk}/astro/fram/saed90nm_fr"

set Tlupmax

"${LinkLibrary_mk}/star_rcxt/tluplus/saed90nm_1p9m_1t_Cmax.tluplus"

set Tlupmin

"${LinkLibrary_mk}/star_rcxt/tluplus/saed90nm_1p9m_1t_Cmin.tluplus"

set Tech2itf "${LinkLibrary_mk}/astro/tech/tech2itf.map"

set target_library [list ${LinkLibrary_db}/saed90nm_min.db /

${LinkLibrary_db}/saed90nm_typ.db /

${LinkLibrary_db}/saed90nm_max.db]

set link_library [list * ${LinkLibrary_db}/saed90nm_max.db]

set mw_logic0_net VSS

set mw_logic1_net VDD

3. Khởi tạo thư viện Milkyway

#Tao ra thu vien mw cua thiet ke

create_mw_lib -technology $Techfile \

-mw_reference_library $Ref_lib \

$my_mw_lib

4. Thiết lập các tập tin TLUPlus

#Import cac tap tin thu vien TLUPlus trong layout

set_tlu_plus_files \

-max_tluplus $Tlupmax \

-min_tluplus $Tlupmin \

-tech2itf_map $Tech2itf

5. Đọc tập tin Netlist và tập tin ràng buộc (Constraints)

#Import tap tin netlist

import_designs \

-format verilog \

-top $cell_name \

-cel $cell_name ${LinkNetlist}/${cell_name}_NL.v

#Import tap tin rang buoc cua thiet ke

read_sdc "${LinkNetlist}/${cell_name}.sdc"

#Luu thiết kế

save_mw_cel -as "mw_Counter"

Page 13: [Lab5]IC Compiler

VLSI Lab5 2012

13 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

6. Khới tạo floorplaning

initialize_floorplan \

-core_utilization $Core_util \

-left_io2core $Core_space \

-bottom_io2core $Core_space \

-right_io2core $Core_space \

-top_io2core $Core_space

7. Kết nối Power và Ground

derive_pg_connection \

-create_ports all\

-power_net VDD \

-power_pin VDD \

-ground_net VSS \

-ground_pin VSS \

-tie

8. Tạo vòng power và ground

#Tao vong VDD

create_rectangular_rings \

-nets {VDD} \

-right_offset 2.0 \

-right_segment_layer M4 \

-right_segment_width 0.5 \

-left_offset 2.0 \

-left_segment_layer M4 \

-left_segment_width 0.5 \

-bottom_offset 2.0 \

-bottom_segment_layer M5 \

-bottom_segment_width 0.5 \

-top_offset 2.0 \

-top_segment_layer M5 \

-top_segment_width 0.5 \

-extend_tl \

-extend_th

#Tao vong VSS

create_rectangular_rings \

-net {VSS} \

-left_offset 0.5 \

Page 14: [Lab5]IC Compiler

VLSI Lab5 2012

14 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

-left_segment_layer M5 \

-left_segment_width 0.5 \

-right_offset 0.5 \

-right_segment_layer M5 \

-right_segment_width 0.5 \

-bottom_offset 0.5 \

-bottom_segment_layer M5 \

-bottom_segment_width 0.5 \

-top_offset 0.5 \

-top_segment_layer M5 \

-top_segment_width 0.5 \

-extend_tl \

-extend_th

preroute_standard_cells -mode rail -nets "VSS VDD"

9. Tạo các dãi power và ground

#Tao cac strap VDD,VSS

create_power_straps \

-direction vertical \

-start_at 6 \

-num_placement_strap 10 \

-increment_x_or_y 2 \

-nets {VDD} \

-layer M6 \

-width 0.5 \

-do_not_route_over_macros

create_power_straps \

-direction horizontal \

-start_at 6 \

-num_placement_strap 10 \

-increment_x_or_y 2 \

-nets {VSS} \

-layer M7 \

-width 0.5 \

-do_not_route_over_macros

#Luu thiết kế

save_mw_cel -as "mw_Counter_floorplan"

Page 15: [Lab5]IC Compiler

VLSI Lab5 2012

15 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

10. Tiến hành Placement

#Tien hanh Placement

place_opt -congestion

11. Clock Tree Synthesis

#Tien hanh CTS

clock_opt -no_clock_route -only_psyn -fix_hold_all_clocks -only_hold_time

#Report timing

report_placement_utilization > đường dẫn report tạo ra file cts_${cell_name}_util.rpt

report_qor_snapshot > đường dẫn report tạo ra file cts_${cell_name}_qor_snapshot.rpt

report_qor > đường dẫn report tạo ra file cts_${cell_name}_qor.rpt

report_timing –max_paths 20 –delay max > đường dẫn report tạo ra file

cts_${cell_name}_setup.rpt

report_timing –max_paths 20 –delay min > đường dẫn report tạo ra file

cts_${cell_name}_hold.rpt

#Luu thiết kế

save_mw_cel -as "mw_Counter_cts"

12. Routing

#Tien hanh Routing

route_opt

#Report timing

report_placement_utilization > đường dẫn report tạo ra file route_${cell_name}_util.rpt

report_qor_snapshot > đường dẫn report tạo ra file route_${cell_name}_qor_snapshot.rpt

report_qor > đường dẫn report tạo ra file route_${cell_name}_qor.rpt

report_timing –max_paths 20 –delay max > đường dẫn report tạo ra file

route_${cell_name}_setup.rpt

report_timing –max_paths 20 –delay min > đường dẫn report tạo ra file

route_${cell_name}_hold.rpt

#Luu thiết kế

save_mw_cel -as "mw_Counter_route"

Page 16: [Lab5]IC Compiler

VLSI Lab5 2012

16 Khoa Điện Tử - Viễn Thông, Trường ĐH KHTN, Tp HCM

IV/ BÀI TẬP

Bài 1: Tiến hành chạy layout thiết kế Counter và chụp hình kết quả trên giao diện GUI ở từng

bước. Tống hợp các kết quả trên vào một file report (pdf hay word)

Bài 2: Tiến hành chạy layout thiết kế ChipLevel. Chụp hình kết quả trên giao diện GUI ở từng

bước. Gữi báo cáo về timing (setup time và hold time) ở các bước CTS, route và kết quả kiểm tra

DRC, LVS của thiết kế (Sử dụng 2 lệnh verify_drc và verify_lvs)