Unformatted text preview:

•1CPE 528: Lecture #4 Department of Electrical and Computer Engineering University of Alabama in Huntsville16/01/2003 UAH-CPE528 2Outline® VHDL operators® Functions and Procedures® Operator Overloading® Multivalued Logic and Signal Resolution® IEEE 1164 Standard Logic® Generics® Generate Statements16/01/2003 UAH-CPE528 3VHDL Operators1. Binary logical operators: and or nand nor xor xnor2. Relational: = /= < <= > >=3. Shift: sll srl sla sra rol ror4. Adding: + - & (concatenation)5. Unary sign: + -6. Multiplying: * / mod rem7. Miscellaneous: not abs **• Class 7 has the highest precedence (applied first),followed by class 6, then class 5, etc16/01/2003 UAH-CPE528 4Example of VHDL Operators•216/01/2003 UAH-CPE528 5Example of Shift Operators16/01/2003 UAH-CPE528 6VHDL Functions® Functions execute a sequential algorithm and return a single value to calling program • A = “10010101”• General form16/01/2003 UAH-CPE528 7For Loops16/01/2003 UAH-CPE528 8Add Function•316/01/2003 UAH-CPE528 9VHDL Procedures® Facilitate decomposition of VHDL code into modules® Procedures can return any number of values using output parametersprocedure_name (actual-parameter-list);• General formprocedure procedure_name (formal-parameter-list) is[declarations]beginSequential-statementsend procedure_name;16/01/2003 UAH-CPE528 10Procedure for Adding Bit_vectors16/01/2003 UAH-CPE528 11Parameters for Subprogram Calls16/01/2003 UAH-CPE528 12Review: Operator Overloading® Operators +, - operate on integers ® Write procedures for bit vector addition/subtraction® addvec, subvec® Operator overloading allows using + operator to implicitly call an appropriate addition function® How does it work?® When compiler encounters a function declaration in which the function name is an operator enclosed in double quotes, the compiler treats the function as an operator overloading (“+”)® when a “+” operator is encountered, the compiler automatically checks the types of operands and calls appropriate functions•416/01/2003 UAH-CPE528 13VHDL Package with Overloaded Operators16/01/2003 UAH-CPE528 14Multivalued Logic® Bit (0, 1)® Tristate buffers and buses =>high impedance state ‘Z’® Unknown state ‘X’ ® e. g., a gate is driven by ‘Z’, output is unknown® a signal is simultaneously driven by ‘0’ and ‘1’16/01/2003 UAH-CPE528 15Tristate BuffersResolution function to determine the actual value of f since it is driven from two different sources16/01/2003 UAH-CPE528 16Signal Resolution® VHDL signals may either be resolved or unresolved® Resolved signals have an associated resolution function® Bit type is unresolved –® there is no resolution function® if you drive a bit signal to two different values in two concurrent statements, the compiler will generate an error•516/01/2003 UAH-CPE528 17Signal Resolution (cont’d)signal R : X01Z := ‘Z’; ...R <= transport ‘0’ after 2 ns, ‘Z’ after 6 ns;R <= transport ‘1’ after 4 ns;R <= transport ‘1’ after 8 ns, ‘0’ after 10 ns;16/01/2003 UAH-CPE528 18Resolution Function for X01ZDefine AND and OR for 4-valued inputs?16/01/2003 UAH-CPE528 19AND and OR Functions Using X01Z‘X’‘X’‘0’‘X’‘Z’‘X’‘1’‘0’‘X’‘1’‘0’‘0’‘0’‘0’‘0’‘X’‘X’‘0’‘X’‘X’‘Z’‘1’‘0’‘X’AND‘X’‘1’‘X’‘X’‘Z’‘1’‘1’‘1’‘1’‘1’‘X’‘1’‘0’‘X’‘0’‘X’‘1’‘X’‘X’‘X’‘Z’‘1’‘0’‘X’OR16/01/2003 UAH-CPE528 20IEEE 1164 Standard Logic® 9-valued logic system® ‘U’ – Uninitialized® ‘X’ – Forcing Unknown® ‘0’ – Forcing 0® ‘1’ – Forcing 1® ‘Z’ – High impedance® ‘W’ – Weak unknown® ‘L’ – Weak 0® ‘H’ – Weak 1® ‘-’ – Don’t careIf forcing and weak signal are tied together, the forcing signal dominates. Useful in modeling the internal operation of certain types of ICs.•616/01/2003 UAH-CPE528 21Resolution Function for IEEE 9-valued16/01/2003 UAH-CPE528 22AND Table for IEEE 9-valued16/01/2003 UAH-CPE528 23AND Function for std_logic_vectors16/01/2003 UAH-CPE528 24Generics® Used to specify parameters for a component in such a way that the parameter values must be specified when the component is instantiated ® Example: rise/fall time modeling•716/01/2003 UAH-CPE528 25Rise/Fall Time Modeling Using Generics16/01/2003 UAH-CPE528 26Generate Statements® Provides an easy way of instantiating components when we have an iterative array of identical components® Example: 4-bit RCA 16/01/2003 UAH-CPE528 274-bit Adder16/01/2003 UAH-CPE528 284-bit Adder using


View Full Document

UAH CPE 528 - Lecture Notes

Download Lecture Notes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?