Akumulasikan Sampel
Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 31 dari 38.
Buat monitor yang dapat digunakan kembali untuk aliran sampel unsigned. Kamu akan mengakumulasi nilai, mengikuti kontrol enable dan clear, menghitung sampel yang diterima, serta melaporkan apakah ambang batas telah tercapai. Kelima langkah menggunakan antarmuka module dan testbench terkunci yang sama. Output yang dicadangkan akan mendapatkan perilakunya pada langkah berikutnya.
Tantangan
SulitBangun satu Sample Monitor dalam lima langkah. Pada setiap tepi naik, rst sinkron mengosongkan total; jika tidak, tambahkan data unsigned ke total. Gunakan register total 16-bit. Pada langkah pertama ini, en dan clear tidak digunakan, dan skenario mempertahankan en=1 dan clear=0. count dan alarm adalah output cadangan yang tetap bernilai nol. Semua nilai input diketahui. Skenario berisi paling banyak 40 tepi, sehingga total muat dalam 16 bit. Testbench tetap mencetak total untuk skenario 1-9, total dan count untuk skenario 10-12, serta total, count, dan alarm untuk skenario 13-15. Hanya skenario yang diaktifkan untuk langkah ini yang dinilai.
Lengkapi design.v dan pertahankan nama module serta port-nya. testbench.v yang terkunci menyediakan perubahan input dan mencetak output setelah nilainya stabil. Testbench memilih skenario menggunakan argumen simulator seperti +CASE=1; input standar tidak diperlukan. Jangan tambahkan pencetakan, jeda, atau penghentian simulasi ke design. Output yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan satu spasi dan diakhiri dengan baris baru.
Coba sendiri
module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
initial begin total=0;count=0;end
assign alarm=0;
endmoduleSemua pelajaran di Desain dan Verifikasi RTL
1RTL Kombinasional yang Andal
Nilai Default Mencegah LatchEncoder PrioritasValidasi One-HotDekode Case yang AmanRangkuman: Router Permintaan4RTL Sekuensial Terkendali
Prioritas Reset dan EnablePencacah SaturasiPipeline Data dan ValidMendeteksi Tepi pada SampelRingkasan: Pencacah Peristiwa7Proyek: Pemantau Sampel
Akumulasikan SampelTerima Sampel Aktif2Lebar Bit dan Aritmetika Bertanda
Mempertahankan Bit CarryPerbandingan BertandaPergeseran Kanan AritmetikaOverflow dan SaturasiRangkuman, Selisih Bertanda3RTL yang Dapat Digunakan Kembali
Fungsi KombinasionalParameter yang Aman terhadap LebarGenerate loopGenerate dengan KondisiRingkasan: Masker Bit yang Dapat Digunakan Kembali6Testbench dengan Pemeriksaan Mandiri
Pemeriksaan Empat KeadaanTask Checker yang Dapat Digunakan UlangModel Referensi dan SkorCakupan Batas dan KontrolRangkuman: Audit PenjumlahLatihan sendiri: Compiler Verilog online