Professional Documents
Culture Documents
1
Icc_
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
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
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.
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/
kịch bản/
zic_timing.tcl Một tập lệnh được sử dụng để kiểm tra kết nối không
chạy.tcl Một tập lệnh chạy với tất cả các lệnh được thực
Hướng dẫ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
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
#------------------------------------------------ -
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.
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:
Ở 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.
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
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!
thiết kế của
bạn: Nhấp vào nút Thêm… .
[%d]
Ghi chú:
Dự kiến sẽ có Cảnh báo
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ế).
icc_shell> ls risc_chip.mw
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ế .
-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.
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.
Ghi chú: Lệnh sau tương đương với thao tác GUI ở trên:
-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.
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
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ư
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
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
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:
đọ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ề
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):
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
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
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
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.
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]
# 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:
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.
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
20. Lưu ô và chú ý các tệp nhị phân mới trong risc_chip.mw/CEL:
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.
Đố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_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):
4. Lưu ô thiết kế và chú ý các tệp nhị phân mới trong risc_chip.mw/CEL:
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
Câu 4. Thiết kế được đặt có đáp ứng được thời gian không?
................................................................. .................................................
Câu 5. Bạn có gọi đây là thiết kế “giới hạn cốt lõi” không?
................................................................. .................................................
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ê:
“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.
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.
đồng hồ_opt
................................................................. .................................................
2. Hiển thị cây đồng hồ: Sử dụng menu LayoutWindow Clock Color By Clock Trees để hiển
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).
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
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.
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…
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 đó.
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.
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
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.
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
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.
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
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
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
(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ả
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
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
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ễ
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.