You are on page 1of 16

Machine Translated by Google

1
Icc_

Trình biên dịch IC


Thiết lập dữ liệu & luồng cơ bản

Mục tiêu học tập

Phòng thí nghiệm này có hai mục đích:

1. Hướng dẫn bạn quy trình “thiết lập dữ liệu” của


tạo và duy trì cơ sở dữ liệu Milkyway để lưu giữ
dữ liệu thiết kế của bạn.

2. Chạy một quy trình cơ bản hoàn chỉnh, từ tải sơ đồ tầng


đến định tuyến.

Sau khi hoàn thành bài lab này, bạn sẽ có thể:

• Tạo cơ sở dữ liệu Milkyway cho thiết kế của bạn • Đính

kèm thư viện tham khảo vào thư viện thiết kế của bạn • Tải các

mô hình TLU+ để lập mô hình ký sinh chính xác • Đọc trong netlist

• Áp dụng các ràng buộc

sdc Áp dụng các điều khiển thời gian và tối

ưu hóa Tải sơ đồ tầng định dạng

DEF Đặt và tối ưu hóa thiết kế bằng place_opt Xây dựng

và tối ưu hóa cây đồng hồ cho thiết kế bằng clock_opt


Định tuyến và

tối ưu hóa thiết kế bằng Route_opt Tạo và diễn giải


Thời lượng phòng thí

nghiệm: 60 phút thời gian báo cáo • Tải một thiết kế đã

lưu trước đó trong một phiên mới

Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản Phòng thí nghiệm 1-1

Tóm tắt 20-I-071-SLG-011


Machine Translated by Google
Phòng thí nghiệm 1

Giới thiệu

Trong phòng thí nghiệm này, bạn được cung cấp dữ liệu về danh sách mạng, các ràng buộc về thời gian và

sơ đồ tầng cho một thiết kế có tên RISC_CHIP. Bạn sẽ tạo thư viện thiết kế Milkyway từ dữ liệu

thiết kế được cung cấp trong phần đầu tiên của phòng thí nghiệm. Trong phần thứ hai của phòng thí

nghiệm, bạn sẽ đặt các ô tiêu chuẩn, tạo cây đồng hồ và định tuyến thiết kế RISC_CHIP bằng cách sử dụng

luồng cơ bản.

Thiết kế này rất đơn giản và chỉ nhằm mục đích như một phương tiện để quan sát dòng chảy cơ bản.

Đáp án/Giải pháp


Có phần TRẢ LỜI/GIẢI PHÁP ở phía sau mỗi phòng thí nghiệm. Bạn được khuyến khích tham khảo phần

này để xác minh câu trả lời của bạn.

Các tập tin và thư mục liên quan

Tất cả các tệp cho phòng thí nghiệm này đều nằm trong thư mục lab1_data_setup trong thư mục chính của

bạn.

lab1_data_setup/

.synopsys_dc.setup Đọc bằng IC Compiler khi khởi động

dữ liệu thiết kế/

RISC_CHIP.v Danh sách mạng cấp độ cổng verilog RISC_CHIP.

RISC_CHIP.def Sơ đồ tầng RISC_CHIP trong DEF.

RISC_CHIP.sdc Ràng buộc về thời gian RISC_CHIP.

kịch bản/

opt_ctrl.tcl Kiểm soát thời gian và tối ưu hóa.

zic_timing.tcl Một tập lệnh được sử dụng để kiểm tra kết nối không

những hạn chế về mặt thời gian.

dẫn xuất_pg.tcl Tạo kết nối P/G hợp lý.

.các giải pháp/

chạy.tcl Một tập lệnh chạy với tất cả các lệnh được thực

thi trong phòng thí nghiệm này.

Phòng thí nghiệm 1-2


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

Hướng dẫn

Nhiệm vụ 1. Tạo một Dải Ngân Hà thư viện

1. Thay đổi thư mục hiện tại của bạn thành lab1_data_setup và xem nội dung của
cac thu mu c.

UNIX% cd ../lab1_data_setup

UNIX% ls –a

Bạn sẽ thấy các thư mục được liệt kê ở trang trước và


tệp .synopsys_dc.setup.

2. Sử dụng trình soạn thảo hoặc trình xem văn bản UNIX để xem nội dung của

tệp .synopsys_dc.setup.

3. Ở cuối tệp, chúng tôi đã tạo các biến do người dùng xác định sau để giúp ghi lại
và đơn giản hóa quá trình thiết lập dữ liệu:

#------------------------------------------------ -
# Biến thiết lập RISC_CHIP
#------------------------------------------------ -

đặt my_mw_lib risc_chip.mw

đặt mw_path “../ref/mw_lib”

đặt tech_file “../ref/tech/cb13_6m.tf”

đặt tlup_map “../ref/tlup/cb13_6m.map”

đặt tlup_max “../ref/tlup/cb13_6m_max.tluplus”

đặt tlup_min “../ref/tlup/cb13_6m_min.tluplus”

đặt top_design “RISC_CHIP”

đặt verilog_file “./design_data/RISC_CHIP.v”

đặt sdc_file “./design_data/RISC_CHIP.sdc”

đặt def_file “./design_data/RISC_CHIP.def”

đặt ctrl_file “./scripts/opt_ctrl.tcl”

đặt phái sinh_pg_file “./scripts/derive_pg.tcl”

Nếu bạn không biết những biến này chứa gì khi tiếp tục, bạn có thể dễ
dàng truy vấn chúng trong icc_shell bằng lệnh printvar.

Phòng thí nghiệm 1-3


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

4. Phần phía trên các biến do người dùng xác định chứa các cài đặt thư viện logic đã được thảo luận
trong bài giảng:

lapend search_path ../ref/db ../ref/tlup


set_app_var target_library “sc_max.db”
set_app_var link_library “*sc_max.db io_max.db \
ram16x128_max.db”
set_min_library sc_max.db -min_version sc_min.db
set_min_library io_max.db -min_version io_min.db
set_min_library ram16x128_max.db -min_version \
ram16x128_min.db

Ở trên, chúng tôi đã xác định một số bí danh sẽ được sử dụng sau này trong phòng thí nghiệm này.

Ngoài ra còn có các cài đặt kiểm soát việc tạo tệp nhật ký.

Ghi chú: Các biến công cụ này có thể được áp dụng theo bất kỳ thứ tự nào, không nhất thiết phải theo
thứ tự được hiển thị ở đây.

5. Thoát trình soạn thảo văn bản hoặc trình xem.

6. Khởi động Trình biên dịch IC từ dấu nhắc UNIX:

UNIX% icc_shell

Trình biên dịch IC khởi động trong cửa sổ xterm . Tất cả đầu ra cũng được ghi vào

tệp icc_shell.log.* . Việc ghi nhật ký này đã được định cấu

hình trong tệp .synopsys_dc.setup.

7. Xác minh rằng tệp .synopsys_dc.setup thực sự đã được đọc bằng cách truy vấn một trong các
biến do người dùng xác định:

printvar sdc_file

số 8.
Khởi động GUI. MainWindow sẽ xuất hiện sau một thời gian ngắn:

bắt đầu_gui

Ghi chú: Hoặc chỉ cần gõ “gui”, quy trình Tcl do hội thảo cung cấp!

Phòng thí nghiệm 1-4


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

9. Tạo thư viện thiết kế:

Một. Sử dụng menu MainWindow

Tệp Tạo Thư viện … để xuất hiện hộp

thoại Tạo Thư viện .

b. Sử dụng các biến đã được xác định cho tên

thư viện và tệp công nghệ.

c. Đính kèm thư viện tham khảo vào thư viện

thiết kế của
bạn: Nhấp vào nút Thêm… .

Nhấp đúp để tăng lên một cấp, sau đó nhấp

đúp vào ref, sau đó là mw_lib.

Chọn thư viện ô tiêu chuẩn “sc” và nhấn


OK để thêm nó vào danh sách.

d. Thêm “io” và “ ram16x128”

các thư viện cũng vậy.

đ. Chọn kiểm tra “Thư viện mở”

để mở thư viện thiết kế sau khi nó được


tạo.

f. Bấm vào đồng ý.

[%d]
Ghi chú:
Dự kiến sẽ có Cảnh báo

về việc thiếu “các phần

CapModel”. Chúng tôi sẽ tải


các tệp TLU+ sau.

Lệnh sau tương đương với thao tác GUI ở trên:

create_mw_lib -công nghệ $tech_file -mw_reference_library \


“$mw_path/sc $mw_path/io $mw_path/ram16x128” \
-bus_naming_style {[%d]} –open $my_mw_lib

10. Nhập thông tin sau vào một cửa sổ xterm khác hoặc trong trình biên dịch IC Compiler và ghi lại

nội dung của thư mục UNIX mới được tạo risc_chip.mw (thư viện thiết kế).

UNIX% ls –a risc_chip.mw HOẶC

icc_shell> ls risc_chip.mw

Ghi chú: Bạn sẽ thấy ba tệp lib* và một tệp .lock .

Phòng thí nghiệm 1-5


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google

Phòng thí nghiệm 1

Nhiệm vụ 2. Tải Netlist, TLU+, Những hạn chế và


Điều khiển

1. Trước khi đọc trong Verilog netlist, hãy đảm bảo thư viện thiết kế đang mở: Một cách dễ dàng
để làm điều này là kiểm tra xem mục File Open Library … có bị chuyển sang màu
xám hay không. Nếu đúng thì điều này xác nhận rằng thư viện thiết kế hiện đang mở.

2. Chọn Tệp Nhập thiết kế … để xuất hiện hộp thoại Nhập thiết kế .

3. Trong Định dạng đầu vào, chọn verilog.

4. Nhấn Add… sau đó duyệt chọn file Design_data/RISC_CHIP.v và Open.

Trong Tên thiết kế hàng đầu, nhập $top_design (hoặc RISC_CHIP).


Bấm vào đồng ý.

Lệnh sau tương đương với thao tác GUI ở trên:

import_designs $verilog_file -format verilog \

-top $top_design

Danh sách mạng Verilog được đọc và một LayoutWindow mở ra, hiển thị tất cả các ô của
danh sách mạng được xếp chồng lên nhau ở điểm gốc. Bảng IO và ô macro lớn hơn được hiển
thị bằng màu xanh nhạt. Các ô tiêu chuẩn nhỏ hơn nhiều có màu tím nhạt (bạn có thể
cần phóng to góc dưới bên trái để xem chúng).

Câu 1. Nội dung UNIX của thư viện thiết kế đã thay đổi như thế nào?

................................................................. .................................................

................................................................. .................................................

................................................................. .................................................

Kiểm tra câu trả lời của bạn với câu trả lời ở cuối bài thực hành này.

Phòng thí nghiệm 1-6


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

5. Từ MainWindow sử dụng menu File Set TLU+ … để hiển thị

Đặt hộp thoại TLU+ .

Bấm vào nút duyệt , sau đó bấm đúp vào thư mục ref . Nhập khi cần thiết để xác định vị trí

đường dẫn đến các tập tin hiển thị bên dưới.

Nhấn OK để tải các tập tin ký sinh TLU Plus .

Ghi chú: Lệnh sau tương đương với thao tác GUI ở trên:

set_tlu_plus_files -max_tluplus $tlup_max \

-min_tluplus $tlup_min \

-tech2itf_map $tlup_map

6. Kiểm tra tính nhất quán của các thư viện vật lý và logic:

Ghi chú: Chúng tôi sẽ thực hiện kiểm tra mặc định thay vì kiểm tra hoàn chỉnh được đề

xuất (set_check_library_options –all), bao gồm các kiểm tra liên quan đến hạn

chế nguồn UPF, đa chế độ nhiều góc và mô hình hiện tại CCS. Những lần kiểm tra

này sẽ tạo ra nhiều cảnh báo và lỗi không áp dụng cho thư viện của chúng tôi.

kiểm tra_thư viện

Có hai tin nhắn đáng quan tâm:

“Số ô bị thiếu trong thư viện logic: 19”

Thông báo này liệt kê các ô truyền qua, bảng nguồn và nút nhấn nền . Các ô này
chỉ được sử dụng trong bố cục vật lý và do đó không cần thiết trong thư viện
“logic”. Thông báo này có thể được bỏ qua một cách an toàn.

“Số ô bị thiếu hoặc chân không khớp trong thư viện: 12”

Thông báo này chỉ ra rằng các ô được liệt kê có “loại pin” không khớp. Thư viện
logic liệt kê chúng dưới dạng “tín hiệu”, trong khi thư viện vật lý liệt kê chúng

Phòng thí nghiệm 1-7


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

chúng là “mặt đất” hoặc “sức mạnh”. Các ô này cũng chỉ là các ô vật lý và vì các loại thư viện

vật lý là chính xác nên chúng ta cũng có thể bỏ qua thông báo này một cách an toàn.

Ghi chú: Nếu việc kiểm tra ở trên liệt kê bất kỳ tiêu chuẩn nào bị thiếu hoặc không khớp

các ô, macro hoặc ô IP hoặc ô đệm IO thì có thể cần phải sửa đổi các thư

viện để khắc phục tình trạng này.

7. Kiểm tra xem các tệp TLU+ đã được đính kèm chưa và chúng có vượt qua ba lần kiểm tra độ chính xác hay không:

check_tlu_plus_files

Bạn sẽ thấy danh sách các tệp cho max_tlu+, min_tlu+ và maps_file và tất cả các

lần kiểm tra độ chính xác sẽ hiển thị [Đạt!].

số 8.
Xác minh rằng các thư viện liên kết được chỉ định đã được tải:

danh sách_libs

Ghi chú: Bạn sẽ thấy sáu thư viện logic (db) (tối đa và tối thiểu) được chỉ định bởi

set_app_var link_library và set_min_library, cũng như hai thư

viện logic “chung”, luôn được tải theo mặc định: gtech.db và Standard.sldb.

9. Xác định các kết nối “logic” giữa các chân nguồn/chân nối đất và lưới.

nguồn $derive_pg_file

check_mv_design -power_nets

Không được có chân nguồn hoặc chân nối đất “không được kết nối”.

Ghi chú: Nội dung của tập tin trên được hiển thị dưới đây. Ngoài VDD và VSS, thiết kế này

còn có hai tín hiệu P/G bổ sung được sử dụng ở khu vực ngoại vi: VDDO/

VSSO và VDDQ/VSSQ:

dẫn xuất_pg_connection -power_net VDD -power_pin VDD \


-ground_net VSS -ground_pin VSS

dẫn xuất_pg_connection -power_net VDDO -power_pin VDDO \


-ground_net VSSO -ground_pin VSSO

dẫn xuất_pg_connection -power_net VDDQ -power_pin VDDQ \


-ground_net VSSQ -ground_pin VSSQ

dẫn xuất_pg_connection -power_net VDD -ground_net VSS -tie

Phòng thí nghiệm 1-8


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản
Tóm tắt Hội thảo Trình biên dịch IC 1
Machine Translated by Google
Phòng thí nghiệm 1

10. Áp dụng các ràng buộc thiết kế cấp cao nhất:

đọc_sdc $sdc_file

Một số lệnh tiếp theo được khuyến nghị để xác minh các ràng buộc khóa hoặc để nhận thông tin cụ thể về

các ràng buộc khóa.

11. Kiểm tra xem có thiếu bất kỳ ràng buộc thời gian chính nào không (ví dụ: đồng hồ, ràng buộc đầu

vào/đầu ra):

kiểm tra thời gian

Ghi chú: Việc kiểm tra không được đưa ra bất kỳ thông báo “Cảnh báo” hoặc “Lỗi” nào.

Thông báo “Thông tin” theo sau là “1” có nghĩa là không có ràng buộc nào bị thiếu hoặc

không nhất quán.

12. Kiểm tra xem những ràng buộc “ngoại lệ về thời gian” nào được áp dụng cho thiết kế của bạn.

Chúng bao gồm các đường dẫn sai và nhiều chu trình , cũng như các ràng buộc về độ trễ tối thiểu và

tối đa không đồng bộ . Những ràng buộc này là một “ngoại lệ” đối với mặc định

Hành vi tính thời gian “một chu kỳ” – sẽ rất hữu ích nếu biết liệu thiết kế của bạn có chứa bất kỳ

ngoại lệ nào về thời gian trong số này hay không và chúng đang được áp dụng ở đâu:

báo cáo_timing_requirements

Ghi chú: Sẽ không có ràng buộc ngoại lệ về thời gian được báo cáo.

13. Kiểm tra xem liệu phân tích thời gian có bị vô hiệu hóa dọc theo bất kỳ đường dẫn nào không. Nếu bị vô hiệu hóa

cung thời gian tồn tại, bạn có thể muốn kiểm tra với nhóm tổng hợp xem chúng có còn được yêu cầu trong

giai đoạn thiết kế vật lý hay không:

báo cáo_disable_timing

Ghi chú: Vì không có đường dẫn nào được liệt kê nên không có đường dẫn định giờ nào bị vô hiệu hóa.

14. Kiểm tra xem liệu thiết kế đã được cấu hình cho một “chế độ” hay “trường hợp” cụ thể hay chưa, ví dụ: chế độ

“chức năng” so với “thử nghiệm”. Điều này được thực hiện bằng cách ràng buộc chốt điều khiển hoặc

cổng ở mức logic không đổi 0 hoặc 1 chỉ trong quá trình phân tích và tối ưu hóa thời gian, chứ

không phải “có dây cứng”. Điều này rất hữu ích để xác nhận xem thiết kế của bạn có ở “chế độ” chính

xác để tối ưu hóa thiết kế vật lý hay không:

report_case_analysis

Ghi chú: Vì không có chân nào được liệt kê nên không có hằng số nào được áp dụng.

Phòng thí nghiệm 1-9


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

15. Xác minh rằng đồng hồ được lập mô hình phù hợp:

report_clock

report_clock –skew

Ghi chú:
Đầu ra report_clock xác nhận rằng đồng hồ không được "lan
truyền" (nếu không sẽ có chữ "p" trong cột Thuộc tính). Đây là
những gì bạn muốn trước khi tổng hợp cây đồng hồ. Báo cáo clock_skew
xác nhận rằng các hiệu ứng cây đồng hồ (độ trễ chèn, độ lệch, thời
gian chuyển tiếp) đang được lập mô hình.

Câu hỏi 2. Hiệu ứng mô hình kết hợp của độ lệch, jitter và lề đối với thời
gian thiết lập là gì?
(Gợi ý: “Độ không chắc chắn trừ” liên quan đến thời gian thiết lập )

................................................................. .................................................

16. Áp dụng một số điều khiển tối ưu hóa và thời gian được chỉ định trong ./
scripts/opt_ctrl.tcl:

Ghi chú: Hầu hết các cài đặt này được thảo luận trong Phụ lục của Bài 1. Một số sẽ được thảo luận

trong các Bài sau. Đừng dành thời gian ở đây để cố gắng hiểu chúng:

nguồn $ctrl_file

17. Chạy báo cáo thời gian “không kết nối” (zic) . Nhớ lại bài giảng rằng chế độ ZIC
đặt tải điện dung của dây về 0. Hãy thử sử dụng tính năng “hoàn thành tên
tệp” bên trong icc_shell bằng phím [Tab] .

nguồn sc[TAB]z[TAB]

# File scripts/zic_timing.tcl ở trên chứa:


# set_zero_interconnect_delay_mode đúng
# chuyển hướng –tee zic.timing { report_timing }

# set_zero_interconnect_delay_mode sai

18. Lệnh redirect -tee ở trên hiển thị báo cáo thời gian trên màn hình và lưu nó
vào một tệp. Bạn có thể xem nội dung của tệp đó bằng cách thực thi UNIX
“cat” tại dấu nhắc icc_shell:

giám đốc điều hành mèo zic.timing

Cuộn lên và xem toàn bộ báo cáo thời gian. Có ba con đường được liệt kê –
một cho mỗi “Nhóm đường dẫn” hiện hành được gọi là ĐẦU VÀO, ĐẦU RA và clk.

Phòng thí nghiệm 1-10


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

Các nhóm đường dẫn này đã được xác định trong tệp kiểm soát thời gian/tối ưu hóa đã được

áp dụng một vài bước ở trên và sẽ được giải thích trong bài sau.

Câu hỏi 3. Thiết kế bị ràng buộc có vượt qua được bài kiểm tra độ chính xác “ZIC” không?

................................................................. .................................................

19. Tín hiệu “cho phép quét” (scan_en) được xác định là một mạng lý tưởng (xem $sdc_file) để

ngăn quá trình tổng hợp đệm tín hiệu này. Xóa định nghĩa mạng lý tưởng để nó được lưu

vào bộ đệm trong quá trình thiết kế vật lý:

Remove_ideal_network [get_ports scan_en]

20. Lưu ô và chú ý các tệp nhị phân mới trong risc_chip.mw/CEL:

save_mw_cel –as RISC_CHIP_data_setup

Chúc mừng! Bạn đã hoàn thành việc “thiết lập dữ liệu”. Trong một số nhiệm vụ tiếp theo, bạn

sẽ thực hiện thiết kế của mình qua các bước rất cơ bản về lập kế hoạch thiết kế,

sắp xếp, tổng hợp và định tuyến cây đồng hồ . Bạn sẽ khám phá từng giai đoạn thiết kế

này và các lệnh liên quan một cách chi tiết hơn nhiều trong các Đơn vị hội thảo

sắp tới.

Nhiệm vụ 3. Luồng cơ bản: Lập kế hoạch thiết kế

Đối với phòng thí nghiệm này, chúng tôi đã cung cấp cho bạn tệp sơ đồ tầng được xác định trước, ở định dạng DEF tiêu chuẩn

định dạng. Tệp này có thể được tạo bởi IC Compiler, sau giai đoạn lập kế hoạch thiết kế hoặc bằng

công cụ lập kế hoạch thiết kế của bên thứ ba.

1. Đọc trong tệp DEF được cung cấp :

đọc_def $def_file

Ghi chú: Bạn cũng có thể sử dụng GUI: Tệp Nhập Đọc DEF…
để đọc ./design_data/RISC_CHIP.def.

2. Nhấn [F] trong LayoutWindow để làm mới chế độ xem. Bây giờ bạn sẽ thấy thiết kế sơ đồ

tầng.

3. Đảm bảo rằng các ô tiêu chuẩn sẽ không được đặt dưới các tuyến đường điện và kim loại nối

đất (ràng buộc này không phải là một phần của DEF):

set_pnet_options -hoàn thành {METAL3 METAL4}

Phòng thí nghiệm 1-11


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google

Phòng thí nghiệm 1

4. Lưu ô thiết kế và chú ý các tệp nhị phân mới trong risc_chip.mw/CEL:

save_mw_cel –as RISC_CHIP_floorplanned

Nhiệm vụ 4. Luồng cơ bản: Vị trí

1. Đặt và tối ưu hóa thiết kế cho thời gian và tạo báo cáo về thời gian:

địa điểm_opt

chuyển hướng -tee place_opt.timing {report_timing}

Câu 4. Thiết kế được đặt có đáp ứng được thời gian không?

................................................................. .................................................

2. Trong LayoutWindow, phóng to và xem vị trí ô tiêu chuẩn.

Câu 5. Bạn có gọi đây là thiết kế “giới hạn cốt lõi” không?

................................................................. .................................................

Phân tích tắc nghẽn:

Chọn menu thả xuống ở bên phải của


biểu tượng. Nếu bạn không nhìn thấy biểu tượng, hãy nhấp vào >>
để mở rộng thanh công cụ.

Chọn “Tắc nghẽn tuyến đường toàn cầu” từ danh


sách thả xuống, sau đó chọn “Tải lại”.

Một hộp thoại xuất hiện chứa lệnh sẽ được thực thi để phân tích tắc nghẽn.
Trong trường “(Re)Tính toán dữ liệu bản đồ tắc nghẽn tuyến đường toàn cầu” ,
đảm bảo rằng lệnh bên dưới được liệt kê:

report_congestion -grc_based -by_layer \


-routing_stage toàn cầu

Nhấp vào “OK”.

“Bản đồ nhiệt” ùn tắc được hiển thị trong bố cục. Có 37 cạnh bằng 0
“tràn”, có nghĩa là chỉ có đủ đường định tuyến cho các dấu vết kim loại cần
thiết.

3. Đóng bản đồ tắc nghẽn bằng cách nhấp vào dấu “x” nhỏ ở góc trên bên phải của
hộp thoại tắc nghẽn.

Phòng thí nghiệm 1-12


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

4. Lưu ô thiết kế:

save_mw_cel –as RISC_CHIP_placed

Nhiệm vụ 5. Luồng cơ bản: CTS

1. Bạn sẽ sử dụng cài đặt mặc định để tạo cây đồng hồ. Tuy nhiên, trong

để cho phép Trình biên dịch IC tính toán độ lệch đồng hồ thực tế trong quá trình tổng
hợp cây đồng hồ, thay vì kết hợp độ lệch ước tính từ các ràng buộc, trước tiên

hãy loại bỏ “độ không chắc chắn của đồng hồ” . Ngoài ra, hãy bật tính năng sửa thời
gian giữ. Chúng ta sẽ thảo luận vấn đề này chi tiết hơn trong phần CTS.

xóa_clock_uncertainty [tất cả_đồng hồ]

set_fix_hold [tất cả_đồng hồ]

đồng hồ_opt

chuyển hướng -tee clock_opt.timing {report_timing}

Câu hỏi 6. Thời gian vẫn ổn chứ?

................................................................. .................................................

2. Hiển thị cây đồng hồ: Sử dụng menu LayoutWindow Clock Color By Clock Trees để hiển

thị hộp thoại “chế độ trực quan”.

Nhấp vào “Tải lại”.

Trong hộp thoại xuất hiện, hãy đảm bảo rằng Tên Ghim nguồn “clk” được chọn (được
đánh dấu màu xanh lam).

Ở cuối hộp thoại chọn hộp “Tất cả cấp độ, loại”.

Bấm vào đồng ý.

Các kết nối (hoặc tuyến đường) kim loại của cây đồng hồ, cũng như các ô tiêu chuẩn, bảng
IO và các ô macro được kết nối với cây đồng hồ, đều được đánh dấu. Lưu ý cách cây đồng

hồ bắt đầu tại ô đệm IO “clk_iopad” (cạnh trên của ngoại vi, ở bên phải), sau đó kết nối
với tất cả các thanh ghi (“sdnrq#” hoặc “sdcrq#”) và các ô macro (phóng to, hoặc di

con trỏ qua ô để xem tên của ô đó).

3. Loại bỏ phần đánh dấu cây đồng hồ bằng cách đóng (“x”) cửa sổ chế độ trực quan.

4. Lưu ô thiết kế:

save_mw_cel –as RISC_CHIP_cts

5. Chúng ta vẫn cần định tuyến thiết kế, nhưng trước tiên:

Thoát IC Compiler bằng cách nhấp vào File Exit Discard All, hoặc gõ exit hoặc quit và OK

tại dấu nhắc ic_shell. Chúng tôi sẽ giải thích lý do tại sao chúng tôi làm điều này tiếp theo…

Phòng thí nghiệm 1-13


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

Nhiệm vụ 6. Luồng cơ bản: Định tuyến

Lý do thoát khỏi IC Compiler ở bước trước là để bạn thực hiện các bước bắt đầu một
phiên mới, áp dụng lại các cài đặt cụ thể và tiếp tục từ nơi bạn đã dừng lại trước đó.

1. Gọi GUI của Trình biên dịch IC:

UNIX% icc_shell -gui

2. Vì thư viện thiết kế đã được tạo và bạn đã lưu ô bố cục sau CTS nên tất cả những
gì bạn phải làm là tải ô RISC_CHIP_cts từ thư viện thiết kế risc_chip.mw , như
sau:

Một. Trong MainWindow nhấp vào biểu tượng “thiết kế mở” nhỏ màu vàng
ở trên cùng bên trái hoặc sử dụng lệnh menu: File Open Design …

b. Trong bảng hộp thoại Open Design , nhấp vào biểu tượng thư mục màu .

vàng. Hộp thoại Chọn Thư viện sẽ mở ra. Chọn thư mục thư viện
risc_chip.mw và nhấp vào Chọn.

c. Chọn RISC_CHIP_cts và nhấn OK để mở nó.

3. Áp dụng lại các biện pháp kiểm soát thời gian và tối ưu hóa đã được áp dụng trong
quá trình thiết lập dữ liệu. Điều này là bắt buộc vì một số cài đặt được áp
dụng bằng cách sử dụng các biến. Nói chung, các cài đặt biến không được lưu cùng với
ô thiết kế – chúng vẫn được đặt trong phiên Trình biên dịch IC hiện tại.
Sau khi thoát và gọi lại IC Compiler, các biến được đặt lại về giá trị mặc định ban đầu:

nguồn $ctrl_file

4. Bây giờ chúng ta đã sẵn sàng để tiếp tục định tuyến thiết kế. Điều này sẽ xử lý tất
cả các lưới tín hiệu (lưới đồng hồ đã được định tuyến chi tiết bởi clock_opt):

tuyến_opt

Phóng to và xem một số định tuyến chi tiết.

Phòng thí nghiệm 1-14


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google
Phòng thí nghiệm 1

5. Tạo báo cáo thời gian. Bạn sẽ thấy sự sụt giảm tích cực:

Ghi chú: Vì đầu ra của báo cáo này có thể dài nên chúng tôi sẽ sử dụng lệnh "xem"
hữu ích do người dùng tạo. Nó mở ra một cửa sổ riêng trong đó đầu ra có
thể được cuộn và tìm kiếm một cách thuận tiện. Lệnh xem là một “thủ tục”
TCL đã được xác định cho hội thảo này. Đây không phải là lệnh tiêu chuẩn
có sẵn trong IC Compiler. Quy trình này, cùng với một số quy trình khác,
được xác định tại ../ref/tools/procs.tcl và có “nguồn gốc”

trong .synopsys_dc.setup.

xem report_timing -nosplit; # HOẶC sử dụng bí danh:

v rt

Ghi chú:
Bí danh được xác định trong tệp .synopsys_dc.setup.

6. Theo báo cáo thời gian mặc định hiển thị độ trễ tối đa hoặc thời gian thiết lập . Tạo báo cáo

thời gian trễ hoặc giữ tối thiểu . Bạn cũng sẽ thấy rằng không có vi phạm lưu giữ nào:

v rt –delay phút

7. Tạo số liệu thống kê thiết kế vật lý:

report_design – vật lý

Ghi chú: Báo cáo này bao gồm thông tin về tỷ lệ sử dụng của thiết kế, tắc
nghẽn (tràn), v.v.

8. Lưu thiết kế.

save_mw_cel -as RISC_CHIP_routed

9. Thoát khỏi trình biên dịch IC

lối ra hoặc từ bỏ

Bạn đã thực hiện tất cả các bước thiết lập dữ liệu cần thiết và đã chạy thiết kế RISC_CHIP thông

qua quy trình cơ bản của Trình biên dịch IC!

Phòng thí nghiệm 1-15


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1


Machine Translated by Google

Phòng thí nghiệm 1 Đáp án/Giải pháp

Đáp án/Giải pháp

Câu 1. Nội dung UNIX của thư viện thiết kế đã thay đổi như thế nào?

Bây giờ nó chứa thư mục con CEL chứa các tệp nhị phân cho RISC_CHIP – tên thiết

kế hàng đầu được lưu bằng import_designs.

Câu hỏi 2. Hiệu ứng kết hợp được mô hình hóa của độ lệch, jitter và lề cho thời gian

thiết lập là gì?

(Gợi ý: “Độ không chắc chắn trừ” liên quan đến thời gian thiết lập )

Tổng tác động của (độ lệch + jitter + lề) đối với thời gian thiết lập được mô hình

hóa bằng “Độ không chắc chắn trừ” là 0,5 ns. Trong quá trình phân tích thời

gian (trước khi tổng hợp cây đồng hồ), Trình biên dịch IC sẽ di chuyển tất cả các

cạnh đồng hồ chụp sớm hơn 0,5ns, do đó giảm khoảng thời gian xung nhịp hiệu quả

xuống khoảng thời gian thiết lập đó.

Câu hỏi 3. Thiết kế bị ràng buộc có vượt qua được bài kiểm tra độ chính xác “ZIC” không?

Bạn sẽ thấy thời gian cho ba đường dẫn khác nhau được báo cáo. Nhóm đường dẫn

INPUTS chứa tất cả các đường dẫn giữa các cổng đầu vào chính và các thanh ghi; Nhóm

đường dẫn OUTPUTS

chứa các đường dẫn từ thanh ghi đến cổng đầu ra chính; Nhóm clk chứa các đường

dẫn đăng ký để đăng ký.

Với việc tính thời gian của ZIC, bạn mong đợi sẽ thấy sự chậm trễ tích cực

hoặc tệ nhất là một vi phạm nhỏ. Nhóm OUTPUTS có độ trễ âm nhỏ khoảng 1% độ trễ

đường truyền yêu cầu.

Tối ưu hóa vị trí, CTS và/hoặc định tuyến sẽ có thể khắc phục vi phạm này.

Do đó, netlist đã vượt qua quá trình kiểm tra độ tỉnh táo.

Câu hỏi 4. Thiết kế được đặt có đáp ứng được thời gian không?

Đúng. Lưu ý rằng vi phạm nhỏ về thời gian “không kết nối” đã không còn

nữa. Bây giờ tất cả các con đường đều có độ chùng tích cực.

Câu hỏi 5. Bạn có gọi đây là thiết kế “giới hạn cốt lõi” không?

Không, đó là giới hạn của miếng đệm – kích thước của chip được xác định

bởi số lượng lớn miếng đệm chứ không phải số lượng ô và macro tiêu chuẩn.

Câu hỏi 6. Thời gian vẫn ổn chứ?

Có, tất cả các đường dẫn đều có độ chùng dương.

Phòng thí nghiệm 1-16


Thiết lập dữ liệu trình biên dịch IC & Luồng cơ bản

Tóm tắt Hội thảo Trình biên dịch IC 1

You might also like