Register Geser
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 86 dari 90.
Tantangan
shift register menggeser data dari kiri ke kanan pada setiap tepi clock. Setiap bit berpindah ke posisi berikutnya.
Cara Kerja shift register 4-bit
Initial: q0=0, q1=0, q2=0, q3=0
Each clock: q0 = d, q1 = old q0, q2 = old q1, q3 = old q2
Shifting in d = 1, 0, 1, 0:
Clock 1 (d=1): q0=1, q1=0, q2=0, q3=0
Clock 2 (d=0): q0=0, q1=1, q2=0, q3=0
Clock 3 (d=1): q0=1, q1=0, q2=1, q3=0
Clock 4 (d=0): q0=0, q1=1, q2=0, q3=1Setelah 4 siklus clock, bit input pertama mencapai q3.
Antarmuka Module
| Port | Arah | Lebar | Deskripsi |
|---|---|---|---|
clk | input | 1 bit | Sinyal clock |
reset | input | 1 bit | Atur ulang semua output ke 0 |
d | input | 1 bit | Input data |
q0 | output | 1 bit | Output flip-flop pertama |
q1 | output | 1 bit | Output flip-flop kedua |
q2 | output | 1 bit | Output flip-flop ketiga |
q3 | output | 1 bit | Output flip-flop keempat |
Tugasmu adalah melengkapi module di bawah ini.
Yang harus dilakukan:
- Saat
reset, atur semua output ke 0 - Pada setiap tepi naik clock, geser data dari kiri ke kanan:
q0menerimadq1menerimaq0lamaq2menerimaq1lamaq3menerimaq2lama
Coba sendiri
module shift_register (
input clk,
input reset,
input d,
output reg q0,
output reg q1,
output reg q2,
output reg q3
);
// TODO: Tambahkan always @(posedge clk or posedge reset)
// Saat reset: q0<=0, q1<=0, q2<=0, q3<=0
// Jika tidak: geser data: q0 <= d, q1 <= q0, q2 <= q1, q3 <= q2
endmodule
Semua pelajaran di Dasar-Dasar
1Pengantar
Apa Itu VerilogPerangkat Keras vs Perangkat LunakModul PertamamuKomentarTingkat Abstraksi Desain4Operator Bagian 1
Operator AritmetikaOperator ModuloOperator PerbandinganUlasan, Matematika SederhanaOperator Bitwise7Penugasan dan Gerbang
Penugasan KontinuPenugasan dengan OperatorPrimitif Gerbang BawaanGerbang AND, OR, NOTGerbang XOR, XNORUlasan: Rangkaian Gerbang Logika10Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Komparator SederhanaPernyataan CaseCasex dan CasezRangkuman: Desain ALU5Operator Bagian 2
Operator LogikaOperator ReduksiOperator GeserOperator PenggabunganOperator KondisionalRangkuman, Tantangan Operator3Sistem Bilangan
Representasi BinerBilangan BerukuranBilangan Tanpa UkuranBilangan NegatifNilai Khusus X dan ZRingkasan: Format Bilangan6Modul
Struktur ModulPort Input dan OutputPort InoutInstansiasi ModulPemetaan Port Berdasarkan NamaPemetaan Port Berdasarkan UrutanRangkuman: Bangun Modul9Blok Prosedural
Blok alwaysBlok initialDaftar SensitivitasPenugasan BlockingPenugasan Non-BlockingRangkuman: always vs initial15Pengendali Lampu Lalu Lintas
Menentukan StatusLogika Mesin StatusLatihan sendiri: Compiler Verilog online