VHDL ( VHSIC Hardware Description Language) is a hardware description language that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gates , for design entry, documentation, and verification purposes. The language was developed for the US military VHSIC program in the 1980s, and has been standardized by the Institute of Electrical and Electronics Engineers (IEEE) as IEEE Std 1076 ; the latest version of which is IEEE Std 1076-2019 . To model analog and mixed-signal systems, an IEEE-standardized HDL based on VHDL called VHDL-AMS (officially IEEE 1076.1) has been developed.
63-618: In 1983, VHDL was originally developed at the behest of the U.S. Department of Defense in order to document the behavior of the ASICs that supplier companies were including in equipment. The standard MIL-STD-454N in Requirement 64 in section 4.5.1 "ASIC documentation in VHDL" explicitly requires documentation of "Microelectronic Devices" in VHDL. The idea of being able to simulate the ASICs from
126-423: A digital voice recorder or a high-efficiency video codec . Application-specific standard product chips are intermediate between ASICs and industry standard integrated circuits like the 7400 series or the 4000 series . ASIC chips are typically fabricated using metal–oxide–semiconductor (MOS) technology, as MOS integrated circuit chips. As feature sizes have shrunk and chip design tools improved over
189-459: A calculation block can be used in many other projects. However, many formational and functional block parameters can be tuned (capacity parameters, memory size, element base, block composition and interconnection structure). A VHDL project is portable. Being created for one element base, a computing device project can be ported on another element base, for example VLSI with various technologies. A big advantage of VHDL compared to original Verilog
252-429: A common synthesizable subset of VHDL that defines what language constructs and idioms map into common hardware for many synthesis tools. IEEE 1076.6 defines a subset of the language that is considered the official synthesis subset. It is generally considered a "best practice" to write very idiomatic code for synthesis as results can be incorrect or suboptimal for non-standard constructs. The multiplexer , or 'MUX' as it
315-562: A gate array. What distinguishes a structured ASIC from a gate array is that in a gate array, the predefined metal layers serve to make manufacturing turnaround faster. In a structured ASIC, the use of predefined metallization is primarily to reduce cost of the mask sets as well as making the design cycle time significantly shorter. For example, in a cell-based or gate-array design the user must often design power, clock, and test structures themselves. By contrast, these are predefined in most structured ASICs and therefore can save time and expense for
378-666: A general rule, if you can find a design in a data book , then it is probably not an ASIC, but there are some exceptions. For example, two ICs that might or might not be considered ASICs are a controller chip for a PC and a chip for a modem . Both of these examples are specific to an application (which is typical of an ASIC) but are sold to many different system vendors (which is typical of standard parts). ASICs such as these are sometimes called application-specific standard products (ASSPs). Examples of ASSPs are encoding/decoding chip, Ethernet network interface controller chip, etc. IEEE Too Many Requests If you report this error to
441-427: A low-cost I/O solution aimed at handling the computer's graphics . Customization occurred by varying a metal interconnect mask. Gate arrays had complexities of up to a few thousand gates; this is now called mid-scale integration . Later versions became more generalized, with different base dies customized by both metal and polysilicon layers. Some base dies also include random-access memory (RAM) elements. In
504-589: A manufacturer held as a stock wafer never gives 100% circuit utilization . Often difficulties in routing the interconnect require migration onto a larger array device with a consequent increase in the piece part price. These difficulties are often a result of the layout EDA software used to develop the interconnect. Pure, logic-only gate-array design is rarely implemented by circuit designers today, having been almost entirely replaced by field-programmable devices. The most prominent of such devices are field-programmable gate arrays (FPGAs) which can be programmed by
567-476: A method of obtaining low cost prototypes. Often called shuttles, these MPWs, containing several designs, run at regular, scheduled intervals on a "cut and go" basis, usually with limited liability on the part of the manufacturer. The contract involves delivery of bare dies or the assembly and packaging of a handful of devices. The service usually involves the supply of a physical design database (i.e. masking information or pattern generation (PG) tape). The manufacturer
630-591: A more verbose coding style for the sake of readability and maintainability. VHDL is frequently used for two different goals: simulation of electronic designs and synthesis of such designs. Synthesis is a process where a VHDL is compiled and mapped into an implementation technology such as an FPGA or an ASIC. Not all constructs in VHDL are suitable for synthesis. For example, most constructs that explicitly deal with timing such as wait for 10 ns; are not synthesizable despite being valid for simulation. While different synthesis tools have different capabilities, there exists
693-401: A much higher skill requirement on the part of the design team. For digital-only designs, however, "standard-cell" cell libraries, together with modern CAD systems, can offer considerable performance/cost benefits with low risk. Automated layout tools are quick and easy to use and also offer the possibility to "hand-tweak" or manually optimize any performance-limiting aspect of the design. This
SECTION 10
#1732780686155756-417: A simulation testbench for stimulus or verification data. There are some VHDL compilers which build executable binaries. In this case, it might be possible to use VHDL to write a testbench to verify the functionality of the design using files on the host computer to define stimuli, to interact with the user, and to compare results with those expected. However, most designers leave this job to the simulator. It
819-432: A simulation-only construct and cannot be implemented in hardware. In actual hardware, the clock is generated externally; it can be scaled down internally by user logic or dedicated hardware. The simulation-only constructs can be used to build complex waveforms in very short time. Such waveform can be used, for example, as test vectors for a complex design or as a prototype of some synthesizer logic that will be implemented in
882-457: A subset of PSL ( Property Specification Language ). These changes should improve quality of synthesizable VHDL code, make testbenches more flexible, and allow wider use of VHDL for system-level descriptions. In February 2008, Accellera approved VHDL 4.0, also informally known as VHDL 2008, which addressed more than 90 issues discovered during the trial period for version 3.0 and includes enhanced generic types. In 2008, Accellera released VHDL 4.0 to
945-448: A third-party as sub-components of a larger ASIC. They may be provided in the form of a hardware description language (often termed a "soft macro"), or as a fully routed design that could be printed directly onto an ASIC's mask (often termed a "hard macro"). Many organizations now sell such pre-designed cores – CPUs, Ethernet, USB or telephone interfaces – and larger organizations may have an entire department or division to produce cores for
1008-428: A variety of sub-standards associated with it that augment or extend it in important ways. 1076 was and continues to be a milestone in the design of electronic systems. VHDL is generally used to write text models that describe a logic circuit. Such a model is processed by a synthesis program, only if it is part of the logic design. A simulation program is used to test the logic design using simulation models to represent
1071-452: Is strongly typed and is not case sensitive . In order to directly represent operations which are common in hardware, there are many features of VHDL which are not found in Ada, such as an extended set of Boolean operators including nand and nor . VHDL has file input and output capabilities, and can be used as a general-purpose language for text processing, but files are more commonly used by
1134-496: Is a manufacturing method in which diffused layers, each consisting of transistors and other active devices , are predefined and electronics wafers containing such devices are "held in stock" or unconnected prior to the metallization stage of the fabrication process . The physical design process defines the interconnections of these layers for the final device. For most ASIC manufacturers, this consists of between two and nine metal layers with each layer running perpendicular to
1197-527: Is designed by using basic logic gates, circuits or layout specially for a design. Structured ASIC design (also referred to as " platform ASIC design ") is a relatively new trend in the semiconductor industry, resulting in some variation in its definition. However, the basic premise of a structured ASIC is that both manufacturing cycle time and design cycle time are reduced compared to cell-based ASIC, by virtue of there being pre-defined metal layers (thus reducing manufacturing time) and pre-characterization of what
1260-412: Is in VHDL 2008 language. More complex counters may add if/then/else statements within the rising_edge(CLK) elsif to add other functions, such as count enables, stopping or rolling over at some count value, generating output signals like terminal count signals, etc. Care must be taken with the ordering and nesting of such controls if used together, in order to produce the desired priorities and minimize
1323-444: Is intermediate between § Gate-array and semi-custom design and § Full-custom design in terms of its non-recurring engineering and recurring component costs as well as performance and speed of development (including time to market ). By the late 1990s, logic synthesis tools became available. Such tools could compile HDL descriptions into a gate-level netlist . Standard-cell integrated circuits (ICs) are designed in
SECTION 20
#17327806861551386-468: Is largely because ASIC devices are capable of integrating large blocks of system functionality, and systems on a chip (SoCs) require glue logic , communications subsystems (such as networks on chip ), peripherals , and other components rather than only functional units and basic interconnection. In their frequent usages in the field, the terms "gate array" and "semi-custom" are synonymous when referring to ASICs. Process engineers more commonly use
1449-468: Is often referred to as a "silicon foundry" due to the low involvement it has in the process. An application-specific standard product or ASSP is an integrated circuit that implements a specific function that appeals to a wide market. As opposed to ASICs that combine a collection of functions and are designed by or for one customer , ASSPs are available as off-the-shelf components. ASSPs are used in all industries, from automotive to communications. As
1512-499: Is on the silicon (thus reducing design cycle time). Definition from Foundations of Embedded Systems states that: In a "structured ASIC" design, the logic mask-layers of a device are predefined by the ASIC vendor (or in some cases by a third party). Design differentiation and customization is achieved by creating custom metal layers that create custom connections between predefined lower-layer logic elements. "Structured ASIC" technology
1575-407: Is raised. Again, there are many other ways this can be expressed in VHDL. The D-type flip-flop samples an incoming signal at the rising (or falling) edge of a clock. This example has an asynchronous, active-high reset, and samples at the rising clock edge. Another common way to write edge-triggered behavior in VHDL is with the 'event' signal attribute. A single apostrophe has to be written between
1638-470: Is relatively easy for an inexperienced developer to produce code that simulates successfully but that cannot be synthesized into a real device, or is too large to be practical. One particular pitfall is the accidental production of transparent latches rather than D-type flip-flops as storage elements. One can design hardware in a VHDL IDE (for FPGA implementation such as Xilinx ISE, Altera Quartus, Synopsys Synplify or Mentor Graphics HDL Designer) to produce
1701-501: Is required. A final point is that when a VHDL model is translated into the "gates and wires" that are mapped onto a programmable logic device such as a CPLD or FPGA , then it is the actual hardware being configured, rather than the VHDL code being "executed" as if on some form of a processor chip. The key advantage of VHDL, when used for systems design, is that it allows the behavior of the required system to be described (modeled) and verified (simulated) before synthesis tools translate
1764-399: Is seen as bridging the gap between field-programmable gate arrays and "standard-cell" ASIC designs. Because only a small number of chip layers must be custom-produced, "structured ASIC" designs have much smaller non-recurring expenditures (NRE) than "standard-cell" or "full-custom" chips, which require that a full mask set be produced for every design. This is effectively the same definition as
1827-629: Is that VHDL has a full type system . Designers can use the type system to write much more structured code (especially by declaring record types). ‹The template Manual is being considered for merging .› In VHDL, a design consists at a minimum of an entity which describes the interface and an architecture which contains the actual implementation. In addition, most designs import library modules. Some designs also contain multiple architectures and configurations . A simple AND gate in VHDL would look something like (Notice that RTL stands for Register transfer level design.) While
1890-408: Is that standard-cell design uses the manufacturer's cell libraries that have been used in potentially hundreds of other design implementations and therefore are of much lower risk than a full custom design. Standard cells produce a design density that is cost-effective, and they can also integrate IP cores and static random-access memory (SRAM) effectively, unlike gate arrays. Gate array design
1953-416: Is used, which represent an infinitely small time step. The simulation alters between two modes: statement execution, where triggered statements are evaluated, and event processing, where events in the queue are processed. VHDL has constructs to handle the parallelism inherent in hardware designs, but these constructs ( processes ) differ in syntax from the parallel constructs in Ada ( tasks ). Like Ada, VHDL
VHDL - Misplaced Pages Continue
2016-425: Is usually called, is a simple construct very common in hardware design. The example below demonstrates a simple two to one MUX, with inputs A and B , selector S and output X . Note that there are many other ways to express the same MUX in VHDL. A more complex example of a MUX with 4x3 inputs and a 2-bit selector: A transparent latch is basically one bit of memory which is updated when an enable signal
2079-464: The RTL schematic of the desired circuit. After that, the generated schematic can be verified using simulation software which shows the waveforms of inputs and outputs of the circuit after generating the appropriate testbench. To generate an appropriate testbench for a particular circuit or VHDL code, the inputs have to be defined correctly. For example, for clock input, a loop process or an iterative statement
2142-430: The open-source software movement in hardware design. Soft macros are often process-independent (i.e. they can be fabricated on a wide range of manufacturing processes and different manufacturers). Hard macros are process-limited and usually further design effort must be invested to migrate (port) to a different process or manufacturer. Some manufacturers and IC design houses offer multi-project wafer service (MPW) as
2205-807: The IEEE for balloting for inclusion in IEEE 1076-2008. The VHDL standard IEEE 1076-2008 was published in January 2009. The IEEE Standard 1076 defines the VHSIC Hardware Description Language , or VHDL. It was originally developed under contract F33615-83-C-1003 from the United States Air Force awarded in 1983 to a team of Intermetrics, Inc. as language experts and prime contractor, Texas Instruments as chip design experts and IBM as computer-system design experts. The language has undergone numerous revisions and has
2268-475: The Micromatrix family of bipolar diode–transistor logic (DTL) and transistor–transistor logic (TTL) arrays. Complementary metal–oxide–semiconductor (CMOS) technology opened the door to the broad commercialization of gate arrays. The first CMOS gate arrays were developed by Robert Lipp, in 1974 for International Microcircuits, Inc. (IMI). Metal–oxide–semiconductor (MOS) standard-cell technology
2331-663: The VHDL Technical Committee of Accellera (delegated by IEEE to work on the next update of the standard) approved so-called Draft 3.0 of VHDL-2006. While maintaining full compatibility with older versions, this proposed standard provides numerous extensions that make writing and managing VHDL code easier. Key changes include incorporation of child standards (1164, 1076.2, 1076.3) into the main 1076 standard, an extended set of operators, more flexible syntax of case and generate statements, incorporation of VHPI (VHDL Procedural Interface) (interface to C/C++ languages) and
2394-408: The ability to integrate analog components and other pre-designed —and thus fully verified—components, such as microprocessor cores, that form a system on a chip . The disadvantages of full-custom design can include increased manufacturing and design time, increased non-recurring engineering costs, more complexity in the computer-aided design (CAD) and electronic design automation systems, and
2457-622: The connected resolution function handles conflicting assignments adequately. The updated IEEE 1076 , in 1993, made the syntax more consistent, allowed more flexibility in naming, extended the character type to allow ISO-8859-1 printable characters, added the xnor operator, etc. Minor changes in the standard (2000 and 2002) added the idea of protected types (similar to the concept of class in C++ ) and removed some restrictions from port mapping rules. In addition to IEEE standard 1164, several child standards were introduced to extend functionality of
2520-434: The design into real hardware (gates and wires). Another benefit is that VHDL allows the description of a concurrent system . VHDL is a dataflow language in which every statement is considered for execution simultaneously, unlike procedural computing languages such as BASIC, C, and assembly code, where a sequence of statements is run sequentially one instruction at a time. A VHDL project is multipurpose. Being created once,
2583-559: The design to be brought into manufacturing more quickly. Cell libraries of logical primitives are usually provided by the device manufacturer as part of the service. Although they will incur no additional cost, their release will be covered by the terms of a non-disclosure agreement (NDA) and they will be regarded as intellectual property by the manufacturer. Usually, their physical design will be pre-defined so they could be termed "hard macros". What most engineers understand as " intellectual property " are IP cores , designs purchased from
VHDL - Misplaced Pages Continue
2646-410: The designer compared to gate-array based designs. Likewise, the design tools used for structured ASIC can be substantially lower cost and easier (faster) to use than cell-based tools, because they do not have to perform all the functions that cell-based tools do. In some cases, the structured ASIC vendor requires customized tools for their device (e.g., custom physical synthesis) be used, also allowing for
2709-503: The development of Ada, VHDL borrows heavily from the Ada programming language in both concept and syntax . The initial version of VHDL, designed to IEEE standard IEEE 1076-1987, included a wide range of data types, including numerical ( integer and real ), logical ( bit and Boolean ), character and time , plus arrays of bit called bit_vector and of character called string . A problem not solved by this edition, however,
2772-410: The example above may seem verbose to HDL beginners, many parts are either optional or need to be written only once. Generally simple functions like this are part of a larger behavioral module, instead of having a separate module for something so simple. In addition, use of elements such as the std_logic type might at first seem to be an overkill. One could easily use the built-in bit type and avoid
2835-476: The following conceptual stages referred to as electronics design flow , although these stages overlap significantly in practice: These steps, implemented with a level of skill common in the industry, almost always produce a final device that correctly implements the original design, unless flaws are later introduced by the physical fabrication process. The design steps also called design flow , are also common to standard product design. The significant difference
2898-519: The functionality of ASICs. Field-programmable gate arrays (FPGA) are the modern-day technology improvement on breadboards , meaning that they are not made to be application-specific as opposed to ASICs. Programmable logic blocks and programmable interconnects allow the same FPGA to be used in many different applications. For smaller designs or lower production volumes, FPGAs may be more cost-effective than an ASIC design, even in production. The non-recurring engineering (NRE) cost of an ASIC can run into
2961-408: The future. Also referred as standard packages. The IEEE Standard Package includes the following: Commercial: Other: Application-specific integrated circuit An application-specific integrated circuit ( ASIC / ˈ eɪ s ɪ k / ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in
3024-520: The implementation of their designs. A solution to this problem, which also yielded a much higher density device, was the implementation of standard cells . Every ASIC manufacturer could create functional blocks with known electrical characteristics, such as propagation delay , capacitance and inductance, that could also be represented in third-party tools. Standard-cell design is the utilization of these functional blocks to achieve very high gate density and good electrical performance. Standard-cell design
3087-528: The information in this documentation was so obviously attractive that logic simulators were developed that could read the VHDL files. The next step was the development of logic synthesis tools that read the VHDL and output a definition of the physical implementation of the circuit. Due to the Department of Defense requiring as much of the syntax as possible to be based on Ada, in order to avoid re-inventing concepts that had already been thoroughly tested in
3150-467: The language. IEEE standard 1076.2 added better handling of real and complex data types. IEEE standard 1076.3 introduced signed and unsigned types to facilitate arithmetical operations on vectors. IEEE standard 1076.1 (known as VHDL-AMS ) provided analog and mixed-signal circuit design extensions. Some other standards support wider use of VHDL, notably VITAL (VHDL Initiative Towards ASIC Libraries) and microwave circuit design extensions. In June 2006,
3213-492: The library import in the beginning. However, using a form of many-valued logic , specifically 9-valued logic ( U , X , 0 , 1 , Z , W , H , L , - ), instead of simple bits (0,1) offers a very powerful simulation and debugging tool to the designer which currently does not exist in any other HDL. In the examples that follow, you will see that VHDL code can be written in a very compact form. However, more experienced designers usually avoid these compact forms and use
SECTION 50
#17327806861553276-469: The logic circuits that interface to the design. This collection of simulation models is commonly called a testbench . A VHDL simulator is typically an event-driven simulator . This means that each transaction is added to an event queue for a specific scheduled time. E.g. if a signal assignment should occur after 1 nanosecond, the event is added to the queue for time +1ns. Zero delay is also allowed, but still needs to be scheduled: for these cases delta delay
3339-423: The mid-1980s, a designer would choose an ASIC manufacturer and implement their design using the design tools available from the manufacturer. While third-party design tools were available, there was not an effective link from the third-party design tools to the layout and actual semiconductor process performance characteristics of the various ASIC manufacturers. Most designers used factory-specific tools to complete
3402-413: The millions of dollars. Therefore, device manufacturers typically prefer FPGAs for prototyping and devices with low production volume and ASICs for very large production volumes where NRE costs can be amortized across many devices. Early ASICs used gate array technology. By 1967, Ferranti and Interdesign were manufacturing early bipolar gate arrays. In 1967, Fairchild Semiconductor introduced
3465-429: The number of logic levels needed. A large subset of VHDL cannot be translated into hardware. This subset is known as the non-synthesizable or the simulation-only subset of VHDL and can only be used for prototyping, simulation and debugging. For example, the following code will generate a clock with a frequency of 50 MHz. It can, for example, be used to drive a clock input in a design during simulation. It is, however,
3528-404: The one below it. Non-recurring engineering costs are much lower than full custom designs, as photolithographic masks are required only for the metal layers. Production cycles are much shorter, as metallization is a comparatively quick process; thereby accelerating time to market . Gate-array ASICs are always a compromise between rapid design and performance as mapping a given design onto what
3591-549: The rest of the organization. The company ARM only sells IP cores, making it a fabless manufacturer . Indeed, the wide range of functions now available in structured ASIC design is a result of the phenomenal improvement in electronics in the late 1990s and early 2000s; as a core takes a lot of time and investment to create, its re-use and further development cuts product cycle times dramatically and creates better products. Additionally, open-source hardware organizations such as OpenCores are collecting free IP cores, paralleling
3654-550: The signal name and the name of the attribute. VHDL also lends itself to "one-liners" such as or or: Which can be useful if not all signals (registers) driven by this process should be reset. The following example is an up-counter with asynchronous reset, parallel load and configurable width. It demonstrates the use of the 'unsigned' type, type conversions between 'unsigned' and 'std_logic_vector' and VHDL generics . The generics are very close to arguments or templates in other traditional programming languages like C++. The example
3717-414: The term "semi-custom", while "gate-array" is more commonly used by logic (or gate-level) designers. By contrast, full-custom ASIC design defines all the photolithographic layers of the device. Full-custom design is used for both ASIC design and for standard product design. The benefits of full-custom design include reduced area (and therefore recurring component cost), performance improvements, and also
3780-418: The user and thus offer minimal tooling charges, non-recurring engineering, only marginally increased piece part cost, and comparable performance. Today, gate arrays are evolving into structured ASICs that consist of a large IP core like a CPU , digital signal processor units, peripherals , standard interfaces , integrated memories , SRAM , and a block of reconfigurable , uncommitted logic. This shift
3843-460: The years, the maximum complexity (and hence functionality) possible in an ASIC has grown from 5,000 logic gates to over 100 million. Modern ASICs often include entire microprocessors , memory blocks including ROM , RAM , EEPROM , flash memory and other large building blocks. Such an ASIC is often termed a SoC ( system-on-chip ). Designers of digital ASICs often use a hardware description language (HDL), such as Verilog or VHDL , to describe
SECTION 60
#17327806861553906-411: Was "multi-valued logic", where a signal's drive strength (none, weak or strong) and unknown values are also considered. This required IEEE standard 1164 , which defined the 9-value logic types: scalar std_logic and its vector version std_logic_vector . Being a resolved subtype of its std_Ulogic parent type, std_logic -typed signals allow multiple driving for modeling bus structures, whereby
3969-448: Was introduced by Fairchild and Motorola , under the trade names Micromosaic and Polycell, in the 1970s. This technology was later successfully commercialized by VLSI Technology (founded 1979) and LSI Logic (1981). A successful commercial application of gate array circuitry was found in the low-end 8-bit ZX81 and ZX Spectrum personal computers , introduced in 1981 and 1982. These were used by Sinclair Research (UK) essentially as
#154845