Simulasi Perangkat Lunak RENESAS ForgeFPGA
Informasi Penting
Simulasi adalah teknik menerapkan stimulus masukan yang berbeda ke desain pada waktu yang berbeda untuk memeriksa apakah kode RTL berperilaku sesuai keinginan. Ini digunakan untuk memverifikasi kekokohan desain. Simulasi memungkinkan pengguna untuk view diagram waktu dari sinyal-sinyal terkait untuk memahami bagaimana deskripsi desain dalam desain file berperilaku.
Testbenches adalah potongan kode yang digunakan untuk simulasi. Testbench sederhana akan membuat instance Unit Under Test (UUT) dan menggerakkan inputnya. Perangkat lunak Go Configure menggunakan Icarus Verilog (iVerilog) dan GTKWave untuk mengamati bentuk gelombang simulasi dengan stimulus yang disediakan di testbench.
Dokumen ini menjelaskan langkah-langkah yang perlu diambil saat menginstal Icarus di sistem Anda dan cara menjalankan simulasi yang sukses.
Menginstal Icarus Verilog
a. Instal versi terbaru Icarus Verilog (IVerilog) dari https://bleyer.org/icarus/
b. Pastikan untuk menambahkan IVerilog ke PATH dan biarkan menginstal GTKWave (Lihat Gambar 1)
c. Buka Go Configure Software dan pilih bagian: SLG47910(Rev BB) untuk membuka Forge Workshop (lihat Gambar 2).
d. Klik pada Editor FPGA di tengah toolbar di atas atau pengguna juga dapat mengklik dua kali pada struktur Inti FPGA di tengah jendela.
e. Jendela baru terbuka disebut Forge Workshop. Di toolbar menu di bagian atas, klik Opsi → Pengaturan. Di kotak dialog Pengaturan, buka Alat di bawah tab Pengaturan Pengguna. Hapus centang pada kotak Gunakan "lingkungan sistem" untuk Icarus Verilog dan GTKWave. Tambahkan jalur ke Iverilog dan GTKWave yang disimpan di sistem Anda ke tempat yang diberikan (lihat Gambar 4).
Anda sudah siap untuk mensimulasikan testbench dan langkah-langkah di atas memastikan bahwa GTKWave diluncurkan secara otomatis saat mensimulasikan testbench pada perangkat lunak Go Configure.
bangku tes
Langkah paling penting dalam keberhasilan implementasi sistem apa pun adalah memverifikasi desain dan fungsinya. Memverifikasi sistem yang kompleks setelah mengimplementasikan perangkat keras bukanlah pilihan yang bijaksana. Hal ini tidak efektif dalam hal uang, waktu, dan sumber daya. Oleh karena itu, dalam kasus FPGA, testbench digunakan untuk menguji kode sumber Verilog.
Misalkan kita mempunyai masukan sebesar 11 bit, dan kita ingin menguji perangkat untuk semua kemungkinan nilai kombinasi masukan yaitu (211). Karena jumlah kombinasinya sangat banyak, tidak mungkin untuk mengujinya secara manual. Dalam kasus seperti ini, testbench sangat berguna karena Anda dapat menguji desain secara otomatis untuk semua nilai yang mungkin dan karenanya, memastikan keandalan desain pengujian. Verilog Testbenches digunakan untuk mensimulasikan dan menganalisis desain tanpa memerlukan perangkat keras fisik apa pun.
Desain yang sedang diuji, disingkat DUT, adalah modul fungsionalitas yang dapat disintesis yang ingin kita uji. Dengan kata lain, desain sirkuitlah yang ingin kami uji. Kita dapat mendeskripsikan DUT kita menggunakan salah satu dari tiga gaya pemodelan di Verilog – Tingkat gerbang, Aliran Data, atau Perilaku.
Testbench tidak dapat disintesis, oleh karena itu digunakan untuk tujuan simulasi saja. Hal ini memungkinkan pengguna untuk menggunakan berbagai konstruksi Verilog misalnya, kata kunci seperti “untuk”, “$display” dan “$monitor” dll untuk menulis testbenches. Testbench sederhana akan membuat instance Unit Under Test (UUT) atau Device Under Test (DUT) dan menggerakkan input.
Memahami Testbench
Definisi Skala Waktu di Testbench
Saat melakukan simulasi, perangkat lunak perlu mengetahui bagaimana waktu telah ditentukan. Unit penundaan ditentukan menggunakan arahan `skala waktu, yang menentukan unit waktu dan presisi untuk modul yang mengikutinya. `Skala waktu membantu dalam menentukan apa arti #1 dalam kaitannya dengan waktu. # digunakan untuk menentukan penundaan yang akan dimasukkan ke dalam sistem sesuai dengan satuan waktu yang ditentukan dalam skala waktu. Jadi, #1 berarti penundaan 1 ns jika unit_waktu dalam ns.
Sintaksis:
`skala waktu / /
time_unit adalah jumlah waktu yang diwakili oleh penundaan #1. Basis time_precision mewakili berapa banyak titik desimal presisi yang akan digunakan relatif terhadap satuan waktu. (Lihat baris 23 pada Gambar 5)
Kita dapat menggunakan konstruksi skala waktu untuk menggunakan satuan waktu yang berbeda dalam desain yang sama. Pengguna perlu mengingat bahwa spesifikasi penundaan tidak dapat disintesis dan tidak dapat diubah menjadi logika perangkat keras. Fungsi penundaan sepenuhnya untuk tujuan simulasi. $waktu dan $waktu nyata fungsi sistem mengembalikan waktu saat ini dan format pelaporan default dapat diubah dengan tugas sistem lain $timeformat .
Exampsaya:
`skala waktu 10us/100ns
`skala waktu 1ns/1ps
#10 setel ulang = 1; // menunda sinyal sebesar 10 ns
#0.49 $display( “T = %0t pada Waktu #0.49”, $realtime) ;
Penundaan yang ditentukan adalah #0.49 yang kurang dari setengah satuan waktu. Namun, ketepatan waktu ditentukan menjadi 1ps dan karenanya simulator tidak boleh lebih kecil dari 1ns yang membuatnya membulatkan pernyataan penundaan yang diberikan dan menghasilkan 0ns. Jadi, pernyataan ini gagal memberikan penundaan apa pun.
Log Simulasi:
T = 1 pada Waktu #0.49
Deklarasi Modul
Deklarasi modul di testbench mana pun tidak seperti kode Verilog utama. Di testbench, modul dideklarasikan tanpa port terminal apa pun. (Lihat baris 25 pada Gambar 5)
Sintaksis:
modul ;
Deklarasi modul diikuti dengan pendefinisian sinyal input dan output yang ditentukan sebelumnya dalam desain utama file.
Kami menggunakan dua jenis sinyal untuk mengemudi dan memantau sinyal selama simulasi. Tipe data reg akan menyimpan nilai tersebut hingga nilai baru diberikan padanya. Tipe data ini hanya dapat diberi nilai pada blok selalu atau awal.
Tipe data kawat seperti koneksi fisik. Ini akan menyimpan nilai yang didorong oleh port, pernyataan penetapan, atau reg. Tipe data ini tidak dapat digunakan pada blok awal atau selalu. Deklarasi parameter dan integer apa pun juga dilakukan di bagian ini.
Exampsaya:
Reg a,b; // input dalam kode HDL didefinisikan sebagai reg di testbench
Kawat y; // sinyal keluaran dalam HDL didefinisikan sebagai kabel di testbench
Instansiasi DUT
Tujuan dari testbench adalah untuk memverifikasi apakah modul DUT kami berfungsi. Oleh karena itu, kita perlu membuat instance modul desain kita untuk menguji modul.
Sintaksis:
(. (sinyal1), . sinyal1>(sinyal2));
Exampsaya:
ALU d0 (.a(a), // sinyal “a” di ALU harus terhubung ke “a” di modul ALU_tb
.b(b), // sinyal “b” di ALU harus terhubung ke “b” di modul ALU_tb
.c(c)) ;// sinyal “c” di ALU harus terhubung ke “c” di modul ALU_tb
Kami telah membuat contoh modul DUT ALU ke modul pengujian. Nama instance (d0) adalah pilihan pengguna. Sinyal dengan titik “.” di depannya terdapat nama sinyal di dalam modul ALU, sedangkan kabel atau reg yang dihubungkannya di bangku tes berada di sebelah sinyal dalam tanda kurung (). Dianjurkan untuk mengkodekan setiap koneksi port dalam baris terpisah sehingga setiap pesan kesalahan kompilasi akan menunjuk dengan benar ke nomor baris di mana kesalahan terjadi. Karena hubungan ini dibuat berdasarkan nama, urutan kemunculannya tidak relevan.
Instansiasi DUT juga dapat dibuat untuk modul dimana modul testbench memiliki nama sinyal yang berbeda. Pemetaan sinyal yang benar adalah hal yang penting saat membuat instance.
Exampsaya :
ALU d0 (.a(A), // sinyal “a” di ALU harus terhubung ke “A” di modul ALU_tb
.clk(jam), // sinyal “clk” di ALU harus terhubung ke modul “jam” ALU_tb
.keluar(Keluar)) ; // sinyal “out” di ALU harus dihubungkan ke “OUT” di modul ALU_tb
Selalu & Blokir Awal di Testbench
Ada dua blok berurutan di Verilog, inisial dan selalu. Di blok inilah kita menerapkan stimulus.
Blok awal
Blok awal yang dieksekusi hanya sekali dan diakhiri ketika baris terakhir dari blok tersebut dieksekusi. Stimulus dituliskan pada blok awal. (Lihat baris 54-72 pada Gambar 5)
Sintaksis:
..
awal mula
$membuangfile();
$dumpvars();
..(masukkan stimulus)
akhir
blok awal memulai eksekusinya pada awal simulasi pada waktu t = 0. Dimulai dengan baris pertama antara awal dan akhir, setiap baris dieksekusi dari atas ke bawah hingga tercapai penundaan. Ketika penundaan tercapai, eksekusi blok ini menunggu hingga waktu penundaan (10 unit waktu) berlalu dan kemudian melanjutkan eksekusi.
Pengguna juga dapat menentukan rangsangan menggunakan loop (for, while, if-else) di dalam blok awal ini alih-alih memasukkan semua kombinasi secara manual.
Exampsaya :
Awal Awal
SEBUAH = 0; b = 0; // memulai eksekusi
#10 a = 0; b = 1; // eksekusi dilakukan pada t = 10 unit waktu
#10 a = 1; b = 0; // eksekusi dilakukan pada t = 20 unit waktu
akhir
Membuang Files
Hal lain yang perlu diingat adalah deklarasi $membuangfiles dan $dumpvars di dalam blok awal (lihat baris 55-56 pada Gambar 5). $membuangfile digunakan untuk membuang perubahan nilai jaring dan register di a file yang disebut sebagai argumennya.
Misalnyaampsaya:
$membuangfile(“alu_tb.vcd”);
akan membuang perubahan di a file bernama alu_tb.vcd. Perubahan tersebut dicatat dalam a file disebut VCD file yang merupakan singkatan dari dump perubahan nilai. VCD (dump perubahan nilai) menyimpan semua informasi tentang perubahan nilai. Kami tidak dapat memiliki lebih dari satu $dumpfile pernyataan dalam simulasi Verilog.
$ itudumpvars digunakan untuk menentukan variabel mana yang akan dibuang (di file disebutkan oleh $dumpfile). Cara paling sederhana untuk menggunakannya adalah tanpa argumen apa pun. Sintaks umum dari $dumpvars adalah
$dumpvars ( <, >);
Pada dasarnya kita dapat menentukan modul mana, dan variabel mana dalam modul yang akan dibuang. Cara paling sederhana untuk menggunakan ini adalah dengan mengatur level ke 0 dan nama modul sebagai modul teratas (biasanya modul testbench teratas).
$dumpvars(0, alu_tb);
Ketika level diatur ke 0, dan hanya nama modul yang ditentukan, SEMUA variabel modul tersebut dan semua variabel di SEMUA modul tingkat rendah yang dibuat oleh modul teratas ini akan dibuang. Jika ada modul yang tidak dipakai oleh modul teratas ini, maka variabelnya tidak akan tercakup. Satu hal lagi, deklarasi $membuangfile harus diletakkan sebelum $dumpvars atau tugas sistem lainnya yang menentukan dump. Tempat pembuangan sampah ini files harus dideklarasikan sebelum stimulus memasukkan yang lain, tidak ada nilai yang akan disimpan dalam dump ini files.
Selalu Blokir
Bertentangan dengan pernyataan awal, blok selalu dieksekusi berulang kali, meskipun eksekusi dimulai pada waktu t = 0. MisalnyaampMisalnya, sinyal clock sangat penting untuk pengoperasian rangkaian sekuensial seperti Flip-flop. Itu perlu disuplai terus menerus. Oleh karena itu, kita dapat menulis kode pengoperasian jam di testbench sebagai (lihat baris 52 pada Gambar 5):
selalu
#10 clk = ~clk;
modul akhir
Pernyataan di atas dieksekusi setelah 10 ns dimulai dari t = 0. Nilai clk akan dibalik setelah 10 ns dari nilai sebelumnya. Sehingga menghasilkan sinyal clock dengan lebar pulsa 20 ns. Oleh karena itu, pernyataan ini menghasilkan sinyal dengan frekuensi 50 MHz. Penting untuk diperhatikan bahwa, inisialisasi sinyal dilakukan sebelum blok selalu. Jika kita tidak melakukan bagian inisialisasi, sinyal clk akan menjadi x dari t – 0, dan setelah 10 ns akan dibalik ke x lainnya.
Meja Tes Pemeriksaan Mandiri
Testbench pemeriksaan mandiri menyertakan pernyataan untuk memeriksa status saat ini.
- $menampilkan tugas sistem terutama digunakan untuk menampilkan pesan debug untuk melacak aliran simulasi
awal mula
SEBUAH = 0 ; b = 0 ; c = 0; #10; // terapkan masukan, tunggu
jika( y ! == 1) dimulai
$display("000 gagal") ; //memeriksa
c = 1; #10 ; //terapkan masukan, tunggu
akhir
lain jika ( y ! == 0) dimulai
$display(“001 gagal”) // periksa
b = 1; c = 0; #10 ; akhir
lain jika(y!==0)
$display (“ 010 gagal”); //memeriksa
akhir
modul akhir
$menampilkan digunakan untuk menampilkan nilai variabel, string, atau ekspresi. Dari contoh di atasample, setiap kali salah satu loop if-else terpenuhi, maka log simulator akan menampilkan $ masing-masingmenampilkan penyataan. Ada baris baru secara default di akhir string.
$menampilkan (“waktu = %t , A = %b, B = %b, C = % b”, $waktu, A,B,C);
Karakter yang disebutkan dalam tanda kutip akan dicetak apa adanya. Huruf bersama dengan % menunjukkan format string. Kami menggunakan %b untuk mewakili data biner. Kita dapat menggunakan %d, %h, %o untuk masing-masing mewakili desimal, heksadesimal, dan oktal. %g digunakan untuk menyatakan bilangan real. Ini akan diganti dengan nilai di luar kutipan dalam urutan yang disebutkan. Misalnyaample, pernyataan di atas akan ditampilkan dalam log simulasi sebagai: waktu = 20, A = 0, B =1, C = 0
Meja 1. Format Tabel Verilog
Argumen | Keterangan |
%jam, %H | Tampilan dalam format Heksadesimal |
%d, %D | Tampilan dalam format desimal |
%b, %B | Tampilan dalam format biner |
%m, %M | Tampilkan nama hierarki |
%s, %S | Tampilkan sebagai string |
%t, %T | Tampilan dalam format waktu |
%f, %F | Tampilkan 'nyata' dalam format desimal |
%e, %E | Tampilkan 'nyata' dalam format eksponensial |
$menampilkan terutama mencetak data atau variabel sebagaimana adanya pada saat itu seperti printf di C. Kita harus menyebutkan $menampilkan untuk teks apa pun yang kita perlukan view dalam log simulasi.
- $waktu
$waktu adalah tugas sistem yang akan mengembalikan waktu simulasi saat ini.
- $memantau
$memantau akan memantau data atau variabel yang ditulisnya dan setiap kali variabel berubah, ia akan mencetak
nilai yang diubah. Ini mencapai efek serupa dengan memanggil $display setiap kali argumennya diterima
diperbarui. $memantau seperti tugas yang muncul untuk dijalankan di latar belakang thread utama yang memantau dan
menampilkan perubahan nilai variabel argumennya. $memantau memiliki sintaks yang sama dengan $menampilkan.
$memantau(“ waktu = %t, A = %b, B = %b, C = % b”, $waktu, A,B,C);
Dari Gambar 7 Anda dapat mengamati bahwa baris kode baru telah ditambahkan untuk mengevaluasi sendiri testbench. Penempatan $menampilkan dan $memantau pernyataan di bagian berbeda dari testbench akan menghasilkan hasil yang berbeda (lihat Gambar 8). $waktu disebutkan dalam pernyataan ini mencetak waktu di mana nilai tersebut dicetak. Pada saat yang sama satuannya katakanlah 170000, kita dapat melihat bagaimana ada perbedaan nilai A dan B karena $menampilkan dan $memantau pernyataan.
Perangkat Lunak GTKWave
GTKWave adalah gelombang GTK+ berfitur lengkap viewer untuk Unix, Win32, dan Mac OSX yang bertuliskan LXT, LXT2, VZT, FST, dan GHW files serta VCD/EVCD standar files dan mengizinkan mereka viewing. Ini resmi websitus berada di http://gtkwave.sourceforge.net/ . GTKWave adalah yang direkomendasikan viewer oleh alat simulasi Icarus Verilog.
Setelah pengguna berhasil membuat testbench untuk menguji fungsionalitas desain, pengguna sekarang dapat menggunakan perangkat lunak GTKWave untuk view bentuk gelombang.
Untuk meluncurkan perangkat lunak GTKWave ke view bentuk gelombangnya, pengguna perlu mengklik tombol Simulate Testbench di bagian atas toolbar atau dari menu utama Tools→Simulate→ Simulate Testbench. Jika tidak ada kesalahan sintaksis maka tergantung pada desainnya, GTKWave akan diluncurkan secara otomatis atau hasil rangsangan di meja tes akan ditampilkan di bagian Logger di jendela.
Perangkat lunak GTKWave membuka dump format .vcdfile secara otomatis. Jendela GTKWave tidak menampilkan bentuk gelombang saat dibuka. Ini memberi pengguna kesempatan untuk memilih sinyal mana yang diinginkannya view dan amati. Untuk memilih sinyal, pengguna perlu menampilkannya, pengguna perlu mengklik nama modul/instance mereka di sisi kiri jendela di bawah tab SST. Dengan mengklik + pada setiap instance, Anda dapat melihat sinyal yang terkait dengan instance tersebut di bagian bawah. Kemudian Anda dapat drag & drop sinyal yang diinginkan atau klik dua kali sinyal tersebut untuk ditampilkan di jendela Sinyal. Anda juga dapat memilih semua (CTRL + A) dan menempelkannya ke jendela sinyal (lihat Gambar 9).
Sinyal sekarang ditambahkan ke jendela sinyal namun belum disimulasikan. Setelah menambahkan sinyal yang diinginkan ke jendela sinyal, klik untuk menyesuaikan sinyal dengan lebar jendela saat ini dan kemudian memuat ulang sinyal dari memuat ulang
simbol yang ada pada toolbar. Anda sekarang dapat melihat sinyal dengan nilainya masing-masing.
Nilai Sinyal
Secara default, nilai sinyal dalam format heksadesimal dan semua gelombang berwarna hijau (jika berjalan dengan benar).
Pengguna dapat mengubah properti sinyal ini dengan mengklik kanan sinyal dan memilih Format Data atau Format Warna. Pengguna juga dapat memasukkan sinyal kosong untuk membuat bagian di antara kelompok sinyal. Ketika Anda mendapatkan hasil optik yang diinginkan, Anda dapat menyimpan konfigurasi Anda dengan membuka File → Tulis Simpan File.
Bilah Alat GTKWave
Toolbar (lihat Gambar 10) memungkinkan pengguna untuk melakukan fungsi dasar sinyal. Mari kita bahas setiap pilihan pada toolbar dari kiri ke kanan.
- Opsi Menu: Di bawah opsi ini kita bisa view semua berbagai fitur perangkat lunak yang dapat digunakan untuk bermain-main dengan perangkat lunak. Detail pada opsi menu ini tercakup dalam Bagian 8 panduan pengguna ini.
- Potong Jejak: Digunakan untuk menghapus/memotong sinyal pilihan dari jendela sinyal
- Salin Jejak: Digunakan untuk menyalin sinyal yang dipilih dari jendela sinyal
- Tempel Jejak: Jejak yang disalin/dipotong dapat ditempel di lokasi berbeda di jendela sinyal
- Perbesar Pas: Digunakan untuk menyesuaikan sinyal sesuai dengan ukuran jendela yang dipilih pengguna untuk ditampilkan
- Perbesar: Digunakan untuk memperbesar jendela sinyal
- Perkecil: Digunakan untuk memperkecil jendela sinyal
- Perbesar Batalkan: digunakan untuk membatalkan zoom in/out pada jendela sinyal
- Perbesar untuk Memulai: ini akan memperbesar jendela sinyal, menampilkan waktu mulai sinyal.
- Perbesar hingga Akhir: ini akan memperbesar jendela sinyal yang menampilkan waktu berakhirnya sinyal
- Temukan tepi sebelumnya: Ini menggeser penanda ke sisi kiri yang menunjukkan tepi sebelumnya
- Temukan tepi berikutnya: Ini menggeser penanda ke kanan yang menunjukkan tepi berikutnya
- Gulir obligasi bawah/atas: dengan menggunakan ini kita dapat mengatur jangka waktu yang ingin ditampilkan pengguna. Misalnyaampmisalnya, kita dapat mengatur kerangka waktu ke 0 detik hingga 500 ns, ini hanya akan menampilkan sinyal dalam durasi tersebut.
- Muat ulang: Reload ditekan setiap kali ada perubahan pada sinyal yang ditampilkan. Ini akan memuat ulang dan menampilkan sinyal sesuai dengan parameter baru. MisalnyaampMisalnya, setelah mengubah kerangka waktu sinyal, kita perlu memuat ulang sinyal untuk menampilkan sinyal dalam kerangka waktu yang baru.
Opsi Menu
Dari pojok kiri atas perangkat lunak GTKWave, pengguna dapat mengakses opsi menu dengan mengklik tiga garis vertikal (lihat Gambar 11). Pengguna dapat menemukan opsi berikut di bawah opsi Menu:
File
Itu File submenu berisi berbagai item yang berhubungan dengan pengaksesan files, ekspor-impor VCD files, mencetak, dan membaca/menulis files dan keluar.
Sunting
Submenu Edit digunakan untuk melakukan berbagai fungsi utilitas seperti mengubah representasi data nilai dalam subjendela gelombang. Dengan menggunakan opsi pada submenu Edit, pengguna dapat mengubah format data sinyal, menyusun ulang, menggeser, memotong, menyorot, mengelompokkan sinyal, mengomentari sinyal, mengubah warna sinyal, dll.
Pencarian
Submenu Pencarian digunakan untuk melakukan pencarian pada nama dan nilai bersih. Ini membantu untuk menjalankan fungsi pada tingkat hierarki sinyal dan instance yang berbeda dalam VCD file.
Waktu
Submenu waktu berisi superset fungsi yang dilakukan oleh tombol Navigasi dan Panel Status.
Ini memungkinkan fungsi sederhana yang berhubungan dengan waktu seperti memperbesar, berpindah ke titik waktu tertentu, menggeser sinyal ke arah tertentu, dll.
Penanda
Submenu penanda digunakan untuk melakukan berbagai manipulasi pada penanda serta mengontrol pengguliran ke luar layar.
Ini memungkinkan fungsionalitas menambahkan banyak penanda pada jendela sinyal. Maksimal 26 penanda nama diperbolehkan dan waktu untuk semuanya harus berbeda.
a. Untuk menambahkan Penanda di jendela sinyal
Klik kiri pada titik yang diperlukan di mana Anda ingin Penanda ditempatkan dan tekan ALT + N. Ini akan menempatkan penanda bernama (A,B,C, dll.) pada titik yang diperlukan. Pengguna dapat terus melakukan ini untuk 26 lokasi waktu berbeda.
Untuk membandingkan nilai waktu di semua penanda tempat, Menu → Penanda → Tampilkan Data Penanda Perubahan.
Ini akan membuka jendela dengan nilai waktu pada setiap Penanda. Pengguna dapat secara manual mencatat nilai waktu pada setiap penanda yang ditempatkan dan menguranginya untuk menghitung perbedaan waktu antara 2 penanda.
b. Untuk menghapus Marker di jendela sinyal
Pengguna dapat membuka Menu → Penanda → Kumpulkan Penanda Bernama. Ini akan menghapus Penanda bernama terakhir yang ditempatkan di jendela sinyal. Pengguna dapat menghapus semua Penanda bernama dengan membuka Menu → Penanda → Kumpulkan Semua Penanda Bernama (Gambar 12).
Pada Gambar 13, kita dapat melihat bagaimana warna sinyal diubah. Anda juga dapat mengamati Sinyal Kosong yang ditambahkan ke jendela sinyal dengan komentar – Sinyal Kosong.
Perhatikan juga keberadaan 6 Penanda Bernama (A – E) dan perhitungan nilai waktu antara Penanda tersebut di ps.
View
Itu View submenu digunakan untuk mengontrol berbagai atribut yang berhubungan dengan rendering grafis item status serta nilai dalam subjendela sinyal. Dari menu ini, Anda dapat mengubah jendela sinyal menjadi Hitam Putih atau berwarna juga. Itu View submenu juga memungkinkan Anda mengubah Dimensi waktu mulai dari detik (detik) hingga ficodetik (fs). Pengguna dapat menemukan opsi ini View → Skala ke Dimensi Waktu → fs.
Membantu
Submenu bantuan berisi pilihan untuk mengaktifkan bantuan online serta menampilkan informasi versi program.
Kesimpulan
Dokumen ini dibuat untuk membantu pengguna agar berhasil mensimulasikan desain mereka dan memverifikasi fungsionalitas dengan mengoreksi penyusunan testbench yang diperlukan dan menggunakan Icarus Verilog bersama dengan GTKWave untuk menampilkan bentuk gelombang dan mengamati hasilnya.
Riwayat Revisi
Revisi | Tanggal | Keterangan |
1.00 | 20 Mei 2024 | Rilis awal. |
R19US0011EU0100 Rev.1.0
20 Mei 2024
© 2024 Renesas Elektronik
Dokumen / Sumber Daya
![]() |
Simulasi Perangkat Lunak RENESAS ForgeFPGA [Bahasa Indonesia:] Panduan Pengguna REN_r19us0011eu0100, Simulasi Perangkat Lunak ForgeFPGA, Perangkat Lunak ForgeFPGA, ForgeFPGA, Simulasi ForgeFPGA, Simulasi Perangkat Lunak, Simulasi, Perangkat Lunak |