This is a beginner friendly tutorial repository to learn verilog easily with all the basics that are required to get started for this language. Also, this repository is read only and is not currently being maintained by the author .
Verilog is a hardware language which is a concurrent, case-sensitive and synthesizable language. Examples of such languages are VHDL( VHSIC(Very High Speed Integrated Circuit) HDL). It is vendor independent for example, Xilinx, Verywell etc.Full form verilog is Verify Logic. It is used for Digital ICs not for Analog ICs.It uses gate level design abstraction. It was made at Gateway Design Automation and now is IEEE 1364-2001 standard. HDL came to help with the verification of design of complex circuits that are in place. Also, logic synthesis tools can convert design to any fabrication technology.
Now, verilog's basic building block is a module that provides information about input and output ports but hides internal implementation.
Two primary data-types are as follows :
Other data-types are :
Integers, Arrays, Memories, Parameters, Strings are few other data types.
ex 1 : module pos_map(q,clk,rst)
output[1:0] q;
input clk, rst;
tflipflop lab0(q[0], clk, rst);
tflipflop lab1(q[1], clk, rst);
end
ex 2 : module nom_map(q,clk,rst)
output[1:0] q;
input clk, rst;
tflipflop lab0(.q(q[0]), .clk(clk), .rst(rst));
tflipflop lab1(.q(q[0]), .clk(clk), .rst(rst));
end
Comments : // for single line comment and /* ... */ multiple comment lines.
$display vs $monitor : $dispay is used to display immediate value of variables. It gets executed in an active region. $monitor gets executed whenever the value of the given variable changes in it. It gets executed in the postponed region. Monitor is required only once to be written.
and 










and 

and 


