Menu
CoddyTech

Penerusan Baca-Tulis

Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 24 dari 38.

Antarmuka memori harus menentukan perilaku baca/tulis pada alamat yang sama. Forwarding secara eksplisit memilih data tulis yang masuk saat terjadi benturan, sehingga menghasilkan perilaku data baru. Tanpa bypass tersebut, templat pembacaan nonblocking sebelumnya menangkap data lama. Mode memori perangkat berbeda-beda, jadi semantik simulasi saja tidak menjamin pemetaan primitif tertentu.

Kutipan yang relevan; deklarasi dan koneksi di sekitarnya disediakan dalam tantangan.

if(re) begin
    if(we && waddr==raddr) q <= data;
    else q <= mem[raddr];
end

Jalur bypass memilih word yang masuk hanya saat terjadi tabrakan alamat yang sebenarnya.

Tentukan perilaku tabrakan secara eksplisit dan verifikasi perilaku tersebut terhadap mode memori perangkat keras yang dipilih.

challenge icon

Tantangan

Sedang

Implementasikan memori empat kata dengan pembacaan terdaftar dan penerusan data baru. Aturan penulisan dan reset/pengaktifan baca sama seperti pada pelajaran sebelumnya. Saat pembacaan diaktifkan dan berbenturan dengan penulisan yang diaktifkan ke alamat yang sama, q menangkap data masuk, bukan kata lama. Untuk pembacaan lainnya, q menangkap mem[raddr]. Kolom output: q. Semua kontrol dan data stabil sebelum setiap tepi naik clock; hasil diamati setelahnya.

Lengkapi design.v dan pertahankan nama module serta port-nya. testbench.v yang dikunci menyediakan perubahan input dan mencetak output setelah stabil. Testbench memilih skenario menggunakan argumen simulator seperti +CASE=1; input standar tidak diperlukan. Jangan tambahkan pencetakan, delay, atau penghentian simulasi ke design. Output yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan dengan satu spasi dan diakhiri dengan baris baru.

Coba sendiri

module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr, input [7:0] data, output reg [7:0] q);
    // Ganti placeholder ini dengan desainmu.
    initial q = 0;
endmodule
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Desain dan Verifikasi RTL

Latihan sendiri: Compiler Verilog online