Contoh Tcl Quartus® II: Eksekusi Skrip Otomatis

author-image

Oleh

Dimulai dengan versi 4.0 dari perangkat lunak Quartus® II, Anda dapat mengonfigurasi skrip untuk berjalan secara otomatis di berbagai titik selama kompilasi. Anda dapat menggunakan kemampuan ini untuk menjalankan skrip secara otomatis yang melakukan pelaporan kustom, membuat tugas khusus, dan melakukan banyak tugas lainnya.

Ada tiga penugasan global yang mengontrol eksekusi otomatis skrip. Mereka tercantum di sini, bersama dengan ketika mereka menyebabkan skrip berjalan.

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

Penetapan POST_FLOW_SCRIPT_FILE dan POST_MODULE_SCRIPT_FILE didukung dimulai dari versi 4.0, dan penugasan PRE_FLOW_SCRIPT_FILE didukung mulai dari versi 4.1.

Modul adalah Quartus® II yang dapat dieksekusi yang melakukan satu langkah dalam satu alur. Misalnya, dua modul adalah analisis & sintesis (quartus_map) dan analisis waktu (quartus_tan).

Alur adalah serangkaian modul yang dijalankan perangkat lunak Quartus® II dengan opsi yang telah ditentukan sebelumnya. Misalnya, mengkompilasi desain adalah alur yang biasanya terdiri dari langkah-langkah berikut (dilakukan oleh modul yang ditunjukkan):

  1. Analisis dan sintesis (quartus_map)
  2. Lebih bugar (quartus_fit)
  3. Perakit (quartus_asm)
  4. Penganalisis Waktu (quartus_tan)

Alur lain dijelaskan dalam bantuan untuk perintah execute_flow Tcl. Selain itu, sebagian besar perintah dalam Mulai (menu Pemrosesan) di Quartus® II GUI sesuai dengan alur.

Membuat Tugas

Untuk membuat tugas untuk menjalankan skrip secara otomatis, buat penugasan dengan formulir berikut:

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

Nama penugasan adalah salah satu hal berikut:

•	PRE_FLOW_SCRIPT_FILE
•	POST_MODULE_SCRIPT_FILE
•	POST_FLOW_SCRIPT_FILE

Yang dapat dieksekusi adalah nama baris perintah Quartus® II yang dapat dieksekusi yang menyertakan penerjemah Tcl.

•	quartus_cdb
•	quartus_sh
•	quartus_sim
•	quartus_stp
•	quartus_tan

Nama skrip adalah nama skrip Tcl Anda.

Eksekusi Skrip

Perangkat lunak Quartus® II menjalankan skrip seperti yang ditunjukkan di sini:

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

Argumen pertama yang dilewatkan dalam variabel quartus(args) adalah nama alur atau modul yang sedang dijalankan, tergantung pada tugas yang Anda gunakan. Argumen kedua adalah nama proyek, dan argumen ketiga adalah nama revisi.

Saat Anda menggunakan penetapan POST_MODULE_SCRIPT_FILE, skrip yang ditentukan akan dijalankan secara otomatis setelah setiap yang dapat dieksekusi dalam satu alur. Anda dapat menggunakan perbandingan string dengan nama modul (argumen pertama yang diteruskan ke skrip) untuk mengisolasi pemrosesan skrip ke modul tertentu.

Contoh Eksekusi

Contoh ini menggambarkan bagaimana eksekusi skrip otomatis bekerja dalam alur lengkap, dengan asumsi Anda memiliki proyek yang disebut teratas dengan revisi saat ini yang disebut rev_1, dan Anda memiliki tugas berikut di Quartus® II Settings File (QSF) untuk proyek Anda:

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

Saat Anda mengkompilasi proyek Anda, penugasan PRE_FLOW_SCRIPT_FILE menyebabkan perintah berikut dijalankan sebelum kompilasi dimulai:

quartus_sh -t first.tcl compile top rev_1

Selanjutnya, perangkat lunak Quartus® II memulai kompilasi dengan analisis dan sintesis, yang dilakukan oleh quartus_map yang dapat dieksekusi. Setelah analisis dan sintesis selesai, penugasan POST_MODULE_SCRIPT_FILE menyebabkan perintah berikut untuk dijalankan:

quartus_sh -t next.tcl quartus_map top rev_1

Kemudian, perangkat lunak Quartus® II terus kompilasi dengan yang lebih bugar, yang dilakukan oleh quartus_fit yang dapat dieksekusi. Setelah fitter selesai, penugasan POST_MODULE_SCRIPT_FILE menyebabkan perintah berikut harus dijalankan:

quartus_sh -t next.tcl quartus_fit top rev_1

Perintah terkait dijalankan setelah tahapan lain dari kompilasi. Akhirnya, setelah kompilasi berakhir, penugasan POST_FLOW_SCRIPT_FILE menyebabkan perintah berikut untuk dijalankan:

quartus_sh -t last.tcl compile top rev_1

Mengontrol Pemrosesan

Penugasan POST_MODULE_SCRIPT_FILE menyebabkan skrip dijalankan setelah setiap modul. Karena ini adalah skrip yang sama yang dijalankan setelah setiap modul, Anda mungkin perlu menyertakan beberapa pernyataan persyaratan yang membatasi pemrosesan dalam skrip Anda ke modul tertentu.

Misalnya, jika Anda memiliki skrip yang ingin dijalankan hanya setelah analisis waktu dilakukan, Anda harus menyertakan pengujian kondisional seperti yang ada dalam contoh berikut. Ini memeriksa aliran atau nama modul yang dilewatkan sebagai argumen pertama ke skrip dan menjalankan kode ketika modul 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"
}

Menampilkan Pesan

Karena cara perangkat lunak Quartus II menjalankan skrip secara otomatis, Anda perlu menggunakan perintah post_message untuk menampilkan pesan, alih-alih perintah puts. Persyaratan ini hanya berlaku untuk skrip yang dijalankan oleh tiga penetapan yang tercantum di bagian atas halaman ini.

Isi halaman ini adalah kombinasi terjemahan manusia dan komputer dari konten berbahasa Inggris. Konten ini diberikan hanya untuk kenyamanan Anda serta sebagai informasi umum dan tidak bisa dianggap sebagai lengkap atau akurat. Jika terdapat kontradiksi antara versi bahasa Inggris halaman ini dan terjemahannya, versi bahasa Inggris akan didahulukan. Lihat versi bahasa Inggris halaman ini.