📘 Introduction to Verilog

Verilog is a Hardware Description Language (HDL) used to model digital systems such as logic gates, processors, and memory. This platform provides a complete self-learning roadmap.

🔹 Basics

module AND_Gate(input A, input B, output Y);
  assign Y = A & B;
endmodule
▶ Run on EDA Playground

module NAND_Gate(input A, input B, output Y);
  assign Y = ~(A & B);
endmodule

module EXNOR_Gate(input A, input B, output Y);
  assign Y = ~(A ^ B);
endmodule

🔹 Combinational Logic

Examples: Multiplexers, Demultiplexers, Encoders, Decoders, Adders, Subtractors.

// 2:1 Multiplexer
module MUX2to1(input A, input B, input Sel, output Y);
  assign Y = (Sel) ? B : A;
endmodule

🔹 Sequential Logic

Examples: Latches, Flip-Flops, Counters, Shift Registers.

// D Flip-Flop
module DFF(input D, input CLK, output reg Q);
  always @(posedge CLK)
    Q <= D;
endmodule

🔹 Testbenches

module tb_AND_Gate;
  reg A, B;
  wire Y;

  AND_Gate uut(.A(A), .B(B), .Y(Y));

  initial begin
    $monitor("A=%b B=%b -> Y=%b", A, B, Y);
    A=0; B=0; #10;
    A=0; B=1; #10;
    A=1; B=0; #10;
    A=1; B=1; #10;
    $finish;
  end
endmodule

🔹 FPGA Implementation

To implement on FPGA, synthesize your Verilog code using Xilinx Vivado, Intel Quartus, or open-source Yosys.

🔹 Advanced

Topics: ALU design, Finite State Machines (FSM), Pipelining, Memory (RAM/ROM), Custom CPU design.

📝 Quizzes

Take Quiz