Professional Documents
Culture Documents
This course will cover two main topics: 1.) The VHDL language and it constraints. 2.) Why one would want to use the language in digital design. However, other questions will be answered such as Where does it fit on the world map of hardware design? Why is it here? Why ever use VHDL?
VHDL
VHSIC Hardware Description Language VHSIC = Very High Speed Integrated Circuit
VHDL History
- Originated from the US Government VHSIC program A need was seen for a method in which to describe a digital circuit in such a manner that it was free from any technical constraints. This would allow the Department of Defense to replace an obsolete component with a new one without large amounts of re-design work. - Further developed by Institute of Electrical and Electronics Engineers (IEEE) - Adopted as an IEEE STANDARD1076 in 1987 Hence VHDL-87! - All IEEE standards are subject to a review every 5 years This is where VHDL-93 comes from!
TKK S-88.133 autumn1999
Vko,MDa, 27.9.1999 OH 5
VHDL - language
IEEE standard hardware description language 1076-1987 VHDL-87 Is based on the ADA language VHDL s worst competitor is VERILOG New VHDL version was approved in 1993. VHDL-93 New VHDL version to be approved early this year. It contains analog signal support. For digital design/modeling Also a AHDL (Analog HDL) is being developed. This is due to the growing importance of mixed signal systems. Most important application is in ASIC (Application Specific Integrated Circuit) design It is used for modeling, simulation, logic synthesis and testing Common method of modeling between designers and design tools
VHDL features
Parallelisms. Different processes can be active independently of each other. This is fundamentally an accurate model for a digital system. Supports hierarchical design, topdown or bottom-up. Supports reuse through its library/package functions where functions and components can be collected Strongly typed language. This is similar to Pascal and other Software programming languages. It means that operands must be of the correct type for a operator to be called
TKK S-88.133 autumn1999
Vko,MDa, 27.9.1999 OH 7
Dynamic types and their use with e.g. attributes: FOR i IN j range LOOP ... where the variable j s range can dynamically changed. Overloading. E.g. the same function can be called with different types of parameters. This is related to typing. To use the same function (operator) on different types of objects (operand) one must define it multiply to be compatible with all the required types.
VHDL - world
Good overview from Internet: http://vhdl.org FAQ, Frequently Asked Questions, in VHDL: http://vhdl.org/vi/comp.lang.vhdl/ VHDL International organizations e.g. standardization Usenet news groups: comp.lang.vhdl Tutorials on the net, VHDL models, libraries, news etc Many conferences. e.g. DAC http://www.mkp.com Documents: 1076-1987 Standard VHDL Language Reference Manual, IEEE standard VHDL... (-93) Numerous books: e.g. Perry VHDL, Bhasker - A VHDL primer Numerous VHDL products, also some Public Domain. The most known manufacturers: Synopsys, Mentor, Cadence, Summit, Renoir, TransEDA Design, Lecturing, Consulting, Subcontracting
Why MODELs
1) Formal model to communicate requirements. 2) Communicate and enhance the understanding of the function of a system 3) Models will allow testing and verification of a design using simulation. Thus allowing for the correction of errors before the system is manufactured. 4) Formal verification of the correctness of a design 5) To allow SYNTHESIS of circuits
To model the design To verify the model To implement the model in hardware (synthesizing) Using a language to do this allows for more levels of abstraction. Giving the designer more freedom to implement ideas, rather than specifics, results in higher quality designs in a shorter time.
Remember!
The idea behind all of these arguments is that: We want to achieve maximum reliability in the design process for a minimum cost and design time!!
Functional
At the most abstract level the system may be described in terms of ALGORITHMS NOTE! This is often called BEHAVIOURAL MODELING Example: loop for each data input loop read the value on this input; scale the value using the current scale factor for this input convert and write.... end loop; wait for 10ms; end loop;
TKK S-88.133 autumn1999
Vko,MDa, 27.9.1999 OH 14
Structural
The system may be described as an interconnection of components like processors, memories and i/o devices. Sometimes called as the Processor Memory Switch, PMS, level. Example:
Geometric
Top level abstraction: How the components described in the structural model are organized on the silicon die. Pad frame
Most designers work more and more away from the center
Entity
Elements of Behavior
- Internal function of an entity is called ARCHITECTURE - An architecture can have a number of alternative functions - A behavioral architecture of an entity consists of Process statements - Process statements are a collection of actions executed in sequence (sequential statements) Example:
architecture behav of reg4 is begin storage : process is variable stored_d0, stored_d1, stored_d2, stored_d3 : bit; begin if en = '1' and clk = '1' then stored_d0 := d0; stored_d1 := d1; stored_d2 := d2; stored_d3 := d3; end if; q0 <= stored_d0 after 5 ns; q1 <= stored_d1 after 5 ns; q2 <= stored_d2 after 5 ns; q3 <= stored_d3 after 5 ns; wait on d0, d1, d2, d3, en, clk; end process storage; end architecture behav;
TKK S-88.133 autumn1999
Vko,MDa, 27.9.1999 OH 25
Elements of Structure
An implementation of an entity can be viewed as being composed of subsystems An architecture body that only has interconnected subsystems is called an structural architecture body Example:
Structural composition
Subsystem description
entity d_latch is port ( d, clk : in bit; q : out bit ); end d_latch; architecture basic of d_latch is begin latch_behavior : process is begin if clk = '1' then q <= d after 2 ns; end if; wait on clk, d; end process latch_behavior; end architecture basic; entity and2 is port ( a, b : in bit; y : out bit ); end and2; architecture basic of and2 is begin and2_behavior : process is begin y <= a and b after 2 ns; wait on a, b; end process and2_behavior; end architecture basic;
Structural architecture
architecture struct of reg4 is signal int_clk : bit; begin bit0 : entity work.d_latch(basic) port map (d0, int_clk, q0); bit1 : entity work.d_latch(basic) port map (d1, int_clk, q1); bit2 : entity work.d_latch(basic) port map (d2, int_clk, q2); bit3 : entity work.d_latch(basic) port map (d3, int_clk, q3); gate : entity work.and2(basic) port map (en, clk, int_clk); end architecture struct;
TKK S-88.133 autumn1999
Vko,MDa, 27.9.1999 OH 29
Mixed Models
In models it can be and is often useful to mix structural and behavioral models
One of the strengths of VHDL is the amount of freedom it gives to the designer. Good design is using the appropriate method of modeling.
Test benches
It is an entirely self-contained entity, with no port list, that stimulates the VHDL block under test. The block under test is instantiated as a component in the test bench and structurally connected to the test bench. Test benches will be covered more in detail in lecture #6.