FUNDAMENTALS OF DIGITAL IC DESIGN:
- In digital circuits, the real world data is converted to binary data (1 and 0) using mathematical formulas. 1 can be represented as Positive Voltage, and 0 can be represented as Negative or Ground Voltage.
- Types of Digital Circuits:
- Sequential - Output value depends on the present value as well as on the past input value of the circuit, "with memory".
- Combinational - Output value depends only on the present input value, "without memory".
- Building blocks of Digital Circuits are:
- Logic Gates - AND, OR, NOT, XOR, XNOR, NAND, NOR
- Flip-Flops - The memory cells.
- All logic gates and flip-flops are built using only Transistors.
IC MANUFACTURING CYCLE:
- Architecture Specification:
- Idea
- Unit, Block and System level
- Digital Design (RTL) and Verification (Front End)
- Physical Design (Circuit/Layout) and Verification (Back End)
- Gate level netlist
- Physical Implementation
- GDSII
- Ready to go to plants (Tape out)
- IC manufacturing (manufacturing cycles), packing and final testing
- Product release: Chip
VERILOG:
- Developed by Gateway Design in 1984 which was acquired by Cadence Design Systems in 1989.
- Verilog HDL is now maintained by a non-profit organization called Accellera.
- Language Reference Manual (LRM): The IEEE Verilog standard document - 1364.
- Revision: 1995, 2001 and 2005.
- Enumeration is not available.
- No OOP support.
SYSTEM VERILOG:
- Developed by Accellera as an extension of Verilog: IEEE 1800 standard in 2005.
- Has enhanced verification capabilities, supporting OOP for verification.
- Enumeration available.
FIRST SYSTEM VERILOG PROGRAM: ADDER
Fig: 8-Bit Full Adder |
module adder (a,b,c_in,c_out,sum);
input [7:0] a;
input [7:0] b;
input [7:0] c_in; //> PORT DECLARATION
output [7:0] c_out;
output [7:0] sum;
logic [8:0] result; //> INTERNAL SIGNALS
assign result=a+b+c_in;
assign sum=result[7:0]; //> FUNCTIONALITY
assign c_out=result[8];
endmodule: adder
In this program, 'result' has been declared as an internal variable which has been assigned 9 bits i.e. [8:0].
* To write a RTL design code, the code has to be written in a synthesizable manner.
input [7:0] a;
input [7:0] b;
input [7:0] c_in; //> PORT DECLARATION
output [7:0] c_out;
output [7:0] sum;
logic [8:0] result; //> INTERNAL SIGNALS
assign result=a+b+c_in;
assign sum=result[7:0]; //> FUNCTIONALITY
assign c_out=result[8];
endmodule: adder
In this program, 'result' has been declared as an internal variable which has been assigned 9 bits i.e. [8:0].
* To write a RTL design code, the code has to be written in a synthesizable manner.
Comments
Post a Comment