Ví dụ của Quartus® II Tcl: Tự động thực thi lệnh

author-image

Bởi

Bắt đầu với phiên bản 4.0 của phần mềm Quartus® II, bạn có thể định cấu hình các lệnh để tự động chạy tại các điểm khác nhau trong quá trình biên dịch. Bạn có thể sử dụng khả năng này để tự động chạy các lệnh thực hiện báo cáo tùy chỉnh, thực hiện các bài tập cụ thể và thực hiện nhiều tác vụ khác.

Có ba bài tập toàn cầu kiểm soát việc thực thi tự động các lệnh. Chúng được liệt kê ở đây, cùng với khi chúng khiến lệnh chạy.

•	PRE_FLOW_SCRIPT_FILE - before a flow starts
•	POST_MODULE_SCRIPT_FILE - after a module finishes
•	POST_FLOW_SCRIPT_FILE - after a flow finishes

Các bài tập POST_FLOW_SCRIPT_FILE xử lý POST_MODULE_SCRIPT_FILE được hỗ trợ bắt đầu từ phiên bản 4.0 và hỗ trợ tác vụ PRE_FLOW_SCRIPT_FILE bắt đầu từ phiên bản 4.1.

Một mô-đun là một Quartus® II thực thi được thực hiện một bước trong một luồng. Ví dụ, hai mô-đun là phân tích & tổng hợp (quartus_map) và phân tích thời gian (quartus_tan).

Một luồng là một loạt các mô-đun mà phần mềm Quartus® II thực hiện với các tùy chọn được xác định trước. Ví dụ, biên dịch một thiết kế là một luồng thường bao gồm các bước sau (được thực hiện bởi mô-đun được chỉ định):

  1. Phân tích và tổng hợp (quartus_map)
  2. Bộ chỉnh (quartus_fit)
  3. Bộ lắp ráp (quartus_asm)
  4. Bộ phân tích thời gian (quartus_tan)

Các luồng khác được mô tả trong sự trợ giúp cho lệnh execute_flow Tcl. Ngoài ra, hầu hết các lệnh trong Bắt đầu (menu Xử lý) trong GUI Quartus® II tương ứng với các luồng.

Thực hiện bài tập

Để thực hiện bài tập để tự động chạy lệnh, thực hiện bài tập với biểu mẫu sau:

set_global_assignment -name <assignment name> <executable>:<script name>

Tên bài tập là một trong những tên sau:

•	PRE_FLOW_SCRIPT_FILE
•	POST_MODULE_SCRIPT_FILE
•	POST_FLOW_SCRIPT_FILE

Thực thi là tên của một tệp thực thi dòng lệnh Quartus® II bao gồm một trình thông dịch Tcl.

•	quartus_cdb
•	quartus_sh
•	quartus_sim
•	quartus_stp
•	quartus_tan

Tên kịch bản là tên của kịch bản Tcl của bạn.

Thực thi lệnh

Phần mềm Quartus® II thực hiện các lệnh như được hiển thị ở đây:

<executable> -t <script name> <flow or module name> <project name> <revision name>

Đối số đầu tiên được truyền trong biến quartus(args) là tên của luồng hoặc mô-đun đang được thực thi, tùy thuộc vào tác vụ bạn sử dụng. Đối số thứ hai là tên của dự án, và đối số thứ ba là tên của bản sửa đổi.

Khi bạn sử dụng tác vụ POST_MODULE_SCRIPT_FILE tập, lệnh được chỉ định sẽ tự động chạy sau mỗi tập lệnh thực thi trong một luồng. Bạn có thể sử dụng một chuỗi so sánh với tên mô-đun (đối số đầu tiên được truyền vào tập lệnh) để tách xử lý lệnh cho một số mô-đun nhất định.

Ví dụ thực thi

Ví dụ này minh họa cách thực thi lệnh tự động hoạt động trong một luồng hoàn chỉnh, giả định rằng bạn có một dự án được gọi là hàng đầu với bản sửa đổi hiện tại được gọi là rev_1 và bạn có các bài tập sau đây trong Tập tin Cài đặt Quartus® II (QSF) cho dự án của mình:

set_global_assignment -name PRE_FLOW_SCRIPT_FILE quartus_sh:first.tcl
set_global_assignment -name POST_MODULE_SCRIPT_FILE quartus_sh:next.tcl
set_global_assignment -name POST_FLOW_SCRIPT_FILE quartus_sh:last.tcl

Khi bạn biên dịch dự án của mình, tác vụ PRE_FLOW_SCRIPT_FILE tác sẽ khiến lệnh sau được thực hiện trước khi quá trình biên dịch bắt đầu:

quartus_sh -t first.tcl compile top rev_1

Tiếp theo, phần mềm Quartus® II bắt đầu biên dịch với phân tích và tổng hợp, được thực hiện bởi trình điều khiển quartus_map thực thi. Sau khi phân tích và tổng hợp hoàn tất, tác vụ POST_MODULE_SCRIPT_FILE lệnh sẽ được thực thi:

quartus_sh -t next.tcl quartus_map top rev_1

Sau đó, phần mềm Quartus® II tiếp tục biên dịch với bộ chỉnh, được thực hiện bởi trình điều khiển quartus_fit thực thi. Sau khi bộ chỉnh hoàn tất, tác vụ POST_MODULE_SCRIPT_FILE tập sẽ khiến lệnh sau được thực hiện:

quartus_sh -t next.tcl quartus_fit top rev_1

Các lệnh tương ứng được thực hiện sau khi các giai đoạn khác của quá trình biên dịch. Cuối cùng, sau khi quá trình biên dịch kết thúc, tác vụ POST_FLOW_SCRIPT_FILE lệnh sẽ được thực thi:

quartus_sh -t last.tcl compile top rev_1

Kiểm soát xử lý

Tác vụ POST_MODULE_SCRIPT_FILE lệnh sẽ khiến một lệnh được thực hiện sau mỗi mô-đun. Vì nó giống lệnh được thực hiện sau mỗi mô-đun, bạn có thể cần bao gồm một số tuyên bố có điều kiện hạn chế xử lý trong lệnh của bạn vào một số mô-đun nhất định.

Ví dụ: nếu bạn có một lệnh mà bạn muốn chỉ chạy sau khi phân tích thời gian được thực hiện, bạn nên bao gồm một bài kiểm tra có điều kiện như lệnh trong ví dụ sau. Nó kiểm tra tên luồng hoặc mô-đun được thông qua làm tham số đầu tiên cho lệnh và thực thi mã khi mô-đun được quartus_tan.

set module [lindex $quartus(args) 0]

if [string match "quartus_tan" $module] {

    # Include commands here that are run
    # after timing analysis
    post_message "Running after timing analysis"
}

Hiển thị tin nhắn

Do cách phần mềm Quartus II tự động chạy các lệnh, bạn cần sử dụng lệnh post_message để hiển thị thông báo, thay vì lệnh puts. Yêu cầu này chỉ áp dụng cho các lệnh chạy theo ba bài tập được liệt kê ở đầu trang này.

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.