Upload
trang-cong
View
202
Download
14
Embed Size (px)
Citation preview
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ỏ
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
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 ở
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
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 \
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
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} \
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
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 \
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
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"
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"
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 \
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"
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"
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)