Sự cố quan trọng
Do có vấn đề trong phần mềm Quartus® II phiên bản 12.1 SP1, việc đặt hàng trong Tập tin cài đặt Quartus II của dự án của bạn (.qsf) có thể được thay đổi bất ngờ.
Hành vi này có thể xảy ra khi bạn mở một dự án hiện có hoặc khi bạn chạy lệnh Nâng cấp IP.
Nếu dự án của bạn có phụ thuộc vào thứ tự đặt hàng tệp Synopsys Design Constraint (.sdc) thì việc đặt lại thứ tự này có thể dẫn đến các cài đặt tần suất bất ngờ hoặc các bài tập thời gian khác. Bạn có thể có một dự án có nhiều cấp độ tệp IP (.qip) Quartus II. Trong tệp .qip , bạn có thể có tham chiếu đến các tệp .qip hoặc .sdc bổ sung. Ví dụ: tham khảo phần giải pháp dưới đây. Cài đặt .sdc không chính xác có thể gây ra hành vi thiết kế không chính xác hoặc lỗi chức năng.
Tệp lệnh Tcl có sẵn để kiểm tra xem thiết kế của bạn có bị ảnh hưởng bởi sự cố này không. Tải xuống qip_checker.tcl để xác định xem có vấn đề về thứ tự tệp tiềm ẩn không. Bạn có thể chạy kịch bản này với lệnh sau:
quartus_sh -t qip_checker.tcl [-force]
Để sử dụng chi tiết trên kịch bản này, hãy gõ
quartus_sh -t qip_checker.tcl
Một bản vá có sẵn để khắc phục vấn đề này cho phần mềm Quartus II phiên bản 12.1 SP1. Tải xuống và cài đặt bản vá 1.33 từ liên kết thích hợp dưới đây:
- Tải xuống bản vá 12.1 SP1 1.33 dành cho Windows (.exe)
- Tải xuống phiên bản 12.1 SP1 bản vá 1.33 cho Linux (.tar)
- Tải xuống Readme cho phần mềm Quartus II phiên bản 12.1 SP1 bản vá 1.33 (.txt)
Bản vá này tương thích với phần mềm Quartus II phiên bản 12.1 SP1 (bản dựng 243).
Bản vá 1.33 không tương thích với bản vá thiết bị Quartus II phiên bản 12.1 SP1 (1.dp) cho các thiết bị Stratix® V, Arria® V và Cyclone® V. Nếu bạn sử dụng các thiết bị này, bạn có thể khắc phục sự cố này bằng cách nâng cấp lên bản vá thiết bị 1.dp6 trở lên bằng cách sử dụng các liên kết trong giải pháp liên quan bên dưới.
Nếu bạn không thể sử dụng bản vá này, bạn có thể tránh vấn đề này bằng cách tạo tệp văn bản có tên quartus.ini trong thư mục dự án của bạn (nếu nó chưa tồn tại). Thêm dòng sau trong tệp văn bản để ngăn xếp lại trình tự tệp:
disable_ip_regen=on
Tùy chọn này sẽ vô hiệu hóa một số tính năng hồi quy IP tự động, vì vậy bạn có thể phải hồi sinh IP bằng cách sử dụng các hoạt động của dòng lệnh.
Nếu bạn đã gặp phải vấn đề này, bạn nên thực hiện các bước sau:
- Áp dụng bản vá hoặc áp dụng cài
disable_ip_regen=on
đặt ini ngay lập tức - Xóa bất kỳ tác vụ nào trong .qsf có một hoặc
-qip
nhiều tham-sip
số - Kiểm
QIP_FILE
tra các bài tập trong .qsf và xóa bất kỳ bài tập nào không thuộc cấp độ cao nhất - Sửa đổi .qsf để sửa theo cách thủ công thứ tự của tệp .sdc và .qip
Dưới đây là một ví dụ về các hiệu ứng sắp xếp lại các hiệu ứng mà bạn nên sửa theo cách thủ công nếu thiết kế của bạn bị ảnh hưởng.
Ví dụ, trước phần mềm Quartus II phiên bản 12.1 SP1, một thiết kế có các tệp .sdc và .qip sau đây được liệt kê trong tệp .qsf của dự án:
a.qsf:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name SDC_FILE a_after.sdc
a.qip:
set_global_assignment -name SDC_FILE aqip_before.sdc
set_global_assignment -name QIP_FILE asub.qip
set_global_assignment -name SDC_FILE aqip_after.sdc
asub.qip:
set_global_assignment -name SDC_FILE asub.sdc
Sau đây là thứ tự tệp từ bộ nhớ:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name SDC_FILE aqip_before.sdc # from qip a.qip
set_global_assignment -name QIP_FILE asub.qip # from qip a.qip
set_global_assignment -name SDC_FILE asub.sdc # from qip asub.qip
set_global_assignment -name SDC_FILE aqip_after.sdc # from qip a.qip
set_global_assignment -name SDC_FILE a_after.sdc
Do đó, dự án đọc các SDC_FILE tập theo thứ tự sau:
- a_before.sdc
- aqip_before.sdc
- asub.sdc
- aqip_after.sdc
- a_after.sdc
Trong phần mềm Quartus II phiên bản 12.1 SP1, sau khi kích hoạt vấn đề phần mềm (mở dự án hoặc nâng cấp IP), .qsf sẽ trông như sau:
a.qsf:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name SDC_FILE a_after.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name QIP_FILE asub.qip
Sau đây là thứ tự tệp từ bộ nhớ:
set_global_assignment -name SDC_FILE a_before.sdc
set_global_assignment -name SDC_FILE a_after.sdc
set_global_assignment -name QIP_FILE a.qip
set_global_assignment -name SDC_FILE aqip_before.sdc # from qip a.qip
set_global_assignment -name QIP_FILE asub.qip # from qip a.qip
set_global_assignment -name SDC_FILE aqip_after.sdc # from qip a.qip
set_global_assignment -name QIP_FILE asub.qip
set_global_assignment -name SDC_FILE asub.sdc # qip asub.qip
Do đó, dự án đọc các SDC_FILE tập theo thứ tự sau:
- a_before.sdc
- a_after.sdc
- aqip_before.sdc
- aqip_after.sdc
- asub.sdc
Nếu thiết kế phụ thuộc vào thứ tự .sdc được đọc, thứ tự thay đổi này có thể ảnh hưởng đến kết quả tối ưu hóa thiết kế và phân tích thời gian. Để khắc phục sự cố, hãy thêm cài đặt ini như mô tả ở trên, sau đó sửa .qsf để sử dụng thứ tự bài tập chính xác ban đầu. Để nhanh chóng kiểm tra xem đơn đặt hàng có được thay đổi không, hãy tham khảo .qsf được tạo trước phiên bản phần mềm Quartus II phiên bản 12.1 SP1.
Vấn đề này đã được khắc phục bắt đầu với phần mềm Quartus II phiên bản 13.0.