SlideShare a Scribd company logo
Bapuji Educational Association ®
BAPUJI INSTITUTE OF ENGINEERING AND TECHNOLOGY DAVANGERE, KARNATAKA-577004
DEPARTMENT OF
ELECTRONICS & COMMUNICATION ENGINEERING
Internship Progreess Presentation
On
“VLSI Design and Verification”
Presented by,
ABHISHEK S SHINGADI
(4BD22EC400)
Dr.G SUNITHA
M.Tech. (DEAC), Ph.D., MISTE, FIETE., FIE
Program Coordinator
Dr. KIRAN KUMAR G H
M.Tech. Ph.D.
Internship Guide 1
BAPUJI INSTITUTE OF ENGINEERING AND TECHNOLOGY,
DAVANGERE-577004
Vision
To be a centre of excellence recognized nationally and internationally, in distinctive areas of engineering education and research,
based on a culture of innovation and invention.
Mission
BIET contributes to the growth and development of its students by imparting a broad based engineering education and
empowering them to be successful in their chosen field by inculcating in them positive approach, leadership qualities and
ethical values.
2
To be in the forefront in providing quality technical education and research in
Electronics & Communication Engineering to produce skilled professionals to cater to
the challenges of the society.
Mission of theDepartment
M1: To facilitate the students with profound technical knowledge through
effective teaching learning process for a successful career.
M2: To impart quality education to strengthen students to meet the industry
standards and face confidently the challenges in the programme.
M3: To develop the essence of innovation and research among students and
faculty by providing infrastructure and a conducive environment.
M4: To inculcate the student community with ethical values, communication
skills, leadership qualities, entrepreneurial skills and lifelong learning to meet the
societal needs.
Vision of the Department
COURSE LEARNING OBJECTIVES
This course will enable us to:
1. Experience a real-life engineering workplace and understand how their engineering
knowledge and skills can be utilized in Industry.
2. Expose to the current Technological trends relevant to the field of training.
3. To enhance communication skills, teamwork capabilities and develop professional
behaviour.
4. Use Internship experience to develop their engineering skills and practices that boost
their employability.
5. Gain experience in writing technical/projects reports and expose students to the
engineer’s responsibilities and ethics.
Contents
1. Introduction
2. WORK CARRIED OUT IN FIRST WEEK
3. WORK CARRIED OUT IN SECOND WEEK
4. WORK CARRIED OUT IN THIRD WEEK
5. WORK CARRIED OUT IN FIRST WEEK
Introduction
BASIC INFORMATION OF VERILOG
● Verilog is a hardware description language used for developing code that
describes digital systems and circuits.
● For the design and verification of digital and mixed-signal systems, Verilog is
frequently utilized including both application-specific integrated circuits (ASICs)
and field-programmable gate arrays (FPGAs).
● Developed by Gateway Design Automation and later acquired by Cadence Design
Systems
Hardware Modeling
There are two fundamental aspects of any piece of hardware:
Behavioral
The behavioral aspects tells us about the behavior of hardware. What is its functionality
and speed (without bothering about the constructional and operational details).
Structural
The structural aspect tells us about the hardware construction. The design is comprised of
which parts and how the design is constructed from these parts i.e. how they have been
interconnected.
VLSI Design Methodology
Modeling Styles
Verilog is both, behavioral and structural language. Designs in Verilog can be described
at all the four levels of abstraction depending on needs of design.
Behavioral Level: - Used to model behavior of design without concern for the
hardware implementation details. Designing at this level is very similar to C
programming.
Dataflow Level [RTL]: - Module is specified by specifying the data flow. The
designer is aware of how the data flows between registers.
Gate Level: - Module is implemented in terms of logic gates & interconnections
between them. Design at this level is similar to describing design in terms of gate level
logical diagram.
Switch Level: - lowest level of abstraction provided by Verilog. Module can be
implemented in terms of switches, storage nodes & interconnection between them.
Verilog Module Declaration
Elements of Verilog Module
Gate Level Half Adder
Gate Level Half Adder Dataflow Level Half Adder Behavioral Level Half Adder
/ Adder Module
module
half_adder(sum,carry,A,B);
output sum;
output carry;
input A, B;
xor my_xor(sum,A,B);
and my_and(carry,A,B);
endmodule
// Adder Module
module
half_adder(sum,carry,A,B);
output sum;
output carry;
input A, B;
assign sum = (~A&B) +
(A&~B);
assign carry = A&B;
endmodule
/ Adder Module
module
half_adder(sum,carry,A,B);
output sum; reg sum;
output carry; reg carry;
input A, B;
always @(A or B)
begin
{carry, sum} = A + B;
end
endmodule
Case Sensitivity in Variable Names
module case_sensitivity_example;
reg data; // Lowercase variable
reg Data; // CamelCase variable (distinct from 'data')
reg DATA; // All uppercase variable (distinct from 'data' and 'Data')
initial begin
data = 1'b0; // Assign to 'data'
Data = 1'b1; // Assign to 'Data'
DATA = 1'b0; // Assign to 'DATA'
end
endmodule
Case Sensitivity in Keywords
All keywords must be in LOWER case i.e., the language is case sensitive
Module top; // Incorrect: 'Module' should be in lowercase 'module’
Endmodule // Incorrect: ‘Endmodule' should be in lowercase 'module’
Syntax & Semantics
VLSI Data Types
1.Physical Data Types
2.Abstract (Register) Data Types
3.Constants
1.Physical Data Types
▪ “wor” performs “or” operation on multiple driver logic. E.g. ECL circuit
▪ “wand” performs “and” operation on multiple driver logic. E.g. Open collector
output
▪ “trior” and “triand” perform the same function as “wor” and “wand”, but model
outputs with
resistive loads.
2.Abstract (Register) Data Types
Vector:- A vector in Verilog is a collection of bits, and it can represent multi-bit signals such
as buses or registers..
reg: {size = 1-bit, default value = 1’bx, type = unsigned}
String:- there isn't a dedicated string data type for storing strings directly. However, you can
use character arrays (or reg arrays) to store sequences of characters,
which can be treated as strings. Each character can be stored as a single bit or a multi-bit
representation, typically using 8 bits for ASCII characters
Integer:- The integer data type in Verilog is used to represent signed integer values. It is a
built-in data type that provides a way to store
whole numbers, which can be both positive and negative.
real:- The real data type is used to represent floating-point numbers, which can hold decimal
values.
3.Constants
▪ Constants can be defined in a module by the keyword parameter.
▪ Thus, can not be used as variables.
▪ Improves code readability
Parameter:- in Verilog. Parameters allow you to define constants that can be used throughout your
module, making your code more flexible and easier to maintain.
defparam:- The defparam statement in Verilog is used to override parameter values defined in a
module instantiation. It allows you
to specify different values for parameters at the time of module instantiation without modifying the
original module.
Gate level modelling and Concept Wire
• Verilog language provides basic gates
as built-in Primitives as shown.
• Since they are predefined, they do
not need module definition.
• Primitives available in Verilog.
i. Multiple input gates: and,
nand, or, nor, xor, xnor
ii. Multiple output gates: not,buf
Continues Assignments and Data Operators
Syntax of assign statement:
Assign < drive_strength > < delay > < list_of_assignment >
input A, B, C;
output Y;
Assign Y = A & B
Continuous assignment characteristics:
• Left-Hand Side (LHS): Must be a net (like wire) or a combination of nets. Cannot be a register (like reg).
• Right-Hand Side (RHS): Can be nets, registers, or function calls. Can be single bits (scalar) or multiple bits
(vector).
• Evaluation: The RHS expression is evaluated whenever any of its inputs change. The result is immediately
assigned to the LHS.
• Delays: You can add delays to control when the LHS gets the updated value.
Verilog Data Operators: -
▪ Arithmetic
▪ Bitwise
▪ Logical
▪ Reduction
▪ Shift
▪ Relational
▪ Equality
▪ Concatenation
▪ Replication
▪ Conditional
Arithmetic Operators
▪ If any operand contains z or x the result is unknown
▪ If result and operand are of same size, then carry is lost
▪ Treats vectors as a whole value
Verilog Operators
Bitwise Operators
▪ Operates on each bit of operand
▪ Result is in the size of the largest operand
Logical Operators
▪ Can evaluate to 1, 0, x values
▪ The results is either true (1) or false (0)
Shift Operators
▪ Shifts the bit of a vector left or right
▪ Shifted bits are lost
▪ Arithmetic shift right fills the shifted bits
with sign bit
▪ All others fill the shifted bits by zero
Operators Operations
Relational Operators
▪ Evaluates to 1, 0, x
▪ Result in x if any operand bit is z or x
Equality Operators
▪ assign Write Me = (wr == 1) &&
((a >= 16’h7000) && (a < 16’h8000));
Procedural Blocks and Assignments in Verilog
Always Block: Initial block is used in behavioral modeling to describe a block of code that runs only once at the
beginning of the simulation. It’s often used to initialize values, generate stimulus, or set up certain conditions before the
simulation runs.
Initial Block: An always block in Verilog is used in behavioral modeling to describe behavior that should happen
repeatedly, either based on a sensitivity list or at specified time intervals. It is typically used for modeling sequential
logic, combinational logic, or clock-driven circuits.
Procedural assignments: Procedural assignments are used within initial or always blocks to assign values to reg
types. They allow you to model how the values of signals change over time, simulating the behavior of digital
circuits.
Non- blocking assignments: Non-blocking procedural assignments (<=) are commonly used in Verilog to model
sequential logic, particularly when you want
to simulate behavior similar to flip-flops or registers that store values on clock edges. Non-blocking assignments are
designed to allow multiple assignments to be scheduled at the same time step without affecting the order of
execution.
Sequential Blocks: Statements are enclosed within the keywords begin & end. Statements are processed in order
they are specified. Delays specified are additive
Parallel Blocks:Statements are enclosed within the keywords fork & join. Statements in a parallel block are
executed concurrently. Ordering of statements is
controlled by the delay or event control assigned to each statement.
▪ Timing Controls
1. Delay Based Timing Controls
2.Event Based Timing Controls
3. Level Sensitive Control
4.Conditional Statements -if...else/case
1. Delay Based Timing Controls
Delay timing control types Declaration
▪ Regular delay control = The non-zero delay is specified at the LHS of the
procedural statement.
▪ Intra-assignment delay control = Delay is specified between the assignment operator and the
RHS operand.
▪ Zero delay control = The zero delay is specified at LHS of procedural statement
2.Event Based Timing Controls
Event timing control types Declaration
▪ Regular event control = An event control is specified using @ symbol
▪ Event OR control = Multiple events are declared using the ‘or’ keyword or comma ‘,’
symbol.
▪ Named event control = The event declared using -> symbol as event triggering @
symbol as waiting for event trigger.
▪ Level sensitive timing control =The ‘wait’ keyword is used in the declaration
3. Level Sensitive Control
Along with the edge-sensitive construct (while waiting for an event trigger), Verilog
adds up the ‘wait’ level-sensitive construct to wait for a specified condition to be true,
and then only one or more statements will be executed. Thus, a set of statements will be
blocked until the ‘wait’ condition is evaluated to be true.
Syntax:
wait(<expression or variable>)
4.Conditional Statements -if...else/case
Verilog supports ‘if’, ‘else if’, ‘else’ same as other programming languages. The
‘If’ statement is a conditional statement based on which decision is made whether
to execute lines inside if block or not. The begin and end are required in case of
multiple lines present in ‘if’ block. For single-line inside if statement may not
require ‘begin..end’ The ‘if’ statement returns true if the expression calculates its
value as 1 otherwise, for 0, x, z values ‘if’ block will not be executed
Looping Constraints
There are four types of looping statements in Verilog:-
▪ While
▪ For
▪ Repeat
▪ Forever
Loop Statements - while
Loop Statements - for
Syntax:
for (initial assignment; expression; step assignment)
begin
procedural assignment
end
Loop Statements - repeat
▪ Keyword repeat is used for this loop.
▪ Executes the loop for fixed number of times.
Loop Statements - forever
Looping statements appear inside procedural
blocks only.
The forever loop executes continuously
i.e. the loop never ends
Task AND Functions
What is SystemVerilog?
SystemVerilog is a hardware description and verification language (HDVL) that
extends Verilog to support advanced modeling and verification of digital systems. It
is widely used in designing and verifying Application-Specific Integrated Circuits
(ASICs) and Field-Programmable Gate Arrays (FPGAs)
Applications of SystemVerilog
•Designing RTL (Register Transfer Level) Logic
•Verification using Testbenches
•Formal Property Checking and Coverage Analysis
•Designing and Testing Complex Digital Systems (like
CPUs, GPUs, and SoCs)
SystemVerilog is standardized as IEEE 1800 and is widely
supported by industry tool
Interfaces and Connectivity
Traditional Testbench
Tradition Verification Flow
Data Type & Rules (Verilog)
Enumerated Type Access Methods Arrays and Queues
Fixed Size Array
Dynamic Array
Associative Array Methods
Queue
Queue Methods
Thank you

More Related Content

Similar to INTERN VLSI 1.pptx INTERN VLSI 1.pptx ppt (20)

PDF
Verilog Cheat sheet-2 (1).pdf
DrViswanathKalannaga1
 
PPTX
Verilog Final Probe'22.pptx
SyedAzim6
 
PDF
dokumen.tips_verilog-basic-ppt.pdf
Velmathi Saravanan
 
PDF
Short Notes on Verilog and SystemVerilog
Jason J Pulikkottil
 
PDF
Verilog
abkvlsi
 
PPTX
HDL_verilog_unit_1 for engagement subjects and technology
praveenbudihal
 
PPTX
a verilog presentation for deep concept understa
SRAJALDWIVEDI1
 
PPTX
Verilogspk1
supriya kurlekar
 
PPTX
Digital design using verilog-For Absolute Beginners
Dr.YNM
 
PPTX
Verilog overview
posdege
 
PPT
verilog
Shrikant Vaishnav
 
PPT
VerilogHDL_Utkarsh_kulshrestha
Utkarsh Kulshrestha
 
PDF
An Introductory course on Verilog HDL-Verilog hdl ppr
Prabhavathi P
 
PPTX
Introduction_to_Verilog (1).pptxzhdYfzhfzy
hereshmurugan007
 
PPT
VIT_Workshop.ppt
VINOTHRAJR1
 
PPT
Coding verilog
umarjamil10000
 
PDF
Verilog_ppt.pdf
ApurbaDebnath8
 
PPTX
Lecture_Verilog HDL from high-level algorithmic designs to detailed gate-leve...
Rajmohan Madasamy
 
PPTX
vlsi design using verilog presentaion 1
MANDHASAIGOUD1
 
PDF
DLD5.pdf
Shashi738182
 
Verilog Cheat sheet-2 (1).pdf
DrViswanathKalannaga1
 
Verilog Final Probe'22.pptx
SyedAzim6
 
dokumen.tips_verilog-basic-ppt.pdf
Velmathi Saravanan
 
Short Notes on Verilog and SystemVerilog
Jason J Pulikkottil
 
Verilog
abkvlsi
 
HDL_verilog_unit_1 for engagement subjects and technology
praveenbudihal
 
a verilog presentation for deep concept understa
SRAJALDWIVEDI1
 
Verilogspk1
supriya kurlekar
 
Digital design using verilog-For Absolute Beginners
Dr.YNM
 
Verilog overview
posdege
 
VerilogHDL_Utkarsh_kulshrestha
Utkarsh Kulshrestha
 
An Introductory course on Verilog HDL-Verilog hdl ppr
Prabhavathi P
 
Introduction_to_Verilog (1).pptxzhdYfzhfzy
hereshmurugan007
 
VIT_Workshop.ppt
VINOTHRAJR1
 
Coding verilog
umarjamil10000
 
Verilog_ppt.pdf
ApurbaDebnath8
 
Lecture_Verilog HDL from high-level algorithmic designs to detailed gate-leve...
Rajmohan Madasamy
 
vlsi design using verilog presentaion 1
MANDHASAIGOUD1
 
DLD5.pdf
Shashi738182
 

Recently uploaded (16)

PDF
The Family Secret (essence of loveliness)
Favour Biodun
 
PPTX
some leadership theories MBA management.pptx
rkseo19
 
PDF
The Impact of Game Live Streaming on In-Game Purchases of Chinese Young Game ...
Shibaura Institute of Technology
 
PPTX
presentation on legal and regulatory action
raoharsh4122001
 
PPTX
BARRIERS TO EFFECTIVE COMMUNICATION.pptx
shraddham25
 
PDF
Cloud Computing Service Availability.pdf
chakrirocky1
 
PPTX
Inspired by VeinSense: Supercharge Your Hackathon with Agentic AI
ShubhamSharma2528
 
PPTX
AI presentation for everyone in every fields
dodinhkhai1
 
PPTX
2025-07-06 Abraham 06 (shared slides).pptx
Dale Wells
 
PDF
Generalization predition MOOCs - Conference presentation - eMOOCs 2025
pmmorenom01
 
PPTX
STURGEON BAY WI AG PPT JULY 6 2025.pptx
FamilyWorshipCenterD
 
PPTX
Presentationexpressions You are student leader and have just come from a stud...
BENSTARBEATZ
 
PPTX
Pastor Bob Stewart Acts 21 07 09 2025.pptx
FamilyWorshipCenterD
 
PPTX
Food_and_Drink_Bahasa_Inggris_Kelas_5.pptx
debbystevani36
 
PDF
Leveraging the Power of Jira Dashboard.pdf
siddharthshukla742740
 
PPTX
Great-Books. Powerpoint presentation. files
tamayocrisgie
 
The Family Secret (essence of loveliness)
Favour Biodun
 
some leadership theories MBA management.pptx
rkseo19
 
The Impact of Game Live Streaming on In-Game Purchases of Chinese Young Game ...
Shibaura Institute of Technology
 
presentation on legal and regulatory action
raoharsh4122001
 
BARRIERS TO EFFECTIVE COMMUNICATION.pptx
shraddham25
 
Cloud Computing Service Availability.pdf
chakrirocky1
 
Inspired by VeinSense: Supercharge Your Hackathon with Agentic AI
ShubhamSharma2528
 
AI presentation for everyone in every fields
dodinhkhai1
 
2025-07-06 Abraham 06 (shared slides).pptx
Dale Wells
 
Generalization predition MOOCs - Conference presentation - eMOOCs 2025
pmmorenom01
 
STURGEON BAY WI AG PPT JULY 6 2025.pptx
FamilyWorshipCenterD
 
Presentationexpressions You are student leader and have just come from a stud...
BENSTARBEATZ
 
Pastor Bob Stewart Acts 21 07 09 2025.pptx
FamilyWorshipCenterD
 
Food_and_Drink_Bahasa_Inggris_Kelas_5.pptx
debbystevani36
 
Leveraging the Power of Jira Dashboard.pdf
siddharthshukla742740
 
Great-Books. Powerpoint presentation. files
tamayocrisgie
 
Ad

INTERN VLSI 1.pptx INTERN VLSI 1.pptx ppt

  • 1. Bapuji Educational Association ® BAPUJI INSTITUTE OF ENGINEERING AND TECHNOLOGY DAVANGERE, KARNATAKA-577004 DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING Internship Progreess Presentation On “VLSI Design and Verification” Presented by, ABHISHEK S SHINGADI (4BD22EC400) Dr.G SUNITHA M.Tech. (DEAC), Ph.D., MISTE, FIETE., FIE Program Coordinator Dr. KIRAN KUMAR G H M.Tech. Ph.D. Internship Guide 1
  • 2. BAPUJI INSTITUTE OF ENGINEERING AND TECHNOLOGY, DAVANGERE-577004 Vision To be a centre of excellence recognized nationally and internationally, in distinctive areas of engineering education and research, based on a culture of innovation and invention. Mission BIET contributes to the growth and development of its students by imparting a broad based engineering education and empowering them to be successful in their chosen field by inculcating in them positive approach, leadership qualities and ethical values. 2
  • 3. To be in the forefront in providing quality technical education and research in Electronics & Communication Engineering to produce skilled professionals to cater to the challenges of the society. Mission of theDepartment M1: To facilitate the students with profound technical knowledge through effective teaching learning process for a successful career. M2: To impart quality education to strengthen students to meet the industry standards and face confidently the challenges in the programme. M3: To develop the essence of innovation and research among students and faculty by providing infrastructure and a conducive environment. M4: To inculcate the student community with ethical values, communication skills, leadership qualities, entrepreneurial skills and lifelong learning to meet the societal needs. Vision of the Department
  • 4. COURSE LEARNING OBJECTIVES This course will enable us to: 1. Experience a real-life engineering workplace and understand how their engineering knowledge and skills can be utilized in Industry. 2. Expose to the current Technological trends relevant to the field of training. 3. To enhance communication skills, teamwork capabilities and develop professional behaviour. 4. Use Internship experience to develop their engineering skills and practices that boost their employability. 5. Gain experience in writing technical/projects reports and expose students to the engineer’s responsibilities and ethics.
  • 5. Contents 1. Introduction 2. WORK CARRIED OUT IN FIRST WEEK 3. WORK CARRIED OUT IN SECOND WEEK 4. WORK CARRIED OUT IN THIRD WEEK 5. WORK CARRIED OUT IN FIRST WEEK
  • 6. Introduction BASIC INFORMATION OF VERILOG ● Verilog is a hardware description language used for developing code that describes digital systems and circuits. ● For the design and verification of digital and mixed-signal systems, Verilog is frequently utilized including both application-specific integrated circuits (ASICs) and field-programmable gate arrays (FPGAs). ● Developed by Gateway Design Automation and later acquired by Cadence Design Systems
  • 7. Hardware Modeling There are two fundamental aspects of any piece of hardware: Behavioral The behavioral aspects tells us about the behavior of hardware. What is its functionality and speed (without bothering about the constructional and operational details). Structural The structural aspect tells us about the hardware construction. The design is comprised of which parts and how the design is constructed from these parts i.e. how they have been interconnected.
  • 9. Modeling Styles Verilog is both, behavioral and structural language. Designs in Verilog can be described at all the four levels of abstraction depending on needs of design. Behavioral Level: - Used to model behavior of design without concern for the hardware implementation details. Designing at this level is very similar to C programming. Dataflow Level [RTL]: - Module is specified by specifying the data flow. The designer is aware of how the data flows between registers. Gate Level: - Module is implemented in terms of logic gates & interconnections between them. Design at this level is similar to describing design in terms of gate level logical diagram. Switch Level: - lowest level of abstraction provided by Verilog. Module can be implemented in terms of switches, storage nodes & interconnection between them.
  • 12. Gate Level Half Adder Gate Level Half Adder Dataflow Level Half Adder Behavioral Level Half Adder / Adder Module module half_adder(sum,carry,A,B); output sum; output carry; input A, B; xor my_xor(sum,A,B); and my_and(carry,A,B); endmodule // Adder Module module half_adder(sum,carry,A,B); output sum; output carry; input A, B; assign sum = (~A&B) + (A&~B); assign carry = A&B; endmodule / Adder Module module half_adder(sum,carry,A,B); output sum; reg sum; output carry; reg carry; input A, B; always @(A or B) begin {carry, sum} = A + B; end endmodule
  • 13. Case Sensitivity in Variable Names module case_sensitivity_example; reg data; // Lowercase variable reg Data; // CamelCase variable (distinct from 'data') reg DATA; // All uppercase variable (distinct from 'data' and 'Data') initial begin data = 1'b0; // Assign to 'data' Data = 1'b1; // Assign to 'Data' DATA = 1'b0; // Assign to 'DATA' end endmodule Case Sensitivity in Keywords All keywords must be in LOWER case i.e., the language is case sensitive Module top; // Incorrect: 'Module' should be in lowercase 'module’ Endmodule // Incorrect: ‘Endmodule' should be in lowercase 'module’ Syntax & Semantics
  • 14. VLSI Data Types 1.Physical Data Types 2.Abstract (Register) Data Types 3.Constants 1.Physical Data Types ▪ “wor” performs “or” operation on multiple driver logic. E.g. ECL circuit ▪ “wand” performs “and” operation on multiple driver logic. E.g. Open collector output ▪ “trior” and “triand” perform the same function as “wor” and “wand”, but model outputs with resistive loads.
  • 15. 2.Abstract (Register) Data Types Vector:- A vector in Verilog is a collection of bits, and it can represent multi-bit signals such as buses or registers.. reg: {size = 1-bit, default value = 1’bx, type = unsigned} String:- there isn't a dedicated string data type for storing strings directly. However, you can use character arrays (or reg arrays) to store sequences of characters, which can be treated as strings. Each character can be stored as a single bit or a multi-bit representation, typically using 8 bits for ASCII characters Integer:- The integer data type in Verilog is used to represent signed integer values. It is a built-in data type that provides a way to store whole numbers, which can be both positive and negative. real:- The real data type is used to represent floating-point numbers, which can hold decimal values.
  • 16. 3.Constants ▪ Constants can be defined in a module by the keyword parameter. ▪ Thus, can not be used as variables. ▪ Improves code readability Parameter:- in Verilog. Parameters allow you to define constants that can be used throughout your module, making your code more flexible and easier to maintain. defparam:- The defparam statement in Verilog is used to override parameter values defined in a module instantiation. It allows you to specify different values for parameters at the time of module instantiation without modifying the original module.
  • 17. Gate level modelling and Concept Wire • Verilog language provides basic gates as built-in Primitives as shown. • Since they are predefined, they do not need module definition. • Primitives available in Verilog. i. Multiple input gates: and, nand, or, nor, xor, xnor ii. Multiple output gates: not,buf
  • 18. Continues Assignments and Data Operators Syntax of assign statement: Assign < drive_strength > < delay > < list_of_assignment > input A, B, C; output Y; Assign Y = A & B Continuous assignment characteristics: • Left-Hand Side (LHS): Must be a net (like wire) or a combination of nets. Cannot be a register (like reg). • Right-Hand Side (RHS): Can be nets, registers, or function calls. Can be single bits (scalar) or multiple bits (vector). • Evaluation: The RHS expression is evaluated whenever any of its inputs change. The result is immediately assigned to the LHS. • Delays: You can add delays to control when the LHS gets the updated value.
  • 19. Verilog Data Operators: - ▪ Arithmetic ▪ Bitwise ▪ Logical ▪ Reduction ▪ Shift ▪ Relational ▪ Equality ▪ Concatenation ▪ Replication ▪ Conditional Arithmetic Operators ▪ If any operand contains z or x the result is unknown ▪ If result and operand are of same size, then carry is lost ▪ Treats vectors as a whole value Verilog Operators
  • 20. Bitwise Operators ▪ Operates on each bit of operand ▪ Result is in the size of the largest operand Logical Operators ▪ Can evaluate to 1, 0, x values ▪ The results is either true (1) or false (0) Shift Operators ▪ Shifts the bit of a vector left or right ▪ Shifted bits are lost ▪ Arithmetic shift right fills the shifted bits with sign bit ▪ All others fill the shifted bits by zero Operators Operations
  • 21. Relational Operators ▪ Evaluates to 1, 0, x ▪ Result in x if any operand bit is z or x Equality Operators ▪ assign Write Me = (wr == 1) && ((a >= 16’h7000) && (a < 16’h8000));
  • 22. Procedural Blocks and Assignments in Verilog Always Block: Initial block is used in behavioral modeling to describe a block of code that runs only once at the beginning of the simulation. It’s often used to initialize values, generate stimulus, or set up certain conditions before the simulation runs. Initial Block: An always block in Verilog is used in behavioral modeling to describe behavior that should happen repeatedly, either based on a sensitivity list or at specified time intervals. It is typically used for modeling sequential logic, combinational logic, or clock-driven circuits. Procedural assignments: Procedural assignments are used within initial or always blocks to assign values to reg types. They allow you to model how the values of signals change over time, simulating the behavior of digital circuits. Non- blocking assignments: Non-blocking procedural assignments (<=) are commonly used in Verilog to model sequential logic, particularly when you want to simulate behavior similar to flip-flops or registers that store values on clock edges. Non-blocking assignments are designed to allow multiple assignments to be scheduled at the same time step without affecting the order of execution. Sequential Blocks: Statements are enclosed within the keywords begin & end. Statements are processed in order they are specified. Delays specified are additive Parallel Blocks:Statements are enclosed within the keywords fork & join. Statements in a parallel block are executed concurrently. Ordering of statements is controlled by the delay or event control assigned to each statement.
  • 23. ▪ Timing Controls 1. Delay Based Timing Controls 2.Event Based Timing Controls 3. Level Sensitive Control 4.Conditional Statements -if...else/case
  • 24. 1. Delay Based Timing Controls Delay timing control types Declaration ▪ Regular delay control = The non-zero delay is specified at the LHS of the procedural statement. ▪ Intra-assignment delay control = Delay is specified between the assignment operator and the RHS operand. ▪ Zero delay control = The zero delay is specified at LHS of procedural statement 2.Event Based Timing Controls Event timing control types Declaration ▪ Regular event control = An event control is specified using @ symbol ▪ Event OR control = Multiple events are declared using the ‘or’ keyword or comma ‘,’ symbol. ▪ Named event control = The event declared using -> symbol as event triggering @ symbol as waiting for event trigger. ▪ Level sensitive timing control =The ‘wait’ keyword is used in the declaration
  • 25. 3. Level Sensitive Control Along with the edge-sensitive construct (while waiting for an event trigger), Verilog adds up the ‘wait’ level-sensitive construct to wait for a specified condition to be true, and then only one or more statements will be executed. Thus, a set of statements will be blocked until the ‘wait’ condition is evaluated to be true. Syntax: wait(<expression or variable>) 4.Conditional Statements -if...else/case Verilog supports ‘if’, ‘else if’, ‘else’ same as other programming languages. The ‘If’ statement is a conditional statement based on which decision is made whether to execute lines inside if block or not. The begin and end are required in case of multiple lines present in ‘if’ block. For single-line inside if statement may not require ‘begin..end’ The ‘if’ statement returns true if the expression calculates its value as 1 otherwise, for 0, x, z values ‘if’ block will not be executed
  • 26. Looping Constraints There are four types of looping statements in Verilog:- ▪ While ▪ For ▪ Repeat ▪ Forever Loop Statements - while
  • 27. Loop Statements - for Syntax: for (initial assignment; expression; step assignment) begin procedural assignment end
  • 28. Loop Statements - repeat ▪ Keyword repeat is used for this loop. ▪ Executes the loop for fixed number of times. Loop Statements - forever Looping statements appear inside procedural blocks only. The forever loop executes continuously i.e. the loop never ends
  • 30. What is SystemVerilog? SystemVerilog is a hardware description and verification language (HDVL) that extends Verilog to support advanced modeling and verification of digital systems. It is widely used in designing and verifying Application-Specific Integrated Circuits (ASICs) and Field-Programmable Gate Arrays (FPGAs) Applications of SystemVerilog •Designing RTL (Register Transfer Level) Logic •Verification using Testbenches •Formal Property Checking and Coverage Analysis •Designing and Testing Complex Digital Systems (like CPUs, GPUs, and SoCs) SystemVerilog is standardized as IEEE 1800 and is widely supported by industry tool
  • 33. Data Type & Rules (Verilog)
  • 34. Enumerated Type Access Methods Arrays and Queues
  • 35. Fixed Size Array Dynamic Array Associative Array Methods
  • 36. Queue