Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Verilog

Counter Johnson 4-Bit dalam Verilog: Desain, Testbench & Simulasi

Desain

Counter Johnson, juga dikenal sebagai switch-tail ring counter, adalah variasi ring counter di mana output terbalik (inversi) disambungkan kembali ke input. Ini menghasilkan urutan bit yang lebih panjang dibandingkan ring counter standar. Modul berikut mengimplementasikan counter Johnson 4-bit dengan parameter lebar yang dapat disesuaikan.

module johnson_ctr #(parameter WIDTH=4) ( input clk, input rstn, output reg [WIDTH-1:0] out ); always @ (posedge clk) begin if (!rstn) out <= 1; else begin out[WIDTH-1] <= ~out[0]; for (int i = 0; i < WIDTH-1; i=i+1) begin out[i] <= out[i+1]; end end end endmodule

Testbench

Testbench berikut digunakan untuk memverifikasi perilaku counter Johnson selama berbagai siklus clock setelah lepas dari reset.

module tb; parameter WIDTH = 4; reg clk; reg rstn; wire [WIDTH-1:0] out; johnson_ctr u0 (.clk (clk), .rstn (rstn), .out (out)); always #10 clk = ~clk; initial begin {clk, rstn} <= 0; $monitor ("T=%0t out=%b", $time, out); repeat (2) @(posedge clk); rstn <= 1; repeat (15) @(posedge clk); $finish; end endmodule

Log Simulasi

ncsim> run T=0 out=xxxx T=10 out=0001 T=50 out=0000 T=70 out=1000 T=90 out=1100 T=110 out=1110 T=130 out=1111 T=150 out=0111 T=170 out=0011 T=190 out=0001 T=210 out=0000 T=230 out=1000 T=250 out=1100 T=270 out=1110 T=290 out=1111 T=310 out=0111 Simulation complete via $finish(1) at time 330 NS + 0

Verilog

  1. Menguasai Verilog: Tutorial Lengkap untuk Desain Sirkuit Digital
  2. Menguasai Konkatenasi Verilog: Panduan Praktis
  3. Memahami Penugasan Verilog: Jenis, Sintaks, dan Praktik Terbaik
  4. Perbedaan Kunci Penugasan Blokir dan Non-Blokir Verilog
  5. Menguasai Fungsi Verilog untuk Desain RTL yang Efisien
  6. Memahami Tugas Verilog: Fungsi vs Tugas, Sintaks, dan Penggunaan
  7. Generator Jam Verilog: Panduan Desain dan Implementasi
  8. Menguasai Fungsi Matematika Verilog untuk Desain Perangkat Keras yang Efisien
  9. Menguasai $timeformat Verilog: Kontrol Presisi dan Tampilan
  10. Desain Counter Mod-N Verilog: Modul Terparameter dan Testbench