0% found this document useful (0 votes)
41 views60 pages

Internship Report

This document is an internship report by Kiran Kashyap M on 'Industrial Robotics' submitted for the Bachelor of Engineering in Electronics & Communication Engineering at Alva’s Institute of Engineering & Technology. It includes an overview of the internship, acknowledgments, an abstract discussing advanced digital RTL design, and various chapters covering digital design principles, Verilog, and project results. The report emphasizes the importance of RTL design in modern digital systems and the skills required for effective implementation and verification.

Uploaded by

Kiran Kashyap
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views60 pages

Internship Report

This document is an internship report by Kiran Kashyap M on 'Industrial Robotics' submitted for the Bachelor of Engineering in Electronics & Communication Engineering at Alva’s Institute of Engineering & Technology. It includes an overview of the internship, acknowledgments, an abstract discussing advanced digital RTL design, and various chapters covering digital design principles, Verilog, and project results. The report emphasizes the importance of RTL design in modern digital systems and the skills required for effective implementation and verification.

Uploaded by

Kiran Kashyap
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 60

VISVESVARAYA TECHNOLOGICAL

UNIVERSITY
“Jnana Sangama” Belagavi – 590018

Internship[21INT82] Report on

“INDUSTRIAL ROBOTICS”
Submitted in partial fulfillment of the requirements for the award of degree

BACHELOR OF ENGINEERING

IN
ELECTRONICS & COMMUNICATION ENGINEERING

Submitted By

Kiran Kashyap M 4AL21EC040

Under the Guidance of

Dr. Ganesh V N
Associate Professor
Department of E&C Engineering

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING


ALVA’S INSTITUTE OF ENGINEERING & TECHNOLOGY
Accredited by NBA & NAAC with A+ Grade
MOODBIDRI – 574 225.
2024-2025
ALVA’S INSTITUTE OF ENGINEERING &
TECHNOLOGY
(A Unit of Alva’s Education Foundation®, Moodbidri)

“Shobhavana”, Mijar, Moodbidri – 574 225, D.K.

DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING

CERTIFICATE

This is to certify that Kiran Kashyap M, a student of


Electronics & Communication Engineering at Alva’s Institute of
Engineering and Technology, affiliated with Visvesvaraya
Technological University, Belagavi, has successfully completed the
Internship Report entitled “Industrial Robotics” The seminar was
conducted, and the report has been submitted in partial fulfillment of the
requirements for the Bachelor of Engineering (B.E.) at Alva’s
Institute of Engineering and Technology.

This report reflects the student's dedication and understanding of,


“Industrial Robotics” covering key challenges, industry trends, and
advanced techniques.

Signature of Guide Signature of HOD


Dr. Ganesh V N Dr. Dattathreya
Senior Professor Dean Planning
ACKNOWLEDGEMENT

The satisfaction and euphoria that accompany a successful completion of any task would
be incomplete without the mention of people who made it possible, success is the epitome
of hard work and perseverance, but steadfast of all is encouraging guidance.

So, with gratitude I acknowledge all those whose guidance and encouragement served as
beacon of light and crowned the effort with success.

I sincerely thank, Dr. Dattathreya, Dean(planning) and Head, Department of Electronics


and Communication Engineering who has been the constant driving force behind the
completion of the project.

I thank our beloved Principal, Dr. Peter Fernandes, for his constant help and support
throughout.

We are indebted to Management of Alva’s Institute of Engineering and Technology, Mijar,


Moodbidri for providing an environment which helped us in completing our mini project.

Also, we thank all the teaching and non-teaching staff of Department of Electronics and
Communication Engineering for the help rendered.

Kiran Kashyap M 4AL21EC040

i
ABSTRACT
The RTL Design of Advanced Digital System course is a comprehensive exploration of how
complex digital circuits are designed and implemented using register transfer level (RTL)
abstraction. In modern electronics, the increasing demand for high-performance, low-power,
and reliable digital systems necessitates the use of structured and scalable design
methodologies. RTL design plays a critical role in this process by allowing engineers to
describe the behavior of digital systems in terms of the flow of data between registers and the
logical operations performed on that data, synchronized by a clock signal. This abstraction
provides a practical bridge between the theoretical understanding of logic circuits and the
real-world implementation of hardware on platforms such as ASICs (Application-Specific
Integrated Circuits) and FPGAs (Field- Programmable Gate Arrays).

This course equips students with the foundational knowledge and practical skills needed to
model, simulate, and implement digital systems. A major emphasis is placed on the use of
hardware description languages (HDLs), particularly Verilog (and optionally VHDL), to
express RTL designs that can be synthesized into actual hardware. Students begin with the
basics of combinational and sequential logic design, including the use of logic gates, flip-
flops, counters, and registers. As the course progresses, they gain an understanding of more
complex concepts such as finite state machines (FSMs), which are essential for designing
control units. By learning how to partition a design into datapath and control units, students
can manage complexity, promote modularity, and improve design reuse.

A core part of the course is hands-on experience with industry-standard tools such as Xilinx
Vivado, Intel Quartus, and ModelSim. Through these platforms, students learn how to write
synthesizable RTL code, simulate behavior using testbenches, perform synthesis, and conduct
static timing analysis to ensure their designs meet performance requirements. The course also
introduces the complete design flow for deploying digital systems onto FPGA hardware,
providing a real-world perspective on system prototyping and validation.

ii
TABLE OF CONTENTS
CHAPTER NO TITLE PAGE NO

ACKNOWLEDGMENT i

ABSTRACT ii

TABLE OF CONTENTS iii

LIST OF FIGURES iv

CHAPTER 1 COMPANY OVERVIEW 1-2

CHAPTER 2 INTORDUCTION 3–4

CHAPTER 3 DIGITAL DESIGN 5 - 20

CHAPTER 4 VERILOG 21-41

CHAPTER 5 RTL DESIGNPROJECT 42-44

CHAPTER 6 WORKING DAYS 45-47

CHAPTER 7 RESULT 48
CHAPTER 8 CONCLUSION 49
LIST OF FIGURES

Figure No. Description Page.no

Fig 5.1 Block diagram 43

Fig 5.2 Code Simulation 44

Fig 5.3 GTK Wave 44

Fig 6.1 Campus Glimps 45

Fig 6.2 Digitsl Design 46


classroom session
Fig 6.3 Verilog Classroom session 46
CHAPTER 1

COMPANY OVERVIEW

The K-VLSI PG Diploma Program is a collaborative initiative launched by the


International Institute of Information Technology Bangalore (IIIT-B) in partnership with
FutureWiz, Karnataka Digital Economy Mission (KDEM), India Electronics and
Semiconductor Association (IESA), and the Semiconductor Fabless Accelerator Lab (SFAL).
This program is designed to develop industry-ready professionals in the VLSI (Very
LargeScale Integration) domain, which is crucial for the growth of India’s semiconductor
sector. It spans 6 to 9 months and includes advanced coursework in digital design, Verilog and
System Verilog, Linux for VLSI, and extensive hands-on project experience. The program is
open to engineering graduates from electronics, ECE, computer science, and related branches
who have completed their degrees between 2020 and 2023. Admission is competitive,
involving shortlisting based on academics, an online test, and technical interviews. Upon
successful completion, students receive a joint certification from IIIT-B, KDEM, IESA, and
Future Wiz, with assured placement assistance.
Future Wiz, the industry training partner for this program, is a VLSI-focused training
entity backed by True chip Solutions. It provides specialized instruction and mentorship in
system design, verification, and embedded systems to align academic learning with real-world
industry demands. This collaboration ensures that students are not only well-versed in theory
but are also job-ready for roles in the semiconductor and chip design sectors. With its second
cohort launched in 2025, the program has already shown significant impact by attracting
thousands of applicants and training candidates from over 60 engineering colleges, contributing
actively to India’s semiconductor ambitions.

The KVLSI Program – Cohort 2 is a continued stride toward building a robust and future-ready
talent pool in the semiconductor and VLSI (Very-Large-Scale Integration) design industry.
After the resounding success of its first cohort, the second edition of the program brings refined
content, expanded technical depth, and increased industry engagement to offer participants a
more immersive and impactful learning experience. Designed to address the growing demand
for skilled professionals in chip design, verification, and hardware development, Cohort 2
Dept. of ECE, AIET
Mijar 1
integrates hands-on training with real-world design scenarios using industry-standard tools and
methodologies. Participants gain exposure to key domains such as digital and analog IC design,
RTL design, functional verification, physical design, and system-on-chip (SoC) architecture,
preparing them for roles in core hardware, EDA, and semiconductor companies.
The program is delivered by leading academic experts and industry practitioners,
combining theoretical instruction with practical insights to ensure industry alignment and
career readiness. Additionally, Cohort 2 emphasizes mentorship, peer collaboration, and
project-based evaluations to foster innovation and critical thinking. With stronger partnerships,
broader outreach, and a more structured curriculum, the KVLSI Program – Cohort 2 continues
to empower young engineers, students, and professionals to become drivers of India’s growing
semiconductor ecosystem, aligning with national initiatives like "Make in India" and "Design
in India." This cohort not only builds on the momentum of its predecessor but also sets a higher
benchmark in VLSI education, skilling, and innovation. The KVLSI Program – Cohort 2 is a
progressive and strategic initiative aimed at strengthening India's semiconductor talent pipeline
by providing cutting-edge training in VLSI (Very-Large-Scale Integration) design and
technology. Following the impactful success of its first cohort, this second edition has been
enhanced with deeper technical content, more industry-driven modules, and broader
institutional participation. Spearheaded by the International Institute of Information
Technology Bangalore (IIITB) in collaboration with Futurewizz EdTech, and supported by
leading industry partners and VLSI experts, Cohort 2 brings together academia and industry in
a powerful alliance to nurture next-generation chip design professionals.
The program is enriched by contributions from seasoned mentors and professionals from
companies such as Intel, Qualcomm, Cadence, Synopsys, and Texas Instruments, who bring
real- world insights and design expertise to the classroom. Participants engage in hands-on
learning with industry-grade tools and workflows across domains such as RTL design, SoC
architecture, physical design, timing analysis, and functional verification.

Dept. of ECE, AIET


Mijar 2
Advanced Digital RTL Design

CHAPTER 2

INTRODUCTION

Advanced Digital RTL (Register Transfer Level) Design is a fundamental aspect of


modern digital system development, particularly in the fields of VLSI, ASIC, and FPGA
design. It involves describing and implementing synchronous digital circuits at a level where
the data flow between registers is explicitly defined. RTL design enables engineers to model
how data is transferred and processed across various registers within a system, typically using
Hardware Description Languages (HDLs) like Verilog or SystemVerilog. This level of
abstraction offers a balance between high-level behavioral modeling and low-level gate design,
making it ideal for both simulation and synthesis.
The core principles of RTL design revolve around synchronous design concepts,
where timing is governed by clock signals and data transitions occur on clock edges. Designers
use constructs like flip-flops, finite state machines (FSMs), and combinational logic to build
functional modules. FSMs, including both Moore and Mealy models, play a crucial role in
control logic, while pipelining and parallelism are employed to enhance performance by
allowing multiple operations to execute simultaneously. These techniques are essential in
applications such as microprocessors, digital signal processors, and high-speed communication
systems.
Verilog and SystemVerilog are the primary languages used in RTL design. Verilog
allows for various design styles—behavioral, dataflow, and structural—each suited to different
stages of design and abstraction. SystemVerilog, as an extension, introduces enhanced features
like strong data typing, user-defined types, and advanced verification constructs, making it
highly suitable for both design and verification. Writing efficient, synthesizable code requires
adherence to specific guidelines such as avoiding latches, ensuring proper reset logic, and using
clock gating for power optimization.
Verification is a critical aspect of RTL design. Before a design is fabricated, it
undergoes extensive functional simulation, formal verification, and static timing analysis to
ensure correctness and robustness. Techniques like constrained random testing and assertion-
based verification, often implemented using the Universal Verification Methodology (UVM),

Dept. of ECE, AIET


Mijar 3
Advanced Digital RTL Design
help uncover subtle bugs and ensure comprehensive coverage. Additionally, the synthesized
RTL code must meet performance, area, and power constraints, as determined by Electronic
Design Automation (EDA) tools.
In the context of the growing demand for high-performance and energy-efficient digital
systems, advanced RTL design skills are more relevant than ever. Professionals equipped with a
deep understanding of RTL methodologies, design tools, and verification strategies are highly
sought after in the semiconductor and embedded systems industries. By mastering these skills,
engineers contribute directly to the development of cutting-edge technologies, from consumer
electronics to AI accelerators and beyond.
In addition to the core design and verification aspects, advanced RTL design also
encompasses practical challenges such as clock domain crossing (CDC), metastability, and
design for testability (DFT). As digital systems grow more complex, managing multiple clock
domains within a single chip becomes essential. Techniques like synchronizers, FIFOs, and
handshake protocols are used to ensure reliable data transfer across clock domains. Furthermore,
ensuring a design is testable post-fabrication is critical—features like scan chains, built-in self-
test (BIST), and boundary scan are integrated at the RTL level to facilitate production testing
and fault coverage.
Another key area in advanced RTL design is the integration of IP (Intellectual Property)
blocks. Modern system-on-chip (SoC) designs are typically composed of multiple third-party or
in-house IP cores. Proper RTL coding practices ensure these components can be seamlessly
integrated, verified, and reused across projects. Moreover, power-aware RTL design is gaining
prominence, where techniques such as power gating, multi-voltage domains, and clock gating
are employed early in the design cycle to meet stringent power budgets, especially in portable
and IoT devices.

Dept. of ECE, AIET


Mijar 4
Advanced Digital RTL Design

CHAPTER 3

DIGITAL DESIGN

Digital design is the process of creating and analyzing systems that operate using digital
signals, typically represented in binary form (0s and 1s). Unlike analog systems, which process
continuous signals, digital systems work with discrete values, making them more reliable and
easier to manipulate in modern electronics. At the core of digital design are logic gates, which
perform basic logical operations and are combined to form more complex circuits. These
circuits are categorized into combinational logic, where outputs depend only on current inputs,
and sequential logic, which also considers past inputs through memory elements like flip-flops.
Boolean algebra is used to simplify and analyze these logic circuits effectively. Digital design
also involves modeling system behavior using hardware description languages such as VHDL or
Verilog, which allow engineers to simulate and implement digital systems on platforms like
FPGAs or ASICs. Common applications of digital design include microprocessors, digital
communication systems, embedded systems, and various consumer electronics. Studying digital
design is essential for understanding how modern electronic devices function and for developing
skills in logic, problem-solving, and system-level thinking.

2.1 First Week Report: Introduction to Digital System


Week Covered: Week
1 Topics Covered:
1. Difference between analog and digital
2. Why Digital?
3. Digital Devices
4. Applications of Digital Circuits

1. Difference Between Analog and Digital Systems

Dept. of ECE, AIET


Mijar 5
Advanced Digital RTL Design
In the first week, we began by understanding the key differences between analog and digital
systems. Analog systems deal with continuous signals that can have any value in a range, such as
sound waves or temperature variations. Digital systems, on the other hand, process discrete
binary signals (0s and 1s). Analog systems are more prone to signal degradation and noise,
whereas digital systems are more accurate, easier to store, and reproduce without loss in quality.
While analog is more natural in representing real-world data, digital systems offer better
efficiency, reliability, and integration with computing devices, making them more suitable for
modern technology.

2. Why Digital?
In the first week, we explored the fundamental reasons behind the global shift from
analog to digital systems. Digital systems use binary signals (0s and 1s), which are easier to
process, store, and transmit without loss or distortion. Unlike analog systems, digital systems are
highly resistant to noise and interference, which makes them more reliable for long-distance
communication and storage. Additionally, digital data is easy to reproduce with accuracy, and
digital systems are programmable, meaning that we can update or modify their functionality
using software without changing the hardware. These advantages make digital systems the
preferred choice in modern electronic applications.

3. Digital Devices
We also studied the basic components that form digital systems. These digital devices
include logic gates (AND, OR, NOT, NAND, etc.) that perform logical operations, and flip-
flops that store a single bit of data. Registers are used to store multiple bits, and devices like
multiplexers, encoders, decoders, and adders perform various data handling and arithmetic
functions. More advanced digital devices include microcontrollers, microprocessors, and
FPGAs, which are essential for processing and controlling tasks in embedded and computing
systems. These components collectively build the foundation of digital circuit design.

4. Applications of Digital Circuits


Lastly, we explored how digital circuits are used in real-world applications. In
computing,
Dept. of ECE, AIET
Mijar 6
Advanced Digital RTL Design
they are the core of CPUs, memory units, and input/output systems. In consumer electronics,
digital circuits enable the functioning of smartphones, TVs, and cameras. In the automotive

industry, they manage engine control units (ECUs) and driver assistance systems. Digital
circuits are also vital in medical equipment, industrial automation, security systems, and
communication devices. Their ability to offer speed, accuracy, and automation makes them
indispensable in almost every modern technological system.

2.2 Second Week Report: Number


System Week Covered: Week 2
Topics Covered:
1. Introduction to Number System
2. Conversion from One Base to Another
3. Signed Number Representation
4. r’s and (r–1)’s Complement
5. Binary Arithmetic
6. Binary Codes

1. Introduction to Number System


In the second week, we began by understanding what a number system is. A number
system defines how numbers are represented using a particular set of symbols or digits. The
most common number systems include Decimal (base-10), Binary (base-2), Octal (base-8), and
Hexadecimal (base-16). Each system has its own base that indicates how many digits are used.
While the decimal system is used in daily life, the binary system is essential in digital
electronics and computer systems because it uses only two digits (0 and 1), which directly map
to the ON and OFF states in digital circuits.

Dept. of ECE, AIET


Mijar 7
Advanced Digital RTL Design
2. Conversion from One Base to Another
We studied how to convert numbers between different number systems. This includes
converting from decimal to binary, binary to decimal, binary to octal/hexadecimal, and vice
versa. These conversions are essential in digital systems where data may need to be interpreted
or displayed in different formats. For example, binary data is often converted into hexadecimal
for easier readability and debugging. We practiced various methods of base conversion, such as
repeated division and multiplication methods, and learned how to handle both integer and
fractional parts during conversion.

3. Signed Number Representation

This topic introduced us to how positive and negative numbers are represented in binary
form. Since binary digits alone cannot indicate sign, we studied different techniques for signed
representation:

 Sign-Magnitude: Uses the first bit as a sign (0 for positive, 1 for negative) and the
rest for magnitude.

 1’s Complement: Negative numbers are formed by inverting all bits of the
positive number.

 2’s Complement: Most widely used method, where we invert all bits and add 1 to get
the negative representation. Understanding signed number representation is critical
because arithmetic operations in computers depend on it for correct results.

4. r’s and (r–1)’s Complement

We learned about r's complement and (r–1)'s complement, which are used in performing
subtraction and representing negative numbers in different bases:

 In binary (base 2), the 1’s complement is the (r–1)’s complement and the 2’s complement
is the r’s complement.

Dept. of ECE, AIET


Mijar 8
Advanced Digital RTL Design

 These complements simplify subtraction and allow the use of only addition hardware in
digital circuits. We practiced finding complements and using them to perform binary
subtraction using the complement method, which is a fundamental concept in digital
arithmetic.

5. Binary Arithmetic

In this section, we studied how basic arithmetic operations addition, subtraction,


multiplication, and division are carried out in the binary number system. Binary arithmetic
follows similar rules to decimal arithmetic but operates only with 0s and 1s. We explored how
carries and borrows are handled, and also learned how to detect overflow conditions.
Performing binary arithmetic is a core part of how digital systems process data at the machine
level.

6. Binary Codes

Lastly, we covered binary codes, which are used to represent characters, numbers, and
other data in a digital system. Some of the important codes we studied include:

 BCD (Binary-Coded Decimal): Represents each decimal digit using 4 binary bits.

 Gray Code: A binary sequence where only one bit changes between successive values,
useful in error minimization.

 ASCII (American Standard Code for Information Interchange): Represents letters


and symbols used in computing. Binary codes play a crucial role in data communication,
storage, and display.

Dept. of ECE, AIET 9


Mijar
Advanced Digital RTL Design
2.3 Third Week Report: Logic Minimization

Week Covered: Week 3

Topics Covered:

1. Logic Gates

2. Boolean Algebra

3. Minterms and Maxterms

4. K-Maps

5. Tabular Method

1. Logic Gates
In the third week, we began by revisiting logic gates, the fundamental building blocks of
digital circuits. Logic gates perform basic logical functions and are implemented using electronic
switches. The primary logic gates include AND, OR, and NOT gates. From these, more complex
gates like NAND, NOR, XOR, and XNOR are derived. Each gate follows a specific truth table
that defines how inputs are processed into a single output. Understanding these gates is essential,
as they are used to design and implement every digital system, from simple circuits to complex
processors.

2. Boolean Algebra
We studied Boolean Algebra, a mathematical framework used to analyze and simplify
digital logic circuits. Boolean algebra uses binary variables (0 and 1) and logical operations such
as AND (·), OR (+), and NOT ('). It helps in formulating logical expressions that describe digital
circuits. We learned the fundamental laws and theorems of Boolean algebra, including the
identity law, null law, domination law, distributive, associative, commutative, and De Morgan’s
theorems. These laws are used to simplify complex logical expressions, making circuits more
efficient and cost-effective.

Dept. of ECE, AIET 10


Mijar
Advanced Digital RTL Design
3. Minterms and Maxterms

This topic focused on the canonical forms of Boolean expressions. A minterm is a product
(AND operation) of all input variables in either true or complemented form, representing a single
row in the truth table where the function is true (1). A maxterm is a sum (OR operation) of all
variables and represents a row where the function is false (0). We learned how any Boolean
function can be expressed in Sum of Minterms (SOP) or Product of Maxterms (POS) form.
These standardized forms are useful in logic simplification and circuit design.

4. K-Maps (Karnaugh Maps)

We explored Karnaugh Maps (K-Maps) as a graphical technique for minimizing Boolean


expressions. A K-Map organizes truth table values in such a way that adjacent cells differ by
only one variable, making it easy to group ones (for SOP) or zeros (for POS). These groups,
called prime implicants, help reduce expressions by eliminating redundant variables. K-Maps are
especially useful for functions with up to 4 or 5 variables. They are a powerful visualization tool
for simplifying logic and designing minimal hardware implementations of digital systems.

5. Tabular Method (Quine–McCluskey Method)

We also studied the Tabular Method, or Quine–McCluskey method, which is a systematic


and algorithmic approach to logic minimization. Unlike K-Maps, which are visual and limited to
a smaller number of variables, the tabular method is suitable for handling larger Boolean
functions. It works by grouping minterms according to the number of ones in their binary
representation, then combining them to find prime implicants and essential prime implicants.
Although more complex, this method can be implemented in software tools and is useful in
automating logic design.

Dept. of ECE, AIET 11


Mijar
Advanced Digital RTL Design
2.4 Fourth Week Report: Combinational Logic Circuits

Week Covered: Week 4

Topics Covered:

1. Introduction to Combinational Logic

2. Adders and Subtractors

3. Decoder and Encoders

4. Multiplexers and Demultiplexers

5. Implementation of Higher Order MUX Using Lower Order MUX

6. Implementation of Boolean Functions Using MUX

7. Tristate Logic
1. Introduction to Combinational Logic

This week began with an introduction to Combinational Logic, which forms the basis of all
decision-making and control operations in digital systems. In a combinational circuit, the output
is a direct function of the current inputs, with no memory element involved. These circuits use
logic gates to perform operations like addition, comparison, selection, and encoding/decoding.
Combinational logic is fundamental to the operation of digital systems like computers,
calculators, and control systems.

2. Adders and Subtractors

We studied Adders and Subtractors, which are the primary components used in arithmetic
logic units. A Half Adder adds two single-bit binary numbers and produces a sum and carry. A
Full Adder extends this by including a carry-in input, allowing for multi-bit binary addition.
Similarly, we explored Half Subtractors and Full Subtractors for performing binary subtraction.
Understanding how these circuits work is essential for designing arithmetic hardware in

Dept. of ECE, AIET 12


Mijar
Advanced Digital RTL Design
processors.

3. Decoder and Encoders

Next, we covered Decoders and Encoders, which are essential for data routing and
selection. A Decoder takes a binary input and activates only the corresponding output line,
making it useful in memory addressing and instruction decoding. An Encoder performs the
reverse, converting multiple input lines into a binary output. These components are widely used

in digital communication systems and data handling operations.

4. Multiplexers and Demultiplexers

Multiplexers (MUX) and Demultiplexers (DEMUX) are combinational circuits used for data
selection and distribution. A MUX selects one of several inputs and forwards it to a single output
line based on control signals. Conversely, a DEMUX takes a single input and routes it to one of
several output lines. These circuits are vital for managing data paths in digital systems and
reducing the number of wires and components required.

5. Implementation of Higher Order MUX Using Lower Order MUX

We learned how to build higher-order multiplexers using lower-order multiplexers, a


technique that promotes modular circuit design. For instance, an 8:1 MUX can be constructed
using multiple 4:1 or 2:1 MUXs arranged hierarchically. This knowledge helps in designing
scalable and complex systems using simple building blocks.

6. Implementation of Boolean Functions Using MUX

An important application of multiplexers is the implementation of Boolean functions. By


selecting appropriate inputs and configuring control lines as function variables, MUXs can
realize any Boolean expression. This reduces the need for multiple gates and simplifies the
hardware. It is a flexible and efficient method, especially useful in programmable logic devices.

7. Tristate Logic

Finally, we studied Tristate Logic, which introduces a third state besides logic 0 and 1: the
high-impedance (Hi-Z) state. Tristate logic is used when multiple devices share a common data

Dept. of ECE, AIET 13


Mijar
Advanced Digital RTL Design
bus. Only one device drives the bus at a time, while others remain in Hi-Z to avoid contention.
This is essential in memory and processor communication where controlled access to data lines is
necessary.

2.5 Fifth Week Report: Sequential Logic Circuits

Week Covered: Week

5 Topics Covered:

1. Introduction to Sequential Logic

2. Latches and Flip-Flops

3. Counters

4. Shift Registers

1. Introduction to Sequential Logic

In the fifth week, we delved into Sequential Logic Circuits, which are fundamental
components in digital systems. Unlike combinational circuits, where outputs depend solely on
current inputs, sequential circuits' outputs depend on both current inputs and previous states. This
memory characteristic is achieved through storage elements like flip-flops and latches. Sequential
circuits are pivotal in applications requiring state retention, such as memory units, counters, and
control systems.

2. Latches and Flip-Flops

Latches and Flip-Flops are bistable devices, meaning they have two stable states and can
store one bit of information. They are the building blocks of sequential logic circuits.

 SR (Set-Reset) Latch: Constructed using NOR or NAND gates, it has two inputs, Set (S)
and Reset (R), and two outputs, Q and Q'. The SR latch sets or resets the output based on
the input conditions.

 D (Data) Flip-Flop: Captures the value of the D-input at a specific portion of the clock

Dept. of ECE, AIET 14


Mijar
Advanced Digital RTL Design
cycle (rising or falling edge) and holds this value until the next clock event.

 JK Flip-Flop: An enhancement over the SR flip-flop, it eliminates the invalid state.


When both inputs are high, the output toggles.

 T (Toggle) Flip-Flop: Toggles its output on each clock cycle when the T input is high.

3. Counters

Counters are sequential circuits that go through a predetermined sequence of states upon the
application of input pulses. They are widely used in digital clocks, frequency dividers, and event
counters.

 Asynchronous (Ripple) Counters: Each flip-flop is triggered by the output of the


preceding one. They are simple but suffer from propagation delays.

 Synchronous Counters: All flip-flops are triggered simultaneously by a common


clock signal, resulting in faster and more reliable operation.

 Up/Down Counters: Capable of counting in both ascending and descending order


based on control inputs.

 Modulo-N Counters: These counters reset after counting to N-1, useful in


applications requiring specific count sequences.

4. Shift Registers

Shift Registers are sequential circuits used for storage or transfer of data. They consist of a
series of flip-flops connected in a chain so that the output of one flip-flop becomes the input of
the next.

 Serial-In Serial-Out (SISO): Data is shifted in and out serially, one bit at a time.

 Serial-In Parallel-Out (SIPO): Data is entered serially but accessed in parallel,


allowing simultaneous read of all bits.

 Parallel-In Serial-Out (PISO): Multiple bits are loaded in parallel and then shifted
out serially.

Dept. of ECE, AIET 15


Mijar
Advanced Digital RTL Design
 Parallel-In Parallel-Out (PIPO): Allows parallel loading and retrieval of data.

2.6 Sixth Week Report: Finite State Machine (FSM)

Week Covered: Week 6

Topics Covered:

1. Introduction to FSM

2. Mealy FSM

3. Moore FSM

4. Sequence Detector using FSMs

1. Introduction to FSM

A Finite State Machine (FSM) is a computational model used to design both hardware and
software systems. FSMs are used to model sequential logic, where the system transitions from
one state to another in response to external inputs. Each state represents a unique configuration
of outputs and

internal memory. FSMs are especially useful in systems with a limited number of defined states,
such as traffic signals, vending machines, and digital control systems.

FSMs consist of:

 A finite set of states

 Inputs and outputs

 State transition logic (how the system moves from one state to another)

 An initial or starting state

2. Mealy FSM

A Mealy Machine is a type of FSM where the outputs depend on both the current state and

Dept. of ECE, AIET 16


Mijar
Advanced Digital RTL Design
the inputs. This often results in faster system response since outputs can change immediately when
inputs change, without waiting for a state transition.

Characteristics of Mealy FSM:

 Output = f (state, input)

 Generally, requires fewer states than a Moore machine

 More sensitive to changes in input

 Often used in designs where rapid response is needed

3. Moore FSM

A Moore Machine is an FSM where the output depends only on the current state, not the
input. This makes Moore machines more stable and less sensitive to glitches in inputs, which is
ideal for hardware reliability.

Characteristics of Moore FSM:

 Output = f(state)

 Typically requires more states than Mealy machines

 Output changes only at state transitions

 Suitable for control circuits where stability is crucial

4. Sequence Detector Using FSMs

A Sequence Detector is a digital circuit that detects a specific binary sequence of bits in an
input stream. FSMs (either Mealy or Moore) are commonly used for designing these detectors.

Design Steps:

1. Define the target sequence (e.g., 1101).

2. Draw a state diagram showing transitions between partial matches.

Dept. of ECE, AIET 17


Mijar
Advanced Digital RTL Design
3. Assign outputs to specific states (in Moore) or transitions (in Mealy).

4. Implement using logic gates or HDL (like Verilog or VHDL).

2.7 Seventh Week Report: Memories

Week Covered: Week 7

Topics Covered:

1. Introduction to Memories

2. Memory Hierarchy

3. Classification of Memories

4. Timing Violation and Metastability

5. Setup and Hold Time

1. Introduction to Memories

In digital systems, memory is a fundamental component used to store data and instructions
temporarily or permanently. It plays a critical role in both computational speed and system
efficiency. Memory allows devices to remember past operations, maintain intermediate results,
and access data efficiently. Memory is usually categorized based on how data is stored, how long
it is retained, and how it is accessed.

There are two primary types of memory:

 Volatile memory (e.g., RAM) – requires power to retain data.

 Non-volatile memory (e.g., ROM, Flash) – retains data without power.

2. Memory Hierarchy

The memory hierarchy is a structured arrangement of memory storage in a system, designed

Dept. of ECE, AIET 18


Mijar
Advanced Digital RTL Design
to balance cost, speed, and capacity. Higher levels are faster but smaller and more expensive, while
lower levels are slower but larger and cheaper.

From fastest to slowest (and most to least expensive per bit):

1. Registers (inside CPU)

2. Cache Memory (L1, L2, L3)

3. Main Memory (RAM)

4. Secondary Storage (SSD/HDD)

5. Tertiary Storage (external drives, optical discs)

3. Classification of Memories

Memory can be classified into several categories based on different criteria:

a) Based on Data Retention:

 Volatile Memory: Loses data when power is off (e.g., SRAM, DRAM)

 Non-volatile Memory: Retains data without power (e.g., ROM, EEPROM)

b) Based on Access Mode:

 Random Access Memory (RAM): Data can be accessed in any order.

 Sequential Access Memory (SAM): Data is accessed in a fixed sequence (e.g.,


magnetic tape).

c) Read/Write Capability:

 Read-Only Memory (ROM): Permanent storage, cannot be modified easily.

 Read-Write Memory (RWM): Both read and write operations are allowed.

d) RAM Types:

 SRAM (Static RAM): Faster, used in cache.

 DRAM (Dynamic RAM): Slower, used in main memory.

Dept. of ECE, AIET 19


Mijar
Advanced Digital RTL Design
4. Timing Violation and Metastability

In synchronous digital circuits, timing violations occur when data doesn’t meet specific timing
constraints. The most common types are:

 Setup time violation

 Hold time violation

These violations can cause metastability, a condition where a flip-flop or register enters an undefined
state (neither 0 nor 1) and takes an unpredictable amount of time to resolve. This instability can
lead to incorrect data propagation or even system failure.

5. Setup and Hold Time

Setup Time (T setup) is the minimum time before the clock edge that the data input must be
stable to be correctly latched.

Hold Time (Thold) is the minimum time after the clock edge that the data input must remain
stable.

Violations of setup or hold time result in:

 Incorrect logic output.

 Glitches or propagation errors.

 Possible metastability.

Dept. of ECE, AIET 20


Mijar
Advanced Digital RTL Design

CHAPTER 4

VERILOG

Verilog is a hardware description language (HDL) used to model electronic systems,


primarily digital circuits. It provides a means to describe the structure and behaviour of digital
logic circuits at multiple levels of abstraction, including the gate level, register-transfer level
(RTL), and algorithmic level. Developed in the mid-1980s and standardized as IEEE 1364,
Verilog has become one of the most widely used HDLs in the semiconductor and electronics
industry.

At its core, Verilog allows designers to write code that simulates the behaviour of a digital circuit
before it is physically built. This is essential for verifying functionality, optimizing performance,
and reducing development time. It supports both structural modelling (how the hardware is
connected) and behavioural modelling (how the system responds to inputs), which makes it
versatile for different stages of design and verification.

4.1 8th Week Report: Introduction to Verilog

Week Covered: Week 8

Topics Covered:

1. Introduction

2. Objective of the Session

3. Overview of Verilog

4. Importance in Industry

5. Basic Concepts Introduced

Dept. of ECE, AIET 21


Mijar
Advanced Digital RTL Design

1. Introduction

The eighth week of the internship began with an introductory session on Verilog, a
Hardware Description Language (HDL) used to model and design digital electronic systems.
This session aimed to provide a theoretical foundation and motivation for learning Verilog,
especially in the context of VLSI (Very Large scale Integration) design and digital logic
implementation.

2. Objective of the Session

Verilog plays a crucial role in modern digital design as a Hardware Description


Language (HDL) that allows designers to model, simulate, and implement complex digital
circuits efficiently. It provides a structured way to describe the behaviour and structure of digital
systems, ranging from simple logic gates to entire processors. HDL-based design
methodologies, such as those using Verilog, enable designers to create reusable, scalable, and
testable hardware components by using abstraction and modular design principles. Unlike
traditional software programming, which is sequential in nature, hardware description involves
parallelism and concurrency, reflecting how actual digital circuits operate. Understanding this
distinction is key to effective hardware design. Verilog supports this by allowing designers to
specify both the functionality and the timing behaviour of circuits. Through simulation and
synthesis tools, Verilog is integrated into the overall digital design flow—starting from
behavioural modelling, followed by RTL design, simulation, synthesis, place and route, and
finally, hardware implementation.

3. Overview of Verilog

Designing and simulating digital systems such as counters, adders, multiplexers, and other
fundamental components is a core application of Verilog in digital design. These systems can
be modelled accurately using Verilog's descriptive capabilities, allowing for early verification
through simulation. Once validated, these designs can be implemented on hardware platforms
like FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated
Circuits), enabling real-world functionality. Verilog facilitates rapid prototyping by allowing
designers to test and refine their logic before committing to physical hardware, thus reducing

Dept. of ECE, AIET 22


Mijar
Advanced Digital RTL Design
development time and cost. As a text-based language with C-like syntax, Verilog is both
familiar and accessible to those with a programming background. It is capable of describing
both the behaviour and structure of digital circuits, making it a versatile and essential tool for
hardware engineers.

4. Importance in Industry

The session highlighted the critical role of Verilog in the electronics and semiconductor
industries, where it is extensively used for designing and implementing complex digital systems.
In FPGA-based system design, Verilog enables developers to model and test hardware
functionality before deployment, making it ideal for rapid prototyping and development. It is
equally important in ASIC development, where precise and efficient hardware descriptions are
essential for creating custom integrated circuits. Verilog also finds widespread application in
Digital Signal Processing (DSP), where high-speed, real-time data processing requires
optimized hardware implementations. Additionally, Verilog is used in embedded systems to
design dedicated logic for controlling devices and handling specific tasks, further demonstrating
its versatility and significance across a wide range of applications in modern electronics.

5. Basic Concepts Introduced

During the class, several foundational concepts essential to digital design were
introduced. One of the key distinctions made was between analog and digital signals—analog
signals vary continuously, while digital signals operate using discrete levels, typically
representing binary values. Understanding this difference is crucial for grasping how digital
systems process information. The session also covered the basics of combinational and
sequential logic; combinational logic circuits produce outputs based solely on current inputs,
whereas sequential logic circuits also depend on past inputs through the use of memory elements
like flip-flops. Another important concept introduced was RTL (Register Transfer Level) design,
which describes the flow of data between registers and the logical operations performed on it,
serving as a high- level abstraction for designing hardware.

Dept. of ECE, AIET 23


Mijar
Advanced Digital RTL Design
4.2 9th Week Report: Software tools

Week Covered: Week 8

Topics Covered:

1. EDA Playground

2. Icarus Verilog

3. Vivado

4. ModelSim

5. Intel Quartus Prime

1. EDA Playground

In one of the sessions during Week 8 of the internship, we focused on learning how to use
EDA Playground, an online platform for writing, simulating, and testing Verilog code. The
session began with an introduction to the tool's interface, where we learned how to create new
files, write Verilog code, and select different simulation tools (such as Icarus Verilog and
Synopsys VCS) available on the platform. We were guided through the process of writing a
basic Verilog module and a testbench to verify its functionality. After running the simulation,
we explored how to view waveforms using the integrated waveform viewer. This helped us
understand the behavior of digital circuits in a time-based manner. EDA Playground proved
especially useful for beginners as it does not require any software installation and supports code
sharing, making collaboration easy. The session provided a hands-on introduction to Verilog
simulation and helped us build confidence in writing and testing simple digital circuits.

2. Icarus Verilog

As part of Week 8 of the internship, we had a dedicated session on learning how to use
Icarus Verilog, an open-source Verilog simulation tool. This session introduced us to working
with Verilog code in an offline environment using a command-line interface. We learned
how to

Dept. of ECE, AIET 24


Mijar
Advanced Digital RTL Design
compile Verilog files using the iverilog command and how to execute simulations using the vvp
command. During the session, we practiced writing simple Verilog modules and their
corresponding testbenches. After compiling and running the code, we observed the output in the
terminal and learned how to debug basic errors. Additionally, we were shown how to generate
waveform files (.vcd) and view them using waveform viewers like GTKWave, allowing us to
analyze the timing and behavior of digital signals. This session helped us understand the full flow
of simulation from code to waveform analysis and gave us hands-on experience with a tool
widely used in academic and research projects. It also enhanced our understanding of how
simulation engines process HDL code in a real-world development setup.

3. Vivado Xilinx

As part of the Week 8 activities in the internship, we had a focused session on Vivado
Design Suite, a professional FPGA development environment from Xilinx. The session
introduced us to the overall Vivado workflow, including project creation, writing Verilog
modules, performing synthesis and implementation, and generating bitstreams for programming
FPGAs.We began by creating a new project and adding Verilog design files. The instructor
guided us through writing a basic digital circuit (such as a multiplexer or counter) and
simulating it using Vivado’s built-in simulation tool. We then learned how to run synthesis,
check timing reports, and resolve any issues in the design. One of the key takeaways from this
session was understanding how Verilog code transitions from high-level RTL to a hardware-
level implementation suitable for FPGA deployment. We also explored Vivado’s IP catalog and
block design environment, which allow integration of predefined modules and more complex
system development.

4. ModelSim

In Week 3 of the internship, we had a dedicated session on using ModelSim, a


professional HDL simulation tool widely used in both academia and industry. The session
focused on simulating Verilog code and understanding the behavior of digital designs through
waveform analysis.We started by creating a new project in ModelSim and adding Verilog
design files along with their testbenches. The instructor guided us through compiling the files,
running simulations, and using the graphical waveform viewer to monitor signal changes over
time. This visual representation helped us understand how signals interact and how the design

Dept. of ECE, AIET 25


Mijar
Advanced Digital RTL Design
responds to different

Dept. of ECE, AIET 26


Mijar
Advanced Digital RTL Design
inputs.ModelSim also allowed us to step through the simulation, set breakpoints, and observe
internal signals, which was especially useful for debugging complex logic. We explored how to
use commands in the transcript window and how to save simulation setups for repeated testing.

5. Intel Quartus Prime

During Week 3 of the internship, we had a session focused on Intel Quartus Prime, a
comprehensive FPGA development software suite used for designing digital systems on Intel
(formerly Altera) FPGAs. The session introduced us to the Quartus workflow, starting from
creating a new project to synthesizing and programming the design onto an FPGA device.We
learned how to write and add Verilog modules to a Quartus project, assign input and output pins
using the Pin Planner, and compile the design to check for errors. After successful compilation,
we explored the Timing Analyzer and RTL Viewer to understand how the design was
interpreted by the tool.Additionally, we were shown how to generate a programming file (.sof)
and how to upload it to a physical FPGA board using the Quartus Programmer. This hands-on
experience demonstrated the complete flow from code to hardware implementation.

4.3 10th Week Report: Verilog Syntax and Data Types

Week Covered: Week 10

Topics Covered:

1. Verilog Module Structure

2. Comments and Identifiers

3. Verilog Operators

4. Data Types in Verilog

5. Constants and Literals

6. Parameters and Localparams

1. Verilog Module Structure

Dept. of ECE, AIET 27


Mijar
Advanced Digital RTL Design
In Week 10, we focused on understanding the Verilog module structure, which is the
foundation of all Verilog hardware design. A module in Verilog represents a self-contained
hardware block with a well-defined interface and functionality. Each design begins with a
module declaration that includes the module name and a list of ports—these are the input, output,
and bidirectional signals through which the module communicates with other components. The
structure of a Verilog module follows a standard format: it starts with the module keyword,
followed by the module name, port list, declarations, internal logic, and ends with endmodule.
Verilog allows ports to be defined using three types: input, output, and inout, with optional bit-
width specifications. Internally, the module may contain data declarations like wire for
combinational connections and reg for signals assigned in procedural blocks. These data types
help define the nature of signals— whether they are connected to logic gates or store values in
sequential logic.Another critical aspect of the module structure is hierarchical design. Verilog
supports the instantiation of one module inside another, allowing designers to build complex
systems by connecting smaller building blocks. Each instantiated module includes the module
name, instance name, and port mapping. This encourages modular and reusable design, which is
essential for managing large digital systems.

2. Comments and Identifiers

In this topic, we studied comments and identifiers in Verilog, both of which are fundamental
to writing readable, maintainable, and error-free code. Comments are non-executable parts of the
code meant for human understanding. They are used to explain the purpose and functionality of
code segments, document module behavior, or temporarily disable code during testing and
debugging. Verilog supports two types of comments: single-line comments, which begin with //
and extend to the end of the line, and multi-line comments, which are enclosed between /* and
*/. Proper use of comments improves the clarity of the code, especially in large or collaborative
projects, by helping others (and the original developer) understand the logic and structure.

Along with comments, identifiers are essential naming elements in Verilog that are used to label
modules, signals, ports, variables, and parameters. Identifiers must begin with a letter (a–z, A–Z)
or an underscore (_) and may include letters, digits (0–9), or underscores thereafter. Importantly,
identifiers in Verilog are case-sensitive, meaning data, Data, and DATA would be treated as

Dept. of ECE, AIET 28


Mijar
Advanced Digital RTL Design
different names. Good identifier naming practices involve using descriptive and meaningful
names that reflect their purpose, such as clk, reset_n, or data_out, which improve the readability
and maintainability of the code.

3. Verilog Operators

In this topic, we explored Verilog operators, which are essential tools for expressing logic,
arithmetic, comparisons, and data manipulation in digital designs. Verilog supports a wide range
of operators, grouped into categories such as arithmetic, relational, logical, bitwise, reduction,
shift, and conditional operators. Each group serves a unique purpose and helps designers
describe complex hardware behavior efficiently and accurately.

Arithmetic operators like +, -, *, /, and % are used to perform basic mathematical operations on
numeric values. They are typically used in counters, arithmetic units, and procedural
assignments. Relational operators such as ==, !=, <, >, <=, and >= are used to compare values
and are commonly used in conditional blocks like if, case, and loop conditions. Logical
operators, including && (logical AND), || (logical OR), and ! (logical NOT), evaluate Boolean
expressions and return a single-bit result based on logic conditions.

Bitwise operators, such as &, |, ^, ~, and their NAND/NOR equivalents (~&, ~|), perform
operations at the individual bit level, making them useful for masking, flag checking, and bit
manipulation. Reduction operators apply a single logic operation across all bits of a vector and
reduce it to a single value, such as &a to check if all bits in a are 1. Shift operators (<<, >>, <<<,
>>>) move bits to the left or right, either logically or arithmetically, and are essential in
implementing shift registers and arithmetic functions.

4. Data Types in Verilog

In this topic, we learned about the various data types in Verilog, which are crucial for
modeling and simulating digital systems accurately. Verilog data types define how information is
stored, transmitted, and manipulated within hardware descriptions. They are broadly categorized
into net types and variable types, each serving a distinct purpose depending on the nature of the
signal and the modeling approach used.

Dept. of ECE, AIET 29


Mijar
Advanced Digital RTL Design
Net types, such as wire, represent physical connections between hardware elements. Nets are
used when signals are driven continuously by logic gates or assign statements. For instance, a
wire connects the output of one module to the input of another or defines interconnections in
gate-level or dataflow modeling. Nets do not store values; instead, they reflect the current value
being driven from their source.

On the other hand, variable types like reg, integer, and real are used to hold values in procedural
blocks (e.g., always, initial). The reg type is the most commonly used and can store a value
across time, making it ideal for sequential logic and state machines. Despite the name, reg does
not imply a physical register unless synthesized that way. Integer and real types are often used in
simulations or for loop counters, especially in testbenches.

5. Constants and Literals

In this topic, we studied constants and literals in Verilog, which are fundamental elements
used to define fixed values within hardware designs. These values do not change during
simulation and are essential for initializing signals, setting configuration parameters, and
specifying control conditions. Verilog supports both numeric and non-numeric literals and allows
designers to specify them in a variety of formats to suit different design needs.Literals are
constant values directly written into the code. They can be unsized or sized. An unsized literal,
such as 10 or 1'b1, defaults to a 32-bit signed number. A sized literal follows the format
<size>'<base><value>, where the size specifies the number of bits, the base indicates the number
system (b for binary, d for decimal, h for hexadecimal, and o for octal), and the value is the
actual number. For example, 4'b1010 defines a 4-bit binary value, while 8'hFF defines an 8-bit
hexadecimal value. Verilog also supports special literal values like x (unknown) and z (high-
impedance), used to represent undefined or floating conditions in digital circuits.

6. Parameters and Localparams

In Week 10, we explored the concept of parameters and localparams, which are key
constructs in Verilog used for defining constant values. These constructs are vital in achieving
code reusability, configurability, and modularity in digital design. Parameters serve as symbolic
constants in Verilog modules. They allow designers to write generic and scalable code by

Dept. of ECE, AIET 30


Mijar
Advanced Digital RTL Design
specifying values such as data widths, delays, and other fixed quantities that can vary between
instances of a module. For instance, in a parameterized adder module, we can define the bit-
width as a parameter so that the same module can be used for 8-bit, 16-bit, or 32-bit additions
just by changing the parameter value during instantiation. Parameters are declared using the
parameter keyword and can be overridden using the #() syntax during module instantiation.
This feature supports top-down design methodology and promotes reuse of HDL code across
multiple projects.

4.4 11th Week Report: Gate-Level Modeling


Week Covered: Week 11

1. Introduction to gate level modelling


2. Logic Gate Primitives
3. Gate Instantiation
4. Net Declarations (wire)
5. Structural Modeling Approach
6. No Procedural Blocks (initial, always)
7. Advantage, disadvantage and applications

1. Introduction to Gate-Level Modeling


Gate-level modeling is one of the abstraction levels in digital design used to describe circuits at
the level of individual logic gates such as AND, OR, NOT, NAND, NOR, XOR, and XNOR.
This modeling style is closest to the physical implementation and is used to define how data
flows through basic logic gates. It focuses on explicitly connecting gates to build combinational
or sequential circuits.

Gate-level modeling is typically written in Hardware Description Languages (HDL) like Verilog
or VHDL using predefined primitive gates. This form of modeling is more detailed than dataflow
or behavioral modeling and is useful in the early stages of digital circuit design, especially when

Dept. of ECE, AIET 31


Mijar
Advanced Digital RTL Design
accuracy at the gate level is important for simulation or educational purposes. Logic gates are the
building blocks of digital circuits. In gate-level modeling, these gates are directly instantiated
using keywords in Verilog such as and, or, not, nand, nor, xor, xnor.

Each gate takes one or more input signals and produces a single output signal based on its logic
function. For instance, the and gate outputs HIGH only when all inputs are HIGH. These gates
are combined to create more complex logic circuits.

The general syntax is: gate_name (output, input1, input2, ...);

2. Logic Gate Primitives

Verilog provides built-in gate primitives like and, or, not, nand, nor, xor, and xnor to describe
logic circuits at the gate level.

3. Gate Instantiation
Each gate in Verilog is instantiated with a unique name and connected to input/output signals. It
models how actual logic gates are connected in hardware.

Syntax:
<gate_type> <instance_name> (output, input1, input2);

4. Net Declarations

All connections between gates must be declared using wire since gate outputs and inputs are
connected through wires

5. Structural ModelingGate-level modeling follows the structural modeling style, where


the system is described as a collection of interconnected gates and modules, mimicking actual
circuit hardware.

6. No Procedural Blocks

Unlike behavioral modeling, gate-level modeling does not use initial or always blocks.
It is completely based on static connections.

Dept. of ECE, AIET 32


Mijar
Advanced Digital RTL Design
4.5 Week 13 Report: Dataflow Level Modeling

Week Covered: Week 13

1. Introduction to Dataflow Modeling


2. Syntax and Operators Used
3. Key Features of Dataflow Modeling
4. Comparison with Other Modeling Styles

1. Introduction to Dataflow Modeling

Dataflow modeling is one of the key design methods in Verilog used to describe the behavior of
a digital system in terms of how data flows between inputs and outputs. It focuses on the
functional relationship using Boolean equations rather than internal hardware structure. This
model is ideal for representing combinational circuits where outputs depend solely on current
inputs.

2. Syntax and Operators Used

In dataflow modeling, the assign statement is used to create continuous assignments. These
assignments describe how outputs are calculated from inputs using operators. Common operators
include:

 Logical: &&, ||, !


 Bitwise: &, |, ^, ~
 Arithmetic: +, -, *, /
 Relational: <, >, ==, !=

This style avoids procedural code (like always blocks) and instead uses direct assignments to
define logic.

3. Key Features of Dataflow Modeling

 Describes logic using equations and expressions.

Dept. of ECE, AIET 33


Mijar
Advanced Digital RTL Design
 Uses the assign keyword for continuous assignments.
 Reflects concurrent behavior — all assignments happen in parallel.
 Best suited for modeling purely combinational circuits.
 Enables clear mapping from Boolean algebra to Verilog code.

4. Comparison with Other Modeling Styles

 Structural Modeling: Describes the circuit by interconnecting gates and modules, like
a schematic.
 Behavioral Modeling: Focuses on how the circuit behaves using procedural code
(always blocks, if, case, etc.).
 Dataflow Modeling: Falls between the two, using logical and arithmetic expressions
to describe how data moves and transforms.

Dataflow is more abstract than structural but simpler than behavioral for small combinational logic
designs.

5. Applications in Digital Circuit Design

Dataflow modeling is commonly used in:

 Designing logic circuits like adders, subtractors, encoders, decoders.


 Describing arithmetic operations.
 Verifying logic functions using simulation.
 Implementing circuits directly from Boolean expressions or truth tables.
It is particularly useful in the early design and testing phases of digital systems.

4.6 Week 14 Report: Structural Modeling in

Verilog Week Covered: week 14

Structural Modeling in Verilog

Structural Structural modeling in Verilog is a technique used to design digital circuits by

Dept. of ECE, AIET 34


Mijar
Advanced Digital RTL Design
describing how different hardware components, called modules, are connected to each other.
Instead of focusing on the behavior or functionality of the system as a whole, structural modeling
emphasizes how the building blocks are linked together to form a complete circuit. This
approach is widely used in large designs because it promotes modularity and reusability, making
it easier to manage complex systems.

In Verilog, the basic unit of design is the module, which represents a physical hardware
component such as a logic gate, multiplexer, flip-flop, or even a complete subsystem. To define a
module, the designer specifies its name along with its inputs and outputs, typically using a
declaration format like module module_name (input_ports, output_ports) followed by a
description of the internal connections. Inside each module, smaller components or functional
blocks can be described, or it can simply serve as a wrapper that connects other modules.

To build a larger system, one module is placed inside another through a process called
instantiation. Instantiation involves creating a copy of an already-defined module and connecting
its inputs and outputs to signals in the higher-level module. For example, a designer might write
something like module_name instance_name (signal1, signal2) to insert a module into the
design, where instance_name is the local name of this specific copy and the signals define the
connections. This allows designers to reuse the same module multiple times with different signal
connections, promoting efficient and scalable designs.

One of the most important elements in structural modeling is the use of wires to connect
modules. Wires represent physical connections between components and are declared with
simple statements like wire signal_name to create a named connection. Once a wire is declared,
it can be used to link the output of one module to the input of another, allowing signals to flow
properly through the system.

Structural modeling handles both combinational and sequential circuits. Combinational circuits
produce outputs based only on current inputs, without memory or feedback. In Verilog,
combinational connections can be described using continuous assignments, typically written with
the assign keyword followed by a logic expression like assign output = input1 & input2,
meaning the output is always equal to the AND of input1 and input2. This approach allows the
hardware description to directly reflect the physical wiring of gates and logic components.

Dept. of ECE, AIET 35


Mijar
Advanced Digital RTL Design
Sequential circuits, on the other hand, require memory elements such as flip-flops, latches, or
registers to store state across clock cycles. In Verilog, sequential behavior is described using
blocks that respond to changes in signals, especially clock edges. The typical format uses an
always block written as always @(posedge clk) to indicate that the logic inside should update
only on the positive edge of a clock signal. This makes structural modeling suitable not only for
simple gates but also for more complex systems like counters, state machines, and pipelines.

Some key advantages of structural modeling include:

 Clear modularity, where each module can be independently developed, tested, and
reused in different designs.

 Better control over system architecture, since the designer explicitly defines all
connections between components.

 Easy scalability, as the same module can be instantiated multiple times with different
signal connections.

However, structural modeling also has some challenges:

 As the system size increases, the number of interconnections can become large, making
the design harder to read and maintain.

 It can be more verbose and time-consuming compared to behavioral modeling, which


allows for a more abstract, functional description.

Despite these challenges, structural modeling remains a fundamental part of digital design,
particularly in projects where precise control over hardware layout is required. It is widely used
in ASIC and FPGA design flows, where designers often combine structural descriptions with
behavioral descriptions to balance control and simplicity. Simulation tools further enhance the
design process by allowing engineers to test individual modules and the entire system before
committing to hardware implementation.

Dept. of ECE, AIET 36


Mijar
Advanced Digital RTL Design
4.7 Week 15 Report: Behavioral Modeling in Verilog
Week Covered: week 15

1. Behavioral Modeling in Verilog

2. blocking assignments

3. non-blocking assignments

4. conditional statements

5. case statements
1. Behavioral Modeling in Verilog

Behavioral modeling in Verilog is a technique that allows designers to describe what a


digital system should do, focusing on its functional behavior rather than its hardware
implementation details. It is one of the most widely used approaches in digital design because it
offers the highest level of abstraction among Verilog’s modeling styles. Using behavioral
modeling, designers can write hardware descriptions in a way that resembles writing software
code, making it easier to design, simulate, and verify complex digital systems.
In behavioral modeling, the main constructs used are procedural blocks like always and initial.
The always block is central to behavioral code because it executes repeatedly based on changes
in signals listed in its sensitivity list, which makes it suitable for both combinational and
sequential logic. The initial block runs once at the start of simulation and is typically used in
testbenches to initialize variables or apply test stimuli. To control the flow of operations, Verilog
provides structures like if-else statements, case statements, and loops such as for, while, and
repeat. These constructs allow designers to create complex decision-making logic, arithmetic
operations, and iterative behaviors efficiently.
What makes behavioral modeling especially powerful is its ability to express functionality at a
high level without worrying about specific hardware components. For example:
 Finite state machines (FSMs) can be easily described using state variables and case
statements.

Dept. of ECE, AIET 37


Mijar
Advanced Digital RTL Design
 Arithmetic operations like multiplication, division, or shifting can be coded using loops
and conditions, eliminating the need for detailed structural descriptions.

 Control units, counters, and data path controllers can be built efficiently using conditional
and sequential constructs.

One of the key benefits of behavioral modeling is that it speeds up the design process. Since
designers can work at a functional level, they can prototype and verify designs much faster than
if they were building them gate by gate. Behavioral descriptions are also easier to read,
understand, and maintain, which is especially important in large projects or when multiple people
are working on the same codebase. Behavioral models allow engineers to explore different
architectural options or algorithmic improvements without being tied to a specific hardware
structure.
Another major advantage of behavioral modeling is its critical role in verification. Behavioral
constructs are often used to write testbenches that apply input stimuli to a design under test
(DUT) and check the outputs for correctness. For example:
 initial blocks are used to apply test patterns and monitor outputs.

 # delays can simulate timing between events (though they are not synthesizable for
hardware).

 Tasks and functions can be written behaviorally to automate repetitive checks or complex
verification sequences.

However, while behavioral modeling provides flexibility, it also requires careful attention to
synthesizability. Not all behavioral code can be implemented in hardware. Constructs like initial
blocks and # delays are ignored during synthesis and only affect simulation behavior. To ensure a
behavioral model can be successfully synthesized into hardware, designers must follow
synthesizable coding practices, such as using synchronous resets, avoiding non-synthesizable
delays, and controlling loop bounds to prevent unintended hardware generation.
Behavioral modeling also plays a critical role in optimizing hardware resources. Well-written
behavioral code can lead to efficient hardware implementations, while poorly written code may
result in excessive logic usage, unnecessary registers, or timing problems. For example:
 Using non-blocking assignments (<=) inside sequential always blocks ensures proper
flip- flop behavior.

Dept. of ECE, AIET 38


Mijar
Advanced Digital RTL Design
 Including explicit reset logic avoids undefined startup states in real hardware.

 Correctly describing clock and timing behavior using @(posedge clk) or @(negedge rst)
is essential for reliable sequential circuit operation.

Compared to other modeling styles, behavioral modeling stands out for its flexibility and expressive
power. Gate-level modeling, which describes designs using primitive gates and connections, is
detailed but extremely tedious for large circuits. Dataflow modeling, which uses continuous
assignments (assign statements) to describe combinational logic, offers a middle ground but
lacks the ability to easily model sequential behavior. Behavioral modeling, by contrast, allows
designers to describe both dataflow and control flow with high-level constructs, making it the
most versatile approach.
Some examples where behavioral modeling shines include:
 Finite state machines for traffic light controllers, vending machines, or protocol
management.

 Counters, timers, and shift registers in control applications.

 Arithmetic units like adders, subtractors, and multipliers.

 Testbenches for verifying functional correctness before hardware synthesis.

In conclusion, behavioral modeling in Verilog is a cornerstone of modern digital design. It enables


engineers to describe system functionality quickly, accurately, and efficiently, using constructs
that are familiar to both hardware and software designers. When used properly, behavioral
modeling results in high-quality, synthesizable designs that can be implemented on FPGAs,
ASICs, or other digital platforms. Additionally, its use in verification makes it indispensable for
catching design errors early, ultimately saving time and cost in the design process. Behavioral
modeling is a fundamental skill for digital designers and remains a key part of the hardware
design and verification workflow in both academia and industry.

Dept. of ECE, AIET 39


Mijar
Advanced Digital RTL Design
2. Blocking assignments

In Week 15, the study centered on the concept of blocking assignments in Verilog, a
fundamental aspect of writing procedural code in hardware description languages. Blocking
assignments are denoted using the "=" operator and are named "blocking" because they prevent
the execution of the next line of code until the current statement is completed. This sequential
flow of execution mimics traditional software programming and is crucial in describing
combinational logic accurately. Blocking assignments are typically used within initial and
always blocks to model behavior that must follow a strict order, such as in algorithmic state
transitions or arithmetic operations where intermediate values must be computed step by step.

A key take away this week was the difference between blocking and non-blocking assignments.
While blocking assignments execute immediately and sequentially, non-blocking assignments
(using <=) allow parallel execution, which is essential for modeling synchronous sequential
logic like flip-flops and registers. Misuse of blocking assignments in sequential logic can lead
to race conditions and unpredictable simulation results. Therefore, understanding their proper
usage is critical for designing reliable digital systems.

Practical lab sessions and coding exercises reinforced these concepts by implementing simple
circuits, such as arithmetic units and combinational decision-making blocks, using blocking
assignments. Debugging common issues related to timing and simulation behavior helped
deepen the understanding of how blocking assignments affect simulation flow and hardware
modelling. Overall, this week provided valuable insights into structured and efficient Verilog
coding practices, laying the groundwork for more complex digital design projects in the coming
weeks.

3. Non-blocking assignments

In Verilog, non-blocking assignments, denoted by the <= operator, are a crucial feature for
modeling synchronous sequential logic, such as registers and flip-flops. Unlike blocking
assignments, which execute sequentially and wait for one statement to finish before moving to
the next, non-blocking assignments allow all right-hand side expressions in a block to be
evaluated at the beginning of the simulation cycle and then assign the values to the left-hand side
at the end of the cycle. This mimics the behavior of real-world hardware, where multiple
registers update
Dept. of ECE, AIET 40
Mijar
Advanced Digital RTL Design
simultaneously on a clock edge. This parallelism is what makes non-blocking assignments ideal
for use in clocked always blocks (e.g., always @(posedge clk)), ensuring data consistency and
avoiding simulation issues like race conditions or incorrect data propagation. One key advantage
is that they allow designers to write sequential logic that is more predictable and aligns well with
actual hardware behavior. Additionally, non-blocking assignments support the development of
pipelined architectures, finite state machines, and data path logic, where multiple registers need
to update together in one clock cycle. It's important to maintain a clear distinction between
blocking and non-blocking assignments and avoid mixing them in the same procedural block, as
this can cause ambiguous behavior during simulation. In modern digital design practices, non-
blocking assignments are considered a best practice for writing synthesizable, efficient, and
reliable RTL (Register Transfer Level) code. Their proper use not only leads to better simulation
accuracy but also facilitates easier verification and debugging of complex digital systems.

4. Conditional statements

Conditional statements in Verilog are essential for implementing decision-making logic


within digital designs, allowing circuits to respond differently based on input conditions. The
most commonly used conditional statement is the if-else structure, which checks a condition and
executes a block of code if the condition is true; otherwise, it can execute an alternative block.
This is especially useful for modeling combinational logic and control structures in both
simulation and synthesis. Verilog also supports the use of case and casex/casez statements,
which are similar to switch-case constructs in traditional programming languages. These
statements allow designers to evaluate multiple conditions efficiently, making them ideal for
state machines, decoders, and multiplexers. Conditional statements must be used carefully in
synthesis, ensuring all possible input cases are handled to avoid creating unintended latches. In
combinational logic, if all possible conditions are not specified, the synthesis tool may infer
memory elements (like latches), which can lead to unwanted behaviour. For clocked
(sequential) logic, conditional statements inside always @(posedge clk) blocks can control
register updates based on enable signals, reset conditions, or other control logic. By effectively
using conditional statements, designers can create complex, flexible, and intelligent digital
systems that behave correctly under varying input conditions. Proper use also enhances
code readability and maintainability,

Dept. of ECE, AIET 41


Mijar
Advanced Digital RTL Design
contributing to robust hardware design.

5. Case statements

In Verilog, case statements provide a way to implement conditional logic by


evaluating a single expression against multiple potential values. The structure begins with the
case keyword, followed by an expression to be tested, and then a set of possible case items with
corresponding actions. It allows for simpler and more organized code, especially in scenarios
with multiple conditions. A typical case statement matches the value of the expression to
specific case item values, and when a match is found, the corresponding block of code is
executed. The default clause is often included to handle unexpected or unmatched cases,
ensuring that all possible situations are covered. Verilog also offers enhanced versions of the
case statement, such as casex and casez, which allow the use of wildcard values (x for
unknown and z for high impedance states) in comparisons. This flexibility is useful for
modelling certain types of hardware behavior, particularly when dealing with don’t-care
conditions or uncertain logic states. While case statements are widely used in designing finite
state machines (FSMs), decoders, and multiplexers, designers need to be cautious of potential
issues like the creation of unintended latches if all possible cases are not specified.

Dept. of ECE, AIET 42


Mijar
Advanced Digital RTL Design

CHAPTER 5

RTL DESIGN PROJECT – REAL-TIME CLOCK

Objective:

The objective of this project was to design and implement a modular 12-hour Real-
Time Clock (RTC) using Verilog HDL that accurately tracks time in hours, minutes, and
seconds. The design aimed to incorporate AM/PM functionality by toggling a status bit upon
hour overflow at 12, closely emulating real-world clock behavior. The project emphasized
modular and hierarchical design principles, using separate Verilog modules for each time unit
(seconds, minutes, and hours), enabling reusability and clarity. The design was tested and
verified using simulation tools to ensure functional correctness through waveform analysis,
guaranteeing that the timekeeping functionality, including the 12-hour rollover and AM/PM
change, worked as expected. This project provided valuable hands-on experience in RTL
design and implemented low-level digital systems suitable for embedded applications.

Project Description:
This project involved the RTL-level design of a 12-hour real-time clock system
with essential timekeeping and control features. The clock displays time in the HH:MM:SS
format and includes an AM/PM indicator to distinguish between morning and evening hours.
The design incorporates asynchronous reset and enable control signals to ensure reliable
operation and manage power consumption effectively. The clock is implemented using
separate counters for seconds, minutes, and hours, which simplifies the design and allows for
easier testing, maintenance, and future scalability. By using these modular components, the
clock's design follows clear hierarchical principles, ensuring both reusability and flexibility for
potential future extensions. The project demonstrated fundamental digital design techniques
and the effective use of RTL modeling, simulating realistic timekeeping operations.

Dept. of ECE, AIET 43


Mijar
Advanced Digital RTL Design
Block Diagram:

Fig 5.1 Block diagram

Key Verilog Modules:

The key Verilog modules in this design are responsible for implementing the functionality of
the 12-hour real-time clock:

1. second_counter:
This module counts from 0 to 59, incrementing with each clock cycle. Upon reaching 59
seconds, it overflows and triggers a carry-out signal to the minute_counter.

2. minute_counter:
minutes, it triggers a carry-out signal to the hour_counter.

3. hour_counter:
This module maintains a 12-hour format, counting from 1 to 12. After reaching 12, it rolls
back to 1 and toggles the AM/PM indicator to distinguish between morning and evening.

Dept. of ECE, AIET 44


Mijar
Advanced Digital RTL Design

Simultaion:

Tools Used: EDA playground

Fig 5.2 Code Simulation

Fig 5.3 GTK Wave

Dept. of ECE, AIET 45


Mijar
Advanced Digital RTL Design

CHAPTER 6

WORKING

DAYS

Fig 6.1 Campus Glimps

The image above reflects the vibrant and professional atmosphere of the K-
VLSI PG Diploma Program at IIIT-Bangalore. The top section showcases the
serene and well-maintained campus of IIIT-B, located in the heart of
Dept. of ECE, AIET 46
Mijar
Advanced Digital RTL Design
Bengaluru's Electronics City. The campus provides an ideal academic

Dept. of ECE, AIET 47


Mijar
Advanced Digital RTL Design
environment for intensive learning and innovation. The ID badge featured
below marks the official enrollment of participants in the K-VLSI Cohort – II,
The key Verilog modules in this design are responsible for implementing the functionality of
the 12-hour real-time clock:

1. second_counter:
This module counts from 0 to 59, incrementing with each clock cycle. Upon reaching 59
seconds, it overflows and triggers a carry-out signal to the minute_counter.

2. minute_counter:
minutes, it triggers a carry-out signal to the hour_counter.

3. hour_counter:
This module maintains a 12-hour format, counting from 1 to 12. After reaching 12, it
rolls back to 1 and toggles the AM/PM indicator to distinguish between morning and
evening.

A typical case statement matches the value of the expression to specific case item values, and when a
match is found, the corresponding block of code is executed. The default clause is often included to
handle unexpected or unmatched cases, ensuring that all possible situations are covered. Verilog also
offers enhanced versions of the case statement, such as casex and casez, which allow the use of
wildcard values (x for unknown and z for high impedance states) in comparisons. This flexibility is
useful for modelling certain types of hardware behavior, particularly when dealing with don’t-care
conditions or uncertain logic states. While case statements are widely used in designing finite state
machines (FSMs), decoders, and multiplexers, designers need to be cautious of potential issues like the
creation of unintended latches if all possible cases are not specified.

unexpected or unmatched cases, ensuring that all possible situations are covered. Verilog also offers
enhanced versions of the case statement, such as casex and casez, which allow the use of wildcard
values (x for unknown and z for high impedance states) in comparisons. This flexibility is useful for
modelling certain types of hardware behavior,unexpected or unmatched cases, ensuring that all possible
situations are covered. Verilog also offers enhanced versions of the case statement, such as casex and
casez, which allow the use of wildcard values (x for unknown and z for high impedance states) in
comparisons. This flexibility is useful for modelling certain types of hardware behavior,

Dept. of ECE, AIET 48


Mijar
Advanced Digital RTL Design

Fig 6.2 Digital design classroom session

Fig 6.3 Verilog Classroom session

Dept. of ECE, AIET 49


Mijar
Advanced Digital RTL Design
This image captures an ongoing classroom session during the K-VLSI PG Diploma Program

held at IIIT-Bangalore. The session demonstrates an interactive lecture being delivered by a

faculty member or trainer, with participants attentively engaged in the discussion. As part of the

structured academic schedule, such sessions cover topics in digital design, RTL (Register

Transfer Level) modeling, verification, and hands-on tool training. The classroom environment is

equipped with multiple projection screens and whiteboard-based explanations to enhance

conceptual clarity. The timestamp and geo-tag data validate the authenticity and real-time

engagement of participants at the IIIT-B campus located in Electronics City, Bengaluru. This

visual evidence reflects the disciplined and professional learning atmosphere central to the

program's objective of building industry-ready VLSI engineers.

Dept. of ECE, AIET 50


Mijar
Advanced Digital RTL Design

CHAPTER 7

RESULT

The Advanced Digital RTL Design module during my internship offered comprehensive
training in the development and verification of digital systems using Verilog HDL at the register-
transfer level. This module focused on strengthening both theoretical concepts and practical skills
essential for VLSI design. Throughout the course, I gained hands-on experience in modeling a
variety of digital components such as multiplexers, decoders, arithmetic logic units (ALUs),
counters, and finite state machines (FSMs). These designs were implemented using Verilog with
an emphasis on synthesizable code, modularity, and design reuse. The structured approach to
RTL design helped me understand the importance of synchronous logic, timing control, and state
transition logic. I also worked with industry-standard simulation tools like ModelSim and
synthesis tools such as Vivado, which allowed me to simulate, debug, and synthesize my designs
efficiently. Special attention was given to waveform analysis and the identification of functional
and timing bugs, which improved my ability to debug and optimize designs.
In addition to coding and simulation, I learned important RTL design practices including clock
domain management, reset handling, and design partitioning. Each lab session and assignment
helped reinforce the critical design flow from RTL modeling to synthesis and verification,
mirroring the actual workflow followed in the semiconductor industry. The exposure to real-time
design challenges, along with guidance from experienced mentors, enabled me to build
confidence in handling complex design problems independently. The systematic training sessions
also helped me understand how power, area, and timing are considered during RTL design and
optimization. As a result of this module, I have developed a solid foundation in digital design
principles and acquired industry-relevant skills that are directly applicable in ASIC and FPGA
development environments. This experience has significantly prepared me for a career in the
VLSI domain, equipping me with the practical knowledge and technical capabilities required to
contribute meaningfully to real-world RTL design projects.

Dept. of ECE, AIET 51


Mijar
Advanced Digital RTL Design

CHAPTER 8

CONCLUSION

The internship conducted under the K-VLSI program at IIIT-Bangalore has been a
transformative phase in my academic and professional journey. This program provided me with
an in-depth and structured understanding of digital design principles, industry workflows, and
hands-on training that closely mirrors real-world VLSI practices. Among all the modules, the
Advanced Digital RTL Design segment stood out as a cornerstone in shaping my design and
verification capabilities. I learned how to model, simulate, and synthesize digital circuits using
Verilog HDL while adhering to good coding practices and industry standards. I was also
introduced to key concepts such as synchronous design, finite state machine development,
clock/reset strategies, and design modularity, all of which are essential for scalable and
synthesizable hardware design.
The rigorous routine—from attending lectures and lab sessions to completing assignments and
simulations—instilled professional discipline and a deeper sense of responsibility. Working
extensively with EDA tools like ModelSim and Vivado allowed me to bridge the gap between
theoretical learning and practical application. I also became familiar with debugging through
waveform analysis and optimizing RTL code for synthesis and timing. These activities gave me a
clear view of how professional chip design projects are handled and the level of precision they
require.
Beyond technical skills, the internship experience helped improve my soft skills such as time
management, teamwork, and communication. The collaborative learning environment and
support from trainers and mentors created a platform where I could ask questions, solve
problems, and build confidence in my abilities. I now feel equipped with the necessary skills and
mindset to contribute effectively in any entry-level VLSI role, especially in RTL design and
verification domains.
Overall, the internship has been a critical step toward my career goals in the semiconductor
industry. It has not only enhanced my technical skillset but also shaped my outlook as an aspiring
VLSI design engineer. The experience reaffirmed my interest in digital design and inspired me to
continue learning and contributing in this ever-evolving and exciting field.

Dept. of ECE, AIET 52


Mijar
Advanced Digital RTL Design

Dept. of ECE, AIET 53


Mijar

You might also like