Professional Documents
Culture Documents
This report is the summarization of the concepts and practical knowledge that I have learnt
during my summer training program. In this project report, I have included various concepts
used in the VLSI designing using VHDL and the working of the Programmable Logic Devices.
In addition to that. This report also includes the details of the Institution from where I did my
summer training.
Additionally, the report also summarizes the details of the EDA Company Mentor Graphics,
comprising of its marketing policy and the areas of its working.
Doing this Project report helped me to enhance my knowledge regarding a frontier company in
the field of Semiconductor and brushed up my concepts learnt during summer training.
Through this report I also came to know about role of devotion towards the work.
INDEX
Chapter 1 Introduction
1.1. Introduction
1.2. Background of the company
1.3. Organizational structure
1.4. Nature of the business
1.5. Products
1.6. Market strength
1.7. Conclusion
Chapter 2 Organization Infrastructure
2.1. Priganik Technology Pvt. Ltd.
2.2. Mentor Graphics
Chapter 5 Conclusion
5.1. Future Prospects of VHDL
5.2. Conclusion
Annexure............................................................................................
References.........................................................................................
LIST OF TABLES
2.3 CPLD
2.5 FPGA
1.1. Introduction
Priganik Technologies Pvt. Ltd. is an efficient Electronics Training and Development company,
working towards the best career prospect of the growing engineers.
PRIGANIK offers a wide spectrum of technical courses and application courses designed to
suit every skill level, as well as the ability to consult directly with organizations to tailor made
learning plans for any number of employees. Our products and services have a wide appeal and
are applicable to those in varied positions including embedded design engineer, embedded
developer, systems architects, test engineers, software developers, help desk staff, IT managers,
senior executives, administrative assistants and business professionals.
Priganik Technologies with its foundation pillars as Innovation, Information and
Intelligence is exploring indefinitely as a Technology service provider and as a Training
Organization.
Vision:
Our Roadmap starts with our mission, which is enduring. It declares our purpose as a company
and serves as the standard against which we weigh our actions and decisions.
Mission:
To promote Technical education in India and Abroad.
To create value and make a difference in the field of education.
To provide sustainable, advanced technology solutions and services to our clients.
Our vision serves as the framework for our Roadmap and guides every aspect of our business
by describing what we need to accomplish in order to continue achieving sustainable and
quality growth.
The company is a private enterprise and comes under the private sector. The company has its
own board of members and has its branches at Jaipur, Bangalore and Pune. It is basically a
service provider and its R&D centre is at Bangalore.
Technical Workshops & Seminars: On the journey to share its expertise with budding
engineers, Priganik has come across 10000 + students. The different themes of these workshops
have been VLSI Design, FPGA Design, Advance Embedded System, Robotics and many of its
kind in top notch colleges.
Training Programs: Vacations have never been this fun! Priganik organizes Summer Trainings
and Internships on Embedded Systems & VLSI Design, FPGA Design, LabVIEW, and
MATLAB for the students to get an edge above the others.
1.5. Products:
The company comes under service sector and provides training and provides workshop facilities
in the following arenas.
Modelsim
Xilinx-ISE navigator
Quartus-II
Keil compiler
Proteus simulator
Top view simulator
AVRstudio-4
WinAVR
AVRdude
Matlab
Multisim and Ultiboard
Lab view
Matlab
Tanner Tools
1.5.1. MATLAB:
Historical background, Applications, Scope of MATLAB, Importance of MATLAB for
Engineers, Features, MATLAB Windows (Editor, Work Space, Command History, Command
Window), Operations with Variables, Naming and Checking Existence, Clearing Operations,
Introduction to Arrays and MATLAB File Types.
1.5.2. Robotics:
Robotics is a field that covers almost all the spheres of technology, whether it is Mechanical,
Electronics, Computer Programming, Designing Techniques or any other technical skills based
on respective applications. This is basically a micro controller based robotic workshop which
gives an exposure about the autonomous robotics to the students. As this field is leading to
introduce a creative era of innovation around us, the basic motto of our team is to initiate the
spark of robotics to a higher extent. These projects focus on the application and use of
technology rather than their internal working so that a person can grasp the concepts well.
1.5.4 Verilog-Hdl:
Hardware description languages such as Verilog differ from software programming languages
because they include ways of describing the propagation of time and signal dependencies
(sensitivity). There are two assignment operators, a blocking assignment (=), and a non-
blocking (<=) assignment. The non-blocking assignment allows designers to describe a state-
machine update without needing to declare and use temporary storage variables.
2.1.1. Introduction
PRIGANIK offers a wide spectrum of technical courses and application courses designed to
suit every skill level, as well as the ability to consult directly with organizations to tailor made
learning plans for any number of employees.
Industrial training: The students on the completion of their Graduate or Post Graduate
courses are expected to gain experience in a technical field according to the present
condition of the market. As the institute keeps upgrading its training modules according
to the market scenario, consequently it also helps in delivering a decent Industrial
training to the concerned student.
Faculty training: From time to time, the faculties of different colleges also have to get
training on different recent technologies and the Institute also works on the same to
provide the training to the faculties at the institute or at the college campus itself.
Corporate training: Apart from all its work in the field to educating students and
faculties in colleges and universities, the clients of Priganik are also from the corporate
world.
Xilinx-ISE navigator: This software provides the work environment for the
development of the code in Hardware Description Languages such as VHDL. It
supports two hardware description languages, VHDL and Verilog. It also supports the
integration of various simulation tools into itself.
Quartus-II: Quartus II is a software tool produced by Altera for analysis and synthesis
of HDL designs, which enables the developer to compile their designs, perform timing
analysis, examine RTL diagrams, simulate a design's reaction to different stimuli, and
configure the target device with the programmer. The latest version is 13sp1 which is a
service pack of version 13.
Keil compiler: Keil development tools for the 8051 Microcontroller Architecture
support every level of software developer from the professional applications engineer to
the student just learning about embedded software development.
Lab view: LabVIEW (short for Laboratory Virtual Instrument Engineering Workbench)
is a system-design platform and development environment for a visual programming
language from National Instruments. The graphical language is named "G" (not to be
confused with G-code). Originally released for the Apple Macintosh in 1986, LabVIEW
is commonly used for data acquisition, instrument control, and industrial automation on
a variety of platforms including Microsoft Windows, various versions of UNIX, Linux,
and Mac OS X. The latest version of LabVIEW is LabVIEW 2013, released in August
2013.
Tanner Tools: Tanner EDA provides a complete line of software solutions that
catalyze innovation for the design, layout and verification of analog and mixed-signal
(A/MS) integrated circuits (ICs).
One of the training zones at Jaipur has about 10 personal computers and 10 CPLD and
FPGA hardware kits and all those hardware parts required for circuit designing on PCB.
Following are some of the hardware kits available at the institute for the practical
implementation of the technologies such as VHDL and VERILOG.
CPLD: Complex Programmable Logic Devices (CPLDs) are exactly what they claim to
be. Essentially they are designed to appear just like a large number of PALs in a single
chip, connected to each other through a crosspoint switch. They use the same
development tools and programmers, and are based on the same technologies, but they
can handle much more complex logic and more of it. The devices are programmed
using programmable elements that, depending on the technology of the manufacturer,
can be EPROM cells, EEPROM cells, or Flash EPROM cells.
FPGA: Field Programmable Gate Arrays are called this because rather than having a
structure similar to a PAL or other programmable device, they are structured very much
like a gate array ASIC. This makes FPGAs very nice for use in prototyping ASICs, or in
places where and ASIC will eventually be used. For example, an FPGA may be used in
a design that need to get to market quickly regardless of cost. Later an ASIC can be
used in place of the FPGA when the production volume increases, in order to reduce
cost. Each FPGA vendor has its own FPGA architecture, but in general terms they are
all a variation. The architecture consists of configurable logic blocks, configurable I/O
blocks, and programmable interconnect. Also, there will be clock circuitry for driving
the clock signals to each logic block, and additional logic resources such as ALUs,
memory, and decoders may be available. The two basic types of programmable
elements for an FPGA are Static RAM and anti-fuses.
2.2.1. INTRODUCTION
Mentor Graphics Corporation, founded in 1981, is a technology leader in electronic design
automation (EDA), providing software and hardware design solutions that enable companies to
develop better electronic products faster and more cost-effectively. The company’s
common stock trades on the NASDAQ National Market under the ticker symbol MENT. Its
corporate headquarters are located in Wilsonville, Oregon, USA; San Jose, California, USA;
and Manchen, Germany. Active within the embedded software industry, Mentor Graphics
engages in the development of EDA software and systems for electrical engineering and
electronics. In other words, the company offers EDA solutions for both the hardware
components (chips and boards) and the software components (the embedded operating systems
and applications/drivers that control the product’s operation). It delivers products and services
worldwide, principally to companies in the communications, computer, consumer electronics,
and semiconductor, networking, multimedia, military/aerospace and transportation industries.
Its products, which are used in designing and developing a set of electronic products, are
categorized into the following design areas: Electronic System Level Design, Embedded
Systems, Intellectual Property, IC (Integrated Circuit) Nanometer Design, Scalable
Verification, PCB (Printed Circuit Board) Systems, FPGA/PLD (Field Programmable Gate
Array/Programmable Logic Device), Design- For-Test (DFT), System Modeling, Electrical
System Design and Harness Engineering, and Vehicle Network Design. Through its network of
worldwide office locations, Mentor Graphics has a global presence in Canada, the Benelux
region (Belgium, the Netherlands and Luxembourg), the United Kingdom, France, Germany,
Hungary, Israel, Italy, Spain, Switzerland, China, India, Korea, Singapore, Taiwan and Japan.
Fig 2.6. Office of Mentor Graphics at Oregon, USA
PCB Systems
Mentor Hyderabad is primarily involved in software development for Mentor’s Printed Circuit
Board (PCB) tools. The development activities support a number of tools ranging from
Schematic Capture and Netlisters, to Layout and Manufacturing preparation.
Cabling and Harness Systems : Mentor Hyderabad is heavily involved in the development of
several products of Mentor’s Cabling and Harness tools – the CHS suite. CHS is data centric
and integrates multiple products through a common data system.
Design-for-Test (DFT)
The DFT group at Mentor Hyderabad is responsible for the development of Boundary Scan
Design Architect, a tool that generates IEEE 1149.1 compliant boundary circuitry. The group is
also responsible for Quality Assurance of all Mentor DFT Tools.
Co-Verification
The R&D team in Mentor Noida is actively working on developing tools and technologies in
the Scalable Functional verification space. It is engaged in development of various aspects of
Questa
Verification Software (multi-language single kernel Verification platform offering simulation,
assertion, formal and unified coverage collection tools) and in Hardware Acceleration solutions
for RTL (compilers and run-time).
Mentor Noida is also pioneer in bringing the second and third generation of CoModeling
technology (SCE-MI standards) for accelerating transaction level C testbenches. SCE-MI based
testbench modeling allows testbenches to be written at a much higher level of abstraction where
the untimed portion of the testbench can be written in C/VC++ and the timed portion can be
written in XRTL (an enhanced RTL subset) System Level Verification. Some patents have
been applied in this area from Mentor NOIDA. Using the same SCEMI technology, higher
performance simulation acceleration is achieved for traditional event-based simulations of HDL
testbenches.
The company has its worldwide reach to countries like Japan, America, Europe and Pacific
Rim. Every country has its regional offices serving as either as the sales and services
department or the research and development department. In India, the company has its network
at Hyderabad, Noida and Bangalore.
2.2.4. HARDWARE AND SOFTWARE
Mentor Graphics provides software and hardware design solutions that enable companies to
develop better electronic products faster and more cost-effectively. They offer innovative
products and solutions that help engineers overcome the design challenges they face in the
increasingly complex worlds of board and chip design. Some of the noted products of the
company are as follows:
Electrical & Wire Harness Design
Embedded Software: Most electronics products today are a synthesis of hardware design and
embedded software, and the embedded software is the main differentiator for product
functionality and performance. As a result, embedded software has increased dramatically in
electronic systems design. Mentor Graphics is the only EDA Company to offer design solutions
for embedded software.
bottlenecks.
Functional Verification: Mentor Graphics provides its customers with critical tools for solving
the increasingly complicated problems of verifying that today’s complex chip designs actually
function as intended. Functional errors at the system level are the leading cause of design
revisions affecting time to market and profitability. Design teams must improve existing
methodologies with tools that scale across design complexity and multiple levels of abstraction.
IC Design: Traditional EDA tools for physical design and verification have reached limits due to
greater manufacturing process variability and the growing size and complexity of designs that
take advantage of the latest nanometer scaling. With the advent of new process technologies,
the handoff between integrated circuit (IC) layout and manufacturing has changed from a
simple check to a multi-step process where the layout design must be enhanced to ensure
efficient manufacturing. This presents a host of challenges related to manufacturing process
effects, photolithography, data volumes, and achieving a cost-effective yield of finished chips
from each wafer. To meet these challenges with confidence, design teams turn to
Mentor Graphics Olympus- SoC place and route system with Multi-Corner-Multi-Mode
timing analysis and DFM-aware layout optimization for rapid closure of physical designs. The
Olympus-SoC system works with the industry-leading integrated Calibre design-to-silicon
platform, which includes physical verification, full-chip, transistor-level parasitic extraction,
model-based design for manufacturability (DFM) solutions, mask data preparation (MDP) and
resolution enhancement technologies (RET), such as optical proximity correction and other
computational lithography techniques
IC Manufacturing
Intellectual Property
Mechanical Analysis: Mentor Graphics newly formed Mechanical Analysis Division (previously
Flomerics) offer a class-leading family of computational fluid dynamics (CFD) simulation
tools. An extensive range of products aimed at helping engineers solve complex everyday
engineering problems quickly and within budget.
PCB Design
PCB Manufacturing, Assembly & Test
Silicon Test and Yield Analysis
System Modeling
Vehicle System Design: A new car now contains 15 percent more electronics than the models
of one year ago, in entertainment, navigation and safety systems. As the electrical wiring
systems in the transportation industry become increasingly complex, so the need for software
solutions to manage this complexity grows
In addition to working in the above mentioned areas of hardware and software, the company
also provide technical solution to other companies in following fields:
3D-IC Design and Test Solutions : To create mixed process SOCs with higher density,
lower power, and greater bandwidth. All without disrupting the existing design flows.
Mentor has full support for 2.5D/3D physical verification, extraction, simulation and
testing.
Foundry Solutions : Mentor Graphics has comprehensive tool flows for every stage of IC
development providing the competitive edge for rapid time to market and first silicon
success at the customer’s choice of foundry provider
Aerospace and Military Solutions: Innovate to exacting specifications. It helps in
learning how their products help their aerospace and military customers design
innovative products at lower cost and in less time while maintaining absolute assurance
of safety and reliability.
Low Power Solutions : Reduce the power consumption. The technologies give the
added boost one needs to address power at every stage in the design flow
DO-254 Solutions: Mentor Graphics helps to meet DO-254 objectives. They offer the
industry’s most comprehensive platform of DO-254 development tools, training and
consultation, along with the partnerships and integrations one needs for his flows.
2.2.6. CONCLUSION
Mentor Graphics is one of the frontier companies in the field of Electronic Design Automation
and is one of the earliest as well. This U.S based company is ranked third in the Electronics
Design field all over the world and has received many awards for its efficient working.
CHAPTER- 3
TECHNOLOGY DESCRIPTION
3.1. INTRODUCTION
“VHDL” stands for “VHSIC Hardware Description Language.” VHSIC, in turn, stands for
“Very High Speed Integrated Circuit, which was a joint program between the US Department
of Defense and IEEE in the mid-1980s to research on high-performance IC technology.
VHDL was standardized by the IEEE in 1987 (VHDL-87) and extended in 1993 (VHDL-93).
3.2. FEATURES
The features of VHDL can be summarized as:
Designs may be decomposed hierarchically.
Each design element has both, a well-defined interface (for connecting it to other
elements) and a precise behavioral specification (for simulating it).
Behavioral specifications can use either an algorithm or an actual hardware structure to
define an element’s operation.
Concurrency, timing, and clocking can all be modeled.
VHDL handles asynchronous as well as synchronous sequential-circuit structures.
The logical operation and timing behavior of a design can be simulated.
VHDL synthesis tools are programs that can create logic-circuit structures directly from
VHDL behavioral descriptions.
Using VHDL, you can design, simulate, and synthesize anything from a simple
combinational circuit to a complete microprocessor system on a chip.
3.3. CAPABILITIES OF VHDL
The following are the major capabilities that VHDL provide along with the feature that
differentiate it from other Hardware Description languages.
1. The language can be used as an exchange medium between chip vender and CAD tool users.
Different chip venders can provide VHDL description of their components to system designers.
CAD tool users can use it to capture the behavior of the design at a high level of abstraction for
functional simulation.
2. The language can also be used as a communication medium between different CAD and
CAM tools. For example a schematic capture program may be used to generate a VHDL
description for the design, which can be used as an input to a simulation program.
3. The language supports hierarchy i.e. a digital system can be modeled as a set of
interconnected sub-components.
4. The language is not technology specific, but is capable of supporting different technologies.
It can support various hardware technologies: for example - new logic types and new
components may be defined; technology specific attributes can be used. By being technology
independent the same model can be synthesized into different vendor libraries.
6. It is an IEEE and ANSI STANDARD; therefore, models described in this language are
portable.
7. The language supports three basic different description styles: structural, data flow and
behavioral. A design may be described in any combination of these three descriptive styles.
8. It supports a wide range of abstraction level ranging from behavioral description to very
precise gate level descriptions. It does not however support modeling at or below the transistor
level. It allows a design to be captured at a mixed level using a single coherent language.
9. Arbitrary large design can be modeled using the language, and there are no limitations
imposed by the language on the size of a design.
10. The language has element that make large-scale modeling easier, for example component,
functions, procedure, and packages.
11. Nominal propagation delays, min-max delay, setup and holding time and spike detection
can all be very naturally done in this language.
12. A model can, not only describe the functionality of a design but also the information about
the design itself in terms of user defined attributes such as total area and speed.
13. A common language can be used to describe library components from different vendors.
Tools that understand VHDL models will have no difficulty in reading models from a variety of
venders since the languages is a standard.
14. Models written in this language can be verified by simulation, since precise simulation
semantics are defined for language construct.
15. The capability of defining new data types provides the power of describe and simulate a
new design technique at a very high level of abstraction without any concern the
implementation details.
A key idea in VHDL is to define the interface of a hardware module while hiding its internal
details. A VHDL entity is simply a declaration of a module’s inputs and outputs, i.e. its external
interface signals or ports. A VHDL architecture is a detailed description of the module’s
internal structure or behavior. You can think of the entity as a “wrapper” for the architecture,
hiding the details of what’s inside while providing the “hooks” for other modules to use it.
VHDL actually allows you to define multiple architectures for a single entity, and it provides a
configuration management facility that allows you to specify which one to use during a
particular synthesis run.
In the text file of a VHDL program, the entity declaration and architecture definition are
separated.
Example – VHDL program for a “not” gate:
entity Not is
port (X, Y: in BIT;
Z: out BIT);
end Inhibit;
architecture Not_arch of Not is
begin
Z <= X not Y;
end Not_arch;
Keywords: entity, port, is, in, out, end, architecture, begin, when, else, and not.
Comments: begin with two hyphens (--) and end at the end of a line.
Identifiers: begin with a letter and contain letters, digits, and underscores. (An
underscore may not follow another underscore or be the last character in an identifier.)
Keywords and identifiers are not case sensitive.
A basic entity declaration has the syntax as shown below:
entity entity-name is
port (signal-names : mode signal-type;
signal-names : mode signal-type;
…
signal-names : mode signal-type);
end entity-names;
All signals, variables, and constants must have an associated “type.” The type specifies the set or
range of values that the object can take on.
Some predefined types are:
Bit, bit_vector, character, integer, real, and string.
A library is a place where the VHDL compiler stores information about a particular design
project, including intermediate files that are used in the analysis, simulation, and synthesis of
the design. For a given VHDL design, the compiler automatically creates and uses a library
named “work” under the current design directory.
Use the library clause at the beginning of the design file to use a standard library.
library ieee;
The clause “library work;” is included implicitly at the beginning of every VHDL design file. A
library name in a design gives it access to any previously analyzed entities and architectures
stored in the library, but it does not give access to type definitions.
A package is a file containing definitions of objects that can be used in other programs.
The kind of objects that can be put into a package include signal, type, constant, function,
procedure, and component declarations. Signals that are defined in a package are “global”
signals, available to any entity that uses the package.
A design can use a package with the statement
use ieee.std_logic_1164.all;
Here, “ieee” is the name of the library. Use the file named “std_logic_1164” within this library.
The “all” tells the compiler to use all of the definitions in this file.
The package syntax:
package package-name is
-- public section: visible in any design file that uses the package
type declarations
signal declarations
component declarations
function declarations procedure declarations
end package-name;
package body package-name is
-- private section: local to the package
type declarations
constant declarations
function definitions -- the complete function definition
procedure definitions
end package-name;
Several additional concurrent statements allow VHDL to describe a circuit in terms of the flow
of data and operations on it within the circuit. This style is called a dataflow description or
dataflow design.
concurrent signal-assignment statement.
signal-name <= expression;
The type for expression must be identical or a sub-type of signal-name.
conditional signal-assignment statement.
process statement.
process (signal-name, signal-name, …, signal-
name)
type declarations
variable declarations
function definitions
procedure definitions
begin
sequential-statement
end process;
3.11. CONCLUSION
The VHDL language is used as hardware description language to design Application Specific
Integrated Circuits. It is used in the programming of Field Programmable Gate Arrays and
Complex Programming Logic Devices. It has its own benefits of being easier in comparison to
other hardware description languages and more user friendly.
CHAPTER- 4
PROJECT DEVELOPMENT
4.1. INTRODUCTION
The VHDL language is used as Hardware Description Language. Hence, a particular code is
designed for describing the behavior of any circuit which after being simulated by its test
bench, has to be loaded on the FPGA or CPLD. Various interfaces are connected to these
programmable devices through which the behavior of the code may be analyzed. Some of the
common interfaces commented to FPGAs or CPLDs are LEDs, Dip Switches, 16 * 2 character
LCD etc.
4.2. FPGA
Very Large Scale Integration (VLSI) Technology has opened the door to powerful digital
circuits at low cost. It has become possible to build chips with more than a million transistors.
Such chips are realized using the full-custom approach, where all parts of VLSI circuit are
carefully tailored to meet a set of specific requirements. Semi-custom approaches such as
standard cells and Mask- Programmed Gate Arrays (MPGAs) have provided an easier way of
designing and manufacturing Application-Specific Integrated Circuits (ASICs).
Field-Programmable Gate arrays (FPGAs) have emerged as the ultimate solution to these
problems because they provide instant manufacturing and low cost prototypes.
4.3. CPLD
A Complex Programmable Logic Device (CPLD) is a combination of a fully programmable
AND/OR array and a bank of macrocells. The AND/OR array is reprogrammable and can
perform a multitude of logic functions. Macrocells are functional blocks that perform
combinatorial or sequential logic, and also have the added flexibility for true or complement,
along with varied feedback paths.
The character LCD is power by +5V. The FPGA I/O signals are powered by 3.3V. However,
the FPGA’s output levels are recognized as valid Low or High logic levels by the LCD. The
LCD controller accepts 5V TTL signal levels and the 3.3V LVCMOS outputs provided by the
FPGA meet the 5V TTL voltage level requirements.
The 390Ω series resistors on the data lines prevent overstressing on the FPGA and Strata Flash
I/O pins when the character LCD drives a High logic value. The character LCD drives the data
lines when LCD_RW is High. Most applications treat the LCD as a write only peripheral and
never read from the display.
The 8-bit parallel interface logic will be developed inside the FPGA to configure the HD44780
based dot matrix LCD controller for the character LCD support. The 16x2 character LCD from
oriole electronics will be used to interface with FPGA through 8 bit parallel mode using FPGA
I/Os.
Fig 4.1. 2*16 Character LCD
The Spartan3 FPGA Kit has a two-character, seven-segment LED display controlled
by FPGA user-I/O pins, as shown in Figure. Each digit shares eight common control signals to
light individual LED segments. Each individual character has a separate anode control input.
To light an individual signal, drive the individual segment control signal Low along with the
associated anode control signal for the individual character.
These switches are used to give high level or low level logic as input to the FPGA for the
required output according to the VHDL code.
Clock
Serial input
Asynchronous set/reset
Synchronous set/reset
Synchronous/asynchronous parallel load
Clock enable
Serial or parallel output.
The shift register output mode may be:
Serial: only the contents of the last flip-flop is accessed by the rest of the circuit
Parallel: the contents of one or several of flip-flops other than the last one, is accessed
Shift modes: left, right, etc.
4.5.2. ALU
ALU (Arithmetic Logic Unit) is a digital circuit which does arithmetic and logical operations.
It’s a basic block in any processor. The block diagram of the ALU is given below. As clear
form the diagram, it receives two input operands 'A' and 'B' which are 8 bits long. The result is
denoted by 'R' which is also 8 bit long. The input signal 'Op' is a 3 bit value which tells the
ALU what operation to be performed by the ALU. Since 'Op' is 3 bits long we can have 2^3=8
operations.
Addition
Subtraction
AND
OR
NAND
NOR
XOR
NOT
The 3 signals that control the working of the character LCD are Register Select,
Read/Write and Enable. The value of Enable if kept at low logic, stops the internal processing
of the LCD, Register Select operation is needed to select the register to write or read data while
R/W command is used to select among the Read and Write operations.
4.6. PROJECT DEVELOPMENT
However, even if a project responds well to its simulation, it is not necessary that it will
behave in the same manner on the hardware, as the simulation only gives the response according
to the code written. It does not involve the restrictions that are faced during implementing the
code on the hardware.
4.8. CONCLUSION
Through the project implementation on both hardware and software gives the complete
knowledge about the RTL (Register Transfer Logic) implementation. A project after being
developed have to be tested on its test bench. The test bench shows the result of the code in
respect to the various inputs given to the code. Afterwards the code is to e planned and mapped
before writing it to the Programming Devices which is done by various methods including
JTAG communication or ETHERNET cable for the proper realization of the program.
CHAPTER-5
CONCLUSION
But today all over world mainly VHDL is used for chip designing at low level. Till now
there are number of drawbacks in VHDL. As main drawback of VHDL is that, there are a
number of features in VHDL that can be simulated but not synthesized. As, final shape to
VHDL was given by IEEE, hence IEEE is working on it continuously and trying to make
available simulation features to synthesis also.
5.2. CONCLUSION
• Learning about VLSI designing has helped me to understand the working of many
Application Specific Integrated Circuits that are used even in daily appliances like
Refrigerator, Washing Machines etc.
• RTL designing has much scope in the hardware sector in upcoming time in India as the
semiconductor market is worth $250 billion. Hence, the knowledge of VHDL also
increases the employability.
• Through my summer training, I came out of the conventional subjects and gained a
small experience of the current hardware industries requirements and expectations.
• Apart from VHDL, there are also come other languages available for the Hardware
Description such as Verilog and System C which have their own benefits and
drawbacks. Yet, there knowledge certainly helps in becoming a good RTL designer.
• The main purpose of designing a code is to make it synthesizable rather than focusing it
to be a code that can be successfully simulated. Hence, during programming a
programmable device, certain hardware restrictions should always be put in mind.
ANNEXURE
library ieee;
use ieee.std_logic_1164.all;
entity shift is
port(C, SI : in std_logic;
SO : out std_logic);
end shift;
8-bit shift-left/shift-right register with a positive-edge clock, serial in, and serial out.
library ieee;
use ieee.std_logic_1164.all;
entity shift is
port(C, SI, left_right : in std_logic;
PO : out std_logic_vector(7 downto 0));
end shift;
architecture archi of shift is
signal tmp: std_logic_vector(7 downto 0);
begin
process (C)
begin
if (C'event and C='1') then
if (left_right='0') then
tmp <= tmp(6 downto 0) & SI;
else tmp <= SI & tmp(7 downto 1);
end if;
end if;
end process;
PO <= tmp;
end archi;
entity simple_alu is
port(Clk : in std_logic; --clock signal
A,B: in signed(7 downto 0); --input operands
Op: in unsigned(2 downto 0); --Operation to be performed
R: out signed(7 downto 1) --output of ALU
);
end simple_alu ;
begin
Reg1 <= A;
Reg2 <= B;
R <= Reg3;
process(Clk)
begin
if(rising_edge(Clk)) then case Op is
when
edge of clock cycle. "000" =>
Reg3
when
Reg3
when
Reg3
Reg3
end Behavioral;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
--Define The Core Entity
ENTITY LCD IS
PORT(
--Counter/VGA Timing
CLK : IN STD_LOGIC
--LCD Control Signal
LCD_ENABLE : OUT STD_LOGIC;
LCD_RW : OUT STD_LOGIC;
LCD_RS : OUT STD_LOGIC;
--LCD Data Signals
end LCD;
--Define The Architecture Of The Entity
ARCHITECTURE behavior of LCD IS
type state_type is ( S0, S1, S2, S3, S4, S5, S6, S7, S8, S9,
S10, S11, S12, S13, S14, S15, S16, S17, S18, S19,S20, S21, S22, S23,
S24, S25,IDLE);
signal current_state: state_type;
BEGIN
PROCESS
VARIABLE cnt: INTEGER RANGE 0 TO 1750000;
BEGIN
when S0 =>
current_state <= S1;
LCD_DATA <= "00110000";
LCD_ENABLE <= '0';
LCD_RW <= '0';
LCD_RS <= '0';
when S1 =>
current_state <= S2;
LCD_DATA <= "00110000";
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '0';
when S2 =>current_state <= S3;
LCD_DATA <= "00110000";
LCD_ENABLE <= '0';
LCD_RW <= '0';
LCD_RS <= '0'
Reset Display
when S3 =>current_state <= S4;
LCD_DATA <= "00000001";
LCD_ENABLE <= '0';
LCD_RW <= '0';
LCD_RS <= '0';
when S4 =>
current_state <= S5;
LCD_DATA <= "00000001";
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '0';
when S5 =>
current_state <= S6;
LCD_DATA <= "00000001";
LCD_ENABLE <= '0';
LCD_RW <= '0';
LCD_RS <= '0';
Display On
when S6 =>current_state <= S7;
LCD_DATA <= "00001110";
LCD_ENABLE <= '0';
LCD_RW <= '0';
LCD_RS <= '0';
when S7 =>current_state <= S8;
LCD_DATA <= "00001110";
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '0';
when S8 =>
current_state <= S9;
LCD_DATA <= "00001110";
LCD_ENABLE <= '0';
LCD_RW <= '0';
LCD_RS <= '1';
Write 'H'
when S9 =>
current_state <= S10;
LCD_DATA <= x"48”;
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '1';
when S10 =>
LCD_ENABLE <= '0';
WRITE 'E'
when S11 =>
current_state <= S12;
LCD_DATA <= X"45”;
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '1';
when S12 =>current_state <= S13;
LCD_ENABLE <= '0';
WRITE 'L'
when S13 =>
current_state <= S14;
LCD_DATA <= X"4C";
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '1';
when S14 =>
current_state <= S15;
LCD_ENABLE <= '0';
WRITE 'L'
when S15 =>
current_state <= S16;
LCD_DATA <= X"4F";
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '1';
when S16 =>
current_state <= S17;
LCD_ENABLE <= '0';
WRITE 'O'
when S17 =>
current_state <= S18;
LCD_DATA <= X"4F";
LCD_ENABLE <= '1';
LCD_RW <= '0';
LCD_RS <= '1';
when S18 =>
current_state <= S19;
LCD_ENABLE <= '0';
when S24 =>
current_state <= S25;
LCD_ENABLE <= '0';
when S25 =>
current_state <= IDLE;
when IDLE =>
current_state <= IDLE;
when others =>
current_state <= IDLE;
end case;
END IF;
END PROCESS;
END behavior;
REFERENCES