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):
- Analisis dan sintesis (quartus_map)
- Lebih bugar (quartus_fit)
- Perakit (quartus_asm)
- 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.