Sie sind auf Seite 1von 44

CHAPTER: 1 VLSI IMPLEMENTATION OF MEMORY CORE USING VHDL

INTRODUCTION: Memory:
In its most basic sense, memory refers to any information or data, often in binary format, that a machine or technology can recall and use. There are many different kinds of memory in conventional computers and other devices, and they differ based on the complex design of the hardware in which they're stored. Computer memory is any physical device capable of storing information temporarily or permanently. For example, Random Access Memory (RAM), is a type of volatile memory and read only memory (ROM) is non volatile memory that is stores information on an integrated circuit, and that is used by the operating system, software, hardware, or the user. Below is an example picture of a 512MB DIMM computer memory module.

Volatile vs. non-volatile memory:


Memory can be either volatile and non-volatile memory. Volatile memory is a temporary memory that loses its contents when the computer or hardware device loses power. Computer RAM is a good example of a volatile memory and is why if your computer freezes or reboots when working on a program you lose anything that hasn't been saved. Non-volatile memory, sometimes abbreviated as NVRAM, is memory that keeps its contents even if the power is lost. EPROM is a good example of a non-volatile memory. Memory is not disk storage It is very common for new computer users to be confused by what parts in the computer are memory. Although both the hard drive and RAM are considered memory, it is more appropriate to refer to RAM as "memory" or "primary memory" and a hard drive as "storage" or "secondary storage" and not memory.

When a program such as your Internet browser is open, it is loaded from your hard drive and placed into RAM, which allows that program to communicate with the processor at higher speeds. Anything you save to your computer such as a picture or video is sent to your hard drive for storage. When someone asks how much memory is in your computer, it is likely between 1GB and 8GB of Random Access Memory (RAM) and several hundred Gigs of hard disk drive memory (storage). In other words, You will almost always have more hard drive space than RAM.

Comparison chart RAM


Random Access Memory or RAM is a form of data storage that can be accessed randomly at any Definition: time, in any order and from any physical location., allowing quick access and manipulation. Stands for: Random Access Memory

ROM
Read-only memory or ROM is also a form of data storage that can not be easily altered or reprogrammed.Stores instuctions that are not nescesary for re-booting up to make the computer operate when it is switched off.They are hardwired. Read-only memory

Use:

RAM allows the computer to read ROM stores the program required to initially data quickly to run applications. It boot the computer. It only allows reading. allows reading and writing. It is non-volatile i.e. its contents are retained even when the device is powered off. The types of ROM include PROM, EPROM and EEPROM.

RAM is volatile i.e. its contents Volatility: are lost when the device is powered off. Types: The two main types of RAM are static RAM and dynamic RAM.

Read Only Memory (ROM):


Read-only memory (ROM) is a type of storage medium that permanently stores data on personal computers (PCs) and other electronic devices. Because ROM is read-only, it cannot be changed; it is permanent and non-volatile, meaning it will also hold its memory even when power is removed. By contrast, random access memory (RAM) is volatile; it is lost when power is removed. Read-only memory (ROM) is a type of memory storage that is permanently integrated into a personal computer (PC). It contains the programming needed to start a PC which is essential

for boot-up; it performs major input/output tasks and holds programs or software instructions. There are numerous ROM chips located on the motherboard and a few on expansion boards. The chips are essential for the basic input/output system (BIOS), boot up, reading and writing to peripheral devices, basic data management and the software for basic processes for certain utilities.

Device that allows permanent storage of information:


Device has k input (address) lines and n output (data) lines. We can store 2k x n bits of information inside the device. The address lines specify a memory location and the data outputs at any time represents the value stored at the memory location specified on the address lines.

Block diagram for a ROM:

Types of ROM:

Programmable Read-Only Memory (PROM) Electrically Programmable Read-Only Memory (EPROM) Electrically Erasable Programmable Read-Only Memory (EEPROM; also called Flash ROM)

Programmable ROM:
Alternatively referred to as a FPROM (field programmable read-only memory) or OTP (one-time programmable) chip, PROM or Programmable ROM is short for Programmable Read Only Memory and is a computer memory chip first developed by Wen Tsing Chow in 1956 that is capable of being programmed once after it has been created. Once the PROM has

been programmed, the information written is permanent and cannot be erased or deleted. A good example of a PROM in a computer is the computer BIOS in early computers. When the PROM is created it Chips with all bits reading as "1" and during the programming any bit that needs to be changed to a 0 is etched or burned into the chip using a device known as a gang programmer. Below is an example of a gang programmer from Advin that programs multiple ROM chips at one time.

If a PROM has been programmed and has an error or needs updated the chip is discarded and a new PROM is created and replaces the old chip. A variation of the PROM is an EPROM, which is a PROM that can be erased and reprogrammed without being replaced.

EPROM

Erasable Programmable Read-Only Memory (EPOM ) is a memory chip that was invented by Dov Frohman in 1971 while at Intel that can only be read . If exposed to ultra-violet light an EPROM can be reprogrammed if needed, but otherwise does not accept or save any new data. Hardware manufacture use EPROM when it may be needed that the data contained on the EPROM needs to be changed. An EPROM chip is distinguishable by a small quartz crystal (not glass) circle window exposes the chip so that

can be reprogrammed. In the picture shown on this page is an example of an Intel 8048 made by NEC and is an example of an EPROM chip. Today, EPROM chips are not used in computers and have been replaced by EEPROM chips. EEPROM

Electrically Erasable Programmable Read-Only Memory, EEPROM is a PROM that can be erased and reprogrammed using an electrical charge that was developed by George Perlegos while at Intel in 1978. Unlike most memory inside a computer, this memory remembers data when the power is turned off. EEPROM was a replacement for PROM and EPROM chips and is used for later computer's BIOS that were built after 1994. Having a computer with an EEPROM allows a computer user to update the BIOS in their computer without having to open the computer or remove any chips.

CHAPTER: 2

INTRODUCTION OF VLSI

Very-large-scale integration (VLSI) is the process of creating integrated circuits by combining thousands of transistor-based circuits into a single chip. VLSI began in the 1970s when complex semiconductor and communication technologies were being developed. The microprocessor is a VLSI device. The term is no longer as common as it once was, as chips have increased in complexity into the hundreds of millions of transistors.

Overview
The first semiconductor chips held one transistor each. Subsequent advances added more and more transistors, and, as a consequence, more individual functions or systems were integrated over time. The first integrated circuits held only a few devices, perhaps as many as ten diodes, transistors, resistors and capacitors, making it possible to fabricate one or more logic gates on a single device. Now known retrospectively as "small-scale integration" (SSI), improvements in technique led to devices with hundreds of logic gates, known as large-scale integration (LSI), i.e. systems with at least a thousand logic gates. Current technology has moved far past this mark and today's microprocessors have many millions of gates and hundreds of millions of individual transistors. At one time, there was an effort to name and calibrate various levels of largescale integration above VLSI. Terms like Ultra-large-scale Integration (ULSI) were used. But the huge number of gates and transistors available on common devices has rendered such fine distinctions moot. Terms suggesting greater than VLSI levels of integration are no longer in widespread use. Even VLSI is now somewhat quaint, given the common assumption that all microprocessors are VLSI or better. As of early 2008, billion-transistor processors are commercially available, an example of which is Intel's Montecito Itanium chip. This is expected to become more commonplace as semiconductor fabrication moves from the current generation of 65 nm processes to the next 45 nm generations (while experiencing new challenges such as

increased variation across process corners). Another notable example is NVIDIAs 280 series GPU. This microprocessor is unique in the fact that its 1.4 Billion transistor count, capable of a teraflop of performance, is almost entirely dedicated to logic (Itanium's transistor count is largely due to the 24MB L3 cache). Current designs, as opposed to the earliest devices, use extensive design automation and automated logic synthesis to lay out the transistors, enabling higher levels of complexity in the resulting logic functionality. Certain high-performance logic blocks like the SRAM cell, however, are still designed by hand to ensure the highest efficiency (sometimes by bending or breaking established design rules to obtain the last bit of performance by trading stability).

What is VLSI?
VLSI stands for "Very Large Scale Integration". This is the field which involves packing more and more logic devices into smaller and smaller areas. VLSI Simply we say Integrated circuit is many transistors on one chip. Design/manufacturing of extremely small, complex circuitry using modified semiconductor material Integrated circuit (IC) may contain millions of transistors, each a few mm in size Applications wide ranging: most electronic logic devices

History of Scale Integration


late 40s Transistor invented at Bell Labs late 50s First IC (JK-FF by Jack Kilby at TI) early 60s Small Scale Integration (SSI) 10s of transistors on a chip late 60s Medium Scale Integration (MSI) 100s of transistors on a chip early 70s Large Scale Integration (LSI) 1000s of transistor on a chip early 80s VLSI 10,000s of transistors on a chip (later 100,000s & now 1,000,000s)

Ultra LSI is sometimes used for 1,000,000s SSI - Small-Scale Integration (0-102) MSI - Medium-Scale Integration (102-103) LSI - Large-Scale Integration (103-105)

VLSI - Very Large-Scale Integration (105-107) ULSI - Ultra Large-Scale Integration (>=107)

Advantages of ICs over discrete components


While we will concentrate on integrated circuits , the properties of integrated circuits-what we can and cannot efficiently put in an integrated circuit-largely determine the architecture of the entire system. Integrated circuits improve system characteristics in several critical ways. ICs have three key advantages over digital circuits built from discrete components: Size. Integrated circuits are much smaller-both transistors and wires are shrunk to micrometer sizes, compared to the millimeter or centimeter scales of discrete components. Small size leads to advantages in speed and power consumption, since smaller components have smaller parasitic resistances, capacitances, and inductances. Speed. Signals can be switched between logic 0 and logic 1 much quicker within a chip than they can between chips. Communication within a chip can occur hundreds of times faster than communication between chips on a printed circuit board. The high speed of circuits on-chip is due to their small sizesmaller components and wires have smaller parasitic capacitances to slow down the signal. Power consumption. Logic operations within a chip also take much less power. Once again, lower power consumption is largely due to the small size of circuits on the chip-smaller parasitic capacitances and resistances require less power to drive them.

VLSI AND SYSTEMS:


These advantages of integrated circuits translate into advantages at the system level.

Smaller physical size. Smallness is often an advantage in itself-consider portable televisions or handheld cellular telephones. Lower power consumption. Replacing a handful of standard parts with a single chip reduces total power consumption. Reducing power

consumption has a ripple effect on the rest of the system: a smaller, cheaper power supply can be used; since less power consumption means less heat, a fan may no longer be necessary; a simpler cabinet with less shielding for electromagnetic shielding may be feasible, too. Reduced cost. Reducing the number of components, the power supply requirements, cabinet costs, and so on, will inevitably reduce system cost. The ripple effect of integration is such that the cost of a system built from custom ICs can be less, even though the individual ICs cost more than the standard parts they replace. Understanding why integrated circuit technology has such profound influence on the design of digital systems requires understanding both the technology of IC manufacturing and the economics of ICs and digital systems. Applications Electronic system in cars. Digital electronics control VCRs Transaction processing system, ATM Personal computers and Workstations Medical electronic systems. Etc.

Applications of VLSI

Electronic systems now perform a wide variety of tasks in daily life. Electronic systems in some cases have replaced mechanisms that operated mechanically, hydraulically, or by other means; electronics are usually smaller, more flexible, and easier to service. In other cases electronic systems have created totally new applications. Electronic systems perform a variety of tasks, some of them visible, some more hidden:

Personal entertainment systems such as portable MP3 players and DVD players perform sophisticated algorithms with remarkably little energy. Electronic systems in cars operate stereo systems and displays; they also control fuel injection systems, adjust suspensions to varying terrain, and perform the control functions required for anti-lock braking (ABS) systems. Digital electronics compress and decompress video, even at high-definition data rates, on-the-fly in consumer electronics. Low-cost terminals for Web browsing still require sophisticated electronics, despite their dedicated function. Personal computers and workstations provide word-

processing, financial analysis, and games. Computers include both central processing units (CPUs) and special-purpose hardware for disk access, faster screen display, etc. Medical electronic systems measure bodily functions and perform complex processing algorithms to warn about unusual conditions. The availability of these complex systems, far from overwhelming consumers, only creates demand for even more complex systems. The growing sophistication of applications continually pushes the design and manufacturing of integrated circuits and electronic systems to new levels of complexity. And perhaps the most amazing characteristic of this collection of systems is its variety-as systems become more complex, we build not a few general-purpose computers but an ever wider range of special-purpose systems. Our ability to do so is a testament to our growing mastery of both

integrated circuit manufacturing and design, but the increasing demands of customers continue to test the limits of design and manufacturing

Software Used
Xilinx
Xilinx software is used by the VHDL/VERILOG designers for performing Synthesis operation. Any simulated code can be synthesized and configured on FPGA. Synthesis is the transformation of VHDL code into gate level net list. It is an integral part of current design flows.
Algorithm Start the ISE Software by clicking the XILINX ISE icon.

Create a New Project and find the following properties displayed.

Create a VHDL Source formatting all inputs, outputs and buffers if required. which provides a window to write the VHDL code, to be synthesized.

Check Syntax after finally editing the VHDL source for any errors. After that perform the RTL and TECHNOLOGY schematic for verifying synthesis.

VHDL
VHDL is an acronym for Very High Speed Integrated Circuits Hardware description Language. The language can be used to model a digital system at many levels of abstraction ranging from the algorithmic level to the gate level. The complexity of the digital system being modeled could vary from that of a simple gate to a complete digital electronic system. The VHDL language can be regarded as an integrated amalgamation of sequential, concurrent, net list and waveform generation languages and timing specifications.

4.1.1 History of VHDL


VHDL stands for VHSIC (Very High Speed Integrated Circuit) Hardware Description Language. It was developed in the 1980s as spin-off of a high-speed integrated circuit research project funded by the US department of defense. During the VHSIC program, researchers were confronted with the daunting task of describing circuits of enormous scale (for their time) and of managing very large circuit design problems that involved multiple teams of engineers. With only gate-level tools available, it soon became clear that more structured design methods and tools would be needed. To meet this challenge, teams of engineers from three companies - IBM, Texas Instruments and Intermetrics were contracted by the department of defense to complete the specification and implementation of a new language based design description method. The first publicly available version of VHDL, version 7.2 was released in 1985. In 1986, the IEEE was presented with a proposal to standardize the language, which it did in 1987 and academic representatives. The resulting

standard, IEEE 10761987 is the basis for virtually every simulation and synthesis product sold today. An enhanced and updated version of the language, IEEE 1076-1993, was released in 1994,

and VHDL tool vendors have been responding by adding these new language features to their products. Although IEEE standard 1076 defines the complete VHDL language, there are aspects of the language that make it difficult to write completely portable design descriptions (description that can be simulated identically using different vendors tools). The problem stems from the fact that VHDL supports many abstract data types, but it does not address the simple problem of characterizing different signal strengths or commonly used simulation conditions such as unknowns and high impedances. Soon after IEEE 1076-1987 [3] was adopted, simulator companies began enhancing VHDL with new non-standard types to allow their customers to accurately simulate complex electronics circuits. This caused problems because design descriptions entered into one simulator were often incompatible with another with other environments. VHDL was quickly becoming a nonstandard. To get around the problem of non-standard data types, an IEEE committee adopted another standard. This standard numbered 1164, defines a standard package (a VHDL feature that allows commonly used declaration to be collected into an external library) containing definition for a standard nine-value data type. This standard data type is called standard logic, and the IELL 1164 package is often referred to as the standard logic package.

The IEEN 1076-1987 and IEEE 1164 standards together form the complete VHDL standard in widest use today (IEEE 1076-1993 is slowly working its way into the VHDL mainstream, but it does not add significant number of features for synthesis users).
In the search for a standard design and documentation tool for the Very High Speed Integrated Circuits (VHSIC) program the United States Department of Defense (DOD) in the summer of 1981 sponsored a workshop on HDLs at Woods Hole, Massachusetts. The conclusion of the workshop was the need for a standard language, and the features that might be required by such a standard in 1983.DoD established requirements for a standard VHSIC hardware description

language(VHDL), based on the recommendation of the Woods Hole workshop. A contract for the development of the VHDL language, its environment, and its software was awarded to IBM, Texas instruments and Intermetrics. VHDL 2.0 was released only six months after the project began. The language was significantly improved hereafter and other shortcomings were corrected leading to the release of VHDL 6.0. In 1985 this significant developments led to the release of VHDL 6.0. In 1985 these significant development led to the release of VHDL 7.2 language reference manual. This was later on developed as IEEE 1076/A VHDL language reference manual.

Efforts for defining the new version of VHDL stated in 1990 by a ream of volunteers working under the IEEE DASC (Design Automation Standards committee). In October of 1992, a new VHDL93 was completed and was released for review. After minor modifications, this new version was approved by the VHDL balloting group members and became the new VHDL language standard. The present VHDL standard is formally referred as VHDL 1076-1993.

4.1.2 Levels of abstraction (Styles) VHDL supports many possible styles of design description. These styles differ primarily in how closely they relate to the underlying hardware. When we speak of the different styles of VHDL, then, we are really talking about the differing levels of abstraction possible using the language. To give an example, it is possible to describe a counter circuit in a number of ways. At the lowest level of abstraction, you could use VHDL's hierarchy features to connect a sequence of predefined logic gates and flip-flips to form a counter circuit.

Fig. 4.1 Levels of abstraction

In a behavioral description, the concept of time may be expressed precisely, with actual delays between related events, or may simply be an ordering of operations that are expressed sequentially. When you are writing VHDL for input to synthesis tools, you may use behavioral statements in VHDL to imply that there are registers in your circuit. It is unlikely, however, that your synthesis tool will be capable of creating precisely the same behavior in actual circuitry as you have defined in the language.

The highest level of abstraction supported in VHDL is called the behavioral level of abstraction. When creating a behavioral description of a circuit, you will describe your circuit in terms of its operation over time. The concept of time is the critical distinction between behavioral descriptions of circuits and lower-level descriptions. If you are familiar with event-driven software programming languages then writing behavior level VHDL will not seem like anything new. Just like a programming language, you will be writing one or more small programs that operate sequentially and communicate with one another through their interfaces. The only difference between behavior-level VHDL and a software programming language such as Visual Basic is the underlying execution platform: in the case of Visual Basic, it is the Windows operating system; in the case of VHDL, it is a simulator. An alternate design method, in which a circuit design problem is segmented into registers and combinational input logic, is what is often called the dataflow level of abstraction. Dataflow is an intermediate level of abstraction that allows the drudgery of combinational logic to be hidden while the more important parts of the circuit, the registers, are more completely specified. There are some drawbacks to using a purely dataflow method of design in VHDL. First, there are no built-in registers in VHDL; the language was designed to be general-purpose, and VHDLs designers on its behavioral aspects placed the emphasis. If you are going to write VHDL at the dataflow level of abstraction, then you must first create behavioral descriptions of the register elements that you will be using in your design. These elements must be provided in the form of components or in the form of subprograms. But for hardware designers, for whom it can be difficult to relate the sequential descriptions and operation of behavioral VHDL with the hardware that is being described, using the dataflow level of abstraction can make quite a lot of sense. Using dataflow, it can be easier to relate a design description to actual hardware devices. The dataflow and behavior levels of abstraction are used to describe circuits in terms of their logical function. There is a third style of VHDL that is used to combine such descriptions together into a larger, hierarchical circuit description. Structural VHDL allows you to encapsulate one part of a design description as a re-usable component. Structural VHDL can be thought of as being analogous to a textual schematic, or as a textual block diagram for higher-level design.

4.1.3 Need for VHDL

The complex and laborious manual procedures for the design of the hardware have paved the way for the development of languages for high level description of the digital system. This high-level description can serve as documentation for the part as well as an entry point into the design process. The high level description can be processed through various boards, or gate array using the synthesis tools of Hardware Description language us such a language. VHDL was designed as a solution to provide an integrated design and documentation to communicate design data between various levels of abstractions.

4.1.4 Advantages of VHDL VHDL allows quick description and synthesis of circuits of 5, 10, 20 thousand gates. It also provides the following capabilities. The following are the major advantages of VHDL over other hardware description languages:

Power and flexibility VHDL has powerful language constructs which allows code description of
complex control logic.

Device independent design VHDL creates design that fits into many device architecture and it
also permits multiple styles of design description.

Portability VHDLs portability permits the design description to be used on different simulators
and synthesis tools. Thus VHDL design descriptions can be used in multiple projects.

ASIC migration The efficiency of VHDL allows design to be synthesized on a CPLD or an FPGA. Sometimes the code can be used with the ASIC.

Quick time to market and low cost VHDL and programmable logic pair together facilitate speedy
design process. VHDL permits designs to be described quickly. Programmable logic eliminates expenses and facilitates quick design iterations

The language can be used as a communication medium between different Computer


Aided Design (CAD) and Computer Aided Engineering (CAE) tools.

The language supports hierarchy, i.e., a digital system can be modeled as a set of interconnected components; each component, in turn, can be modeled as a set of interconnected subcomponents.

The language supports flexible design methodologies: Top-Down, Bottom- Up, or Mixed.

The language is technology independent and hence the same behavior model can be
synthesized into different vendor libraries.

Various digital modeling techniques such as finite-state machine descriptions, algorithmic descriptions and Boolean equations can be modeled using the language.

declared in the interface to the package.

4.1.7.2 Architecture Every entity in a VHDL design description must be bound with a corresponding architecture. The architecture describes the actual function of the entity to which it is bound. Using the schematic as a metaphor, you can think of the architecture as being roughly analogous to a lower-level schematic pointed to by the higher-level functional block symbol. The second part of a minimal VHDL source file is the architecture declaration. Every entity declaration you write must be accompanied by at least one corresponding architecture. The architecture declaration begins with a unique name, followed by the name of the entity to which the architecture is bound. Within the architecture declaration is found the actual functional description of our comparator. There are many ways to describe combinational logic functions in VHDL.

Formal Definition
A body associated with an entity declaration to describe the internal organization or operation of a design entity. An architecture body is used to describe the behavior, data flow or structure of a design entity:

Simplified syntax
Architecture architecture-name of entity-name is Architecture-declarations Begin Concurrent-statements

End [architecture] [architecture-name];

Description
Architecture assigned to an entity describes internal relationship between input and output ports of the entity. It contains of two parts: declarations and concurrent statements. First

(declarative) part of architecture may contain declarations of types, signals, constants, subprograms (functions and procedures), components and groups. Concurrent statements in the architecture body define the relationship between inputs and outputs. This relationship can be specified using different types of statements: Concurrent signal assignment, process statement, component instantiation, and concurrent procedure call, generate statement, concurrent assertion statement, and block statement. It can be writing in different styles: structural, dataflow, behavioral (functional) or mixed. The description of a structural body is based on component instantiation and generates statements. It allows creating hierarchical projects, from simple gates to very complex components, describing entire subsystems. The Connections among components are realized through ports. The Dataflow description is built with concurrent signal assignment statements. Each of the statements can be activated when any of its input signals changes its value. The architecture body describes only the expected functionality (behavior) of the circuit, without any direct indication as to the hard ware implementation. Such description consists only of one or more processes, each of which contains sequential statements. The Architecture body may contain statements that define both behavior and structure of the circuit at the same time. Such architecture description is called mixed.

4.1.7.3 Component declaration

Formal Definition

A component declaration declares a virtual design entity interface that may be used in component instantiation statement. Simplified syntax: Component component-name [generic(generic-list)]; port(port-list); end component [component-name];

4.1.7.4 Component instantiation

Formal Definition
A component instantiation statement defines a subcomponent of the design entity in which it appears, associate signals or values with the ports of that subcomponent, and associates values with generics of that subcomponent.

Simplified syntax
Label: [component] component-name Generic map (generic-association-list); Port map (port-association-list);

4.1.7.5 Configuration declaration

Formal Definition
A configuration is a construct that defines how component instances in a given block are bound to design entities in order to describe how design entities are put together to form a complete design.

Simplified syntax
Configuration configuration-name of entity-name is

Configuration declarations. For architecture-name For instance-label: component-name Use entity library-name. Entity-name (arch-name); End for; end for; end configuration-name;

4.1.7.6 Configuration instantiation

Formal Definition
A component instantiation statement defines a subcomponent of the design entity in which it appears, associates signals or value with the ports of that subcomponent, and associates values with generics of that subcomponent.

Simplified syntax
Label: Configuration configuration-name Generic map (generic-association-list); Port map (port-association-list);

4.1.7.7 Package

Formal Definition
A package declaration defines the interface to a package.

Simplified syntax

Package package-name is Package declarations End [package] package-name; Package body

Formal Definition
A package body defines the bodies of subprograms and the values of deferred constants declared in the interface to the package. Simplified syntax: Package body package-name is Package-body-declarations Subprogram bodies declarations End [package body] package-name;

4.1.7.8 Attributes Attributes are of two types: user defined and predefined. User defined

Formal Definition
A value, function, type, range, signals, or constant that may be associated with one or more named entities in a description.

Simplified syntax
Attribute attribute-name: type; --attribute declaration

Attribute attribute-name of item: item-class is expression attribute specification

Description

Attributes allow retrieving information about named entities: types, objects, subprograms etc. Users can define mew attributes and then assign them to named entities by specifying the entity and the attribute values for it. Predefined

Formal Definition
A value, function, type, range, signals, or constant that may be associated with one or more named entities in a description. Simplified syntax: objects attribute-name

4.1.7.9 Process statement

Formal Definition
A process statement defines an independent sequential process representing the behavior of some portion of the design Simplified syntax: [process-label:] process [(sensitivity-list)]; Process-declarations begin Sequential-statements end process [process-label];

4.1.7.10 Function

Formal Definition
A function call is a subprogram of the form of an expression that returns a value.

Simplified syntax

Function function name(parameters) return type

-- function declaration

Function function-name(parameters) return type is --- function definition. Begin Sequential statements End [function] function-name;

4.1.7.11 Port Formal Definition A channel for dynamic communication between a block and its environment. Simplified syntax: Port (port-declaration, port-declaration,-----); ----port declarations: Port-signal-name: in port-signal-type: =initial-value Port-signal-name: out port-signal-type: =initial-value Port-signal-name: in out port-signal-type: =initial-value Port-signal-name: buffer port-signal-type: =initial-value Port-signal-name: linkage port-signal-type: =initial-value

4.1.7.12 Sensitivity list

Formal Definition
A list of signals a process is sensitive to. Simplified syntax: (Signal-name, signal-name, ---) Formal Definition

4.1.7.13 Standard logic

Formal Definition
A nine-value resolved logic type. Std-logic is not a part of the VHDL standard. It is defined in IEEE Std 1164. Simplified syntax: Type std-ulogic is (U, -- Uninitialized X, -- Forcing Unknown 0, -- Forcing 0 1, -- Forcing 1 Z -- High Impedance W--Weak Unknown L--Weak 1 ---Dont Care); Type std-ulogic-vector is array (natural range <>) of std-ulogic Function resolved (s: std-ulogic-vector) return std-ulogic; Subtype std-logic is resolved std-ulogic;

4.1.8 Data Types There are many data types available in VHDL. VHDL allows data to be represented in terms of high-level data types. These data types can represent individual wires in a circuit, or can represent collections of wires using a concept called an array. The preceding description of the comparator circuit used the data types bit and bit vector for its inputs and outputs. The bit data type (bit vector is simply an array of bits) values of '1' and '0'

are the only possible values for the bit data type. Every data type in VHDL has a defined set of values, and a defined set of valid operations. Type checking is strict, so it is not possible, for example, to directly assign the value of an integer data type to a bit vector data type. (There are ways to get around this restriction, using what are called type conversion functions.) VHDL is rich language with many different data types. The most common data types are listed below: Bit: a 1-bit value representing a wire. (Note: IEEE standard 1164 defines a 9-valued replacement for bit called std_logic.) Bit vector: an array of bits. (Replaced by std_logic_vector in IEEE 1164.) Boolean: a True/False value. Integer: a signed integer value, typically implemented as a 32-bit data type. Real: a floating-point value. Enumerated: used to create custom data types. Record: used to append multiple data types as a collection. Array: can be used to create single or multiple dimension arrays. Access: similar to pointers in C or Pascal. file: used to read and write disk files. Useful for simulation. Physical: used to represent values such as time, voltage, etc. using symbolic units of measure (such as 'ns' or 'ma').

4.1.9 Packages and Package Bodies A VHDL package declaration is identified by the package keyword, and is used to collect commonly used declarations for use globally among different design units. You can think of a

package as being a common storage area, one used to store such things as type declarations, constants, and global subprograms. A package can consist of two basic parts: a package declaration and an optional package body. Package declarations can contain the following types of statements: Type and subtype declarations Constant declarations Global signal declarations Function and procedure declarations Attribute specifications File declarations Component declarations Alias declarations Disconnect specifications Use clauses Items appearing within a package declaration can be made visible to other design units through the use of a use statement. If the package contains declarations of subprograms (functions or procedures) or defines one or more deferred constants (constants whose value is not given), then a package body is required in addition to the package declaration. A package body must have the same name as its corresponding package declaration, but can be located anywhere in the design. The relationship between a package and package body is somewhat akin to the relationship between an entity and its corresponding architecture. While the package declaration provides the information needed to use the items defined within it (the parameter list for a global procedure, or the name of a defined type or subtype), the actual behavior of such things as procedures and functions must be specified within package bodies.

CHAPTER: 3

IMPLIMENTATION:
ROM core is organized as NOR gates pull_dwon transistors of NOR determine programming. Erasable ROMs require special processing that is not typically available. ROMs on digital ICs are generally mask programmed placement of pull-downs determines ROM contents.

FUNCTIONAL IMPLEMENTATION: Can implement multi-input/multi-output logic functions inside of ROM. Data outputs are the logic functions and the address lines are the logic function inputs. We create a ROM Table to store the logic functions. When an input (or address) is presented, the value stored in the specified memory location appears at the data outputs. Each data output represents the correct value for its logic function.

--------------------------------------------------------------

CHAPTER-4
PROGRAM:

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all;

entity MEMORY_CORE is port( Clock : in std_logic; Reset : in std_logic; Enable : in std_logic; Read : in std_logic; Address : in std_logic_vector(4 downto 0);

Data_out: out std_logic_vector(7 downto 0) ); end MEMORY_CORE;

--------------------------------------------------------------

architecture Behav of MEMORY_CORE is

type MEMORY_CORE_Array is array (0 to 31) of std_logic_vector(7 downto 0);

constant Content: MEMORY_CORE_Array := (

0 => "00000001", 1 => "00000010", 2 => "00000011", 3 => "00000100", 4 => "00000101", 5 => "00000110", 6 => "00000111", 7 => "00001000", 8 => "00001001", 9 => "00001010", 10 => "00001011", 11 => "00001100", 12 => "00001101", 13 => "00001110", 14 => "00001111",

-- Suppose MEMORY_CORE has -- prestored value -- like this table --------------

OTHERS => "11111111" );

begin process(Clock, Reset, Read, Address) begin if( Reset = '1' ) then Data_out <= "ZZZZZZZZ"; elsif( Clock'event and Clock = '1' ) then if Enable = '1' then if( Read = '1' ) then

Data_out <= Content(conv_integer(Address)); else Data_out <= "ZZZZZZZZ"; end if; end if; end if; end process; end Behav;

--------------------------------------------------------------

CHAPTER: 5
SPECIFICATIONS:
more speed less power low cost

MODULES:
FDE-D flip flop with enable. FDPE-D flip flop with preset ROM buffer. ROM Buffer

PROPERTIES: Spartan 3e Xc3s 100e VQ 100

Memory size:
32 Locations in each consists of 8 bit.

Advantages: The operation is performed in a very less time. It works at a speed of 4.347ns. Disadvantages:
Its takes more time for manufacturing process.

Das könnte Ihnen auch gefallen