Ví dụ của Quartus® II Tcl: Bài tập toàn cầu không mặc định

author-image

Bởi

Bạn có thể xem lại các bài tập toàn cầu trong thiết kế của mình để xem liệu bất kỳ bài tập nào của bạn có khác so với cài đặt mặc định hay không. Ví dụ: nếu hiệu năng của thiết kế của bạn không như bạn mong đợi, bạn có thể thấy liệu bạn có thay đổi một cài đặt một cách ngẫu nhiên từ giá trị mặc định của nó hay không.

Ví dụ này tạo ra một bảng báo cáo tùy chỉnh liệt kê các cài đặt gán toàn cầu không mặc định của dự án của bạn. Các lệnh tạo bảng báo cáo tùy chỉnh có sẵn bắt đầu từ phiên bản 4.1 của phần mềm Quartus II (phiên bản 2.0 của gói ::quartus::report). Ví dụ này sử dụng gói cmdline Tcl để xử lý các tham số dòng lệnh.

Gói báo cáo load_package yêu cầu tùy chọn
bộ cmdline
{\
    { "project.arg" "" "Project name"
    } \ { "revision.arg" "" "Revision name"
} } array set
opts [::cmdline::getoptions quartus(args ) $options] project_open $opts(dự án) -phiên bản $opts(bản sửa đổi) load_report đặt panel_name "Cài đặt toàn cầu không mặc định" đặt

panel_id
[get_report_panel_id $panel_name]

# Bạn phải
xóa bảng điều khiển nếu nó tồn tại, trước khi tạo bảng điều khiển. nếu { -1 != $panel_id } { delete_report_panel -id $panel_id } đặt panel_id [create_report_panel -table $panel_name] # Tiêu đề cột cho bảng báo cáo
mới add_row_to_table
-id $panel_id \ { "Gán" "Giá trị mặc định" "Giá trị thiết
    kế" }

asgn foreach_in_collection [get_all_quartus_defaults] {
    
    foreach { section_id name default_value } $asgn { break }
    set current_value [get_global_assignment -name $name]

    # Nếu các giá trị khác biệt, hãy thêm một hàng vào bảng.
    nếu { ! [string equal -nocase $current_value $default_value] } {
        add_row_to_table -id $panel_id \
            [list $name $default_value $current_value] } }
    save_report_database
project_close

Tại dấu nhắc lệnh hệ thống, bạn có thể chạy một lệnh chứa mã như được hiển thị ở đây:

quartus_sh -t script.tcl -project myproject -revision myrevision

Cải thiện mã mẫu

Một cách để cải thiện mã là làm cho nó chạy tự động vào cuối mỗi quá trình biên dịch. Để làm điều này, thêm một bài tập mới vào dự án của bạn và thay đổi cách xử lý các đối số dòng lệnh.

Tên bài tập là POST_FLOW_SCRIPT_FILE. Để biết thêm thông tin về tác vụ này, hãy tham khảo các ví dụ Thực thi Lệnh Tự động. Giả định kịch bản có tên script.tcl, thêm bài tập sau vào Tập tin Cài đặt Quartus II (.qsf) của bạn):

set_global_assignment -name POST_FLOW_SCRIPT_FILE quartus_sh:script.tcl

Do cách lệnh chạy với tác vụ POST_FLOW_SCRIPT_FILE tập, bạn phải thay đổi các lệnh ở đầu lệnh mở dự án. Kịch bản được chạy với ba tham số định vị được xác định trước: tên luồng, dự án và phiên bản. Sử dụng gói cmdline là không cần thiết trong trường hợp này.

Thay đổi phần trên cùng của lệnh như sau:

load_package báo cáo trước { flow_name sửa đổi dự án

$quartus (args) { break }

project_open $project -phiên bản $revision

Lệnh sẽ tự động chạy vào cuối mỗi lần biên dịch, bất kể bạn bắt đầu biên dịch trong Quartus II GUI, tại dấu nhắc lệnh hệ thống hay theo kịch bản.

Nội dung gốc bằng tiếng Anh trên trang này vừa do con người vừa do máy dịch. Nội dung này chỉ để cung cấp thông tin chung và giúp quý vị thuận tiện. Quý vị không nên tin đây là thông tin hoàn chỉnh hoặc chính xác. Nếu có bất kỳ mâu thuẫn nào giữa bản tiếng Anh và bản dịch của trang này, thì bản tiếng Anh sẽ chi phối và kiểm soát. Xem phiên bản tiếng Anh của trang này.