Introduction

I consider this blog as a platform to share my thoughts and Verilog coding experience. As many of the aspirants want to develop a digital system using Verilog coding, I would like to explain the design concept in a very very simple manner with some illustration and lot of example that we go through day to day life. I believe in simplicity. I am writing this blog as simple as for students who pursue electronics bachelors degree. So I hope this blog would help them to do projects with Verilog, bringing up of FPGA with custom logic and to explore Soc designs.

I would recommend some simple pre-requisites for the readers to understand.
  1. Number System
    • Binary, Hexadecimal, Decimal and its conversions between them.
    • Ones complement number system, 2's complement number system, gray code, BCD
  2. Basic Digital Design ( Combinational and Sequential )
    • Gates - Basic Gates and Universal Gates, flip flops
    • Mux, Decoders, Encoders, Shifters
    • Adder, Multiplier, Comparators.
    • State machines
These are the basics knowledge you want to code in Verilog.

In Verilog, we are making electronics hardware by means of coding. As we look back into the history of electronics, engineers tried to make logic design by drawing the circuit with transistor structures and they have connected using wires. So it was so hard to test. so they made breadboard(dotted boards) to test their devices working. After that, they have used PCBs to build their digital system. Along with that Moore's law also strictly obeyed in VLSI domain. After this age of computers came. An era of Computer Aided Design (CAD) has risen and Engineers began to build their digital design in computers. Thus Hardware Description Language is used for developing the digital system in VLSI domain. VHDL and Verilog are the most commonly used  HDL in VLSI.

So what is the difference between the Verilog language and normal programming language(like C)??? I do ask students this question before starting the session. Even students who started doing experiments with Verilog would fail to answer. C is used to program a computer or a system having a microprocessor.Verilog is a modeling language. It is used to model hardware behavior, so that it may be simulated. It will fall into the category of High-level language, but it not a programming language. C program gives us the output of mathematical calculations. But the output of Verilog code will be a digital circuit (After Synthesis). For Example, if you do addition in C Program, we could give two input to the processor, which will give added output back. But if you write an "addition" code in Verilog code, after synthesis you will get an adder circuit as such. You can fabricate this adder to an IC chip. You have to understand  VLSI design flow very very well before doing Verilog coding.

Comments