ECE 434 Advanced Digital System L15

Slides:



Advertisements
Similar presentations
Multiplexers Section 3-7 Mano & Kime. Multiplexers & Demultiplexers Multiplexers (Selectors) Lab 1 – Behavioral VHDL -- Multiplexers MUX as a Universal.
Advertisements

1 Lecture 13 VHDL 3/16/09. 2 VHDL VHDL is a hardware description language. The behavior of a digital system can be described (specified) by writing a.
1/8/ L17 Resolved SiganlsCopyright Joanne DeGroat, ECE, OSU1 Resolved Signals What are resolved signals and how do they work. Resolution???
Introduction to VHDL VHDL Tutorial R. E. Haskell and D. M. Hanna T1: Combinational Logic Circuits.
Topics of Lecture Structural Model Procedures Functions Overloading.
HDL-Based Digital Design Part I: Introduction to VHDL (I) Dr. Yingtao Jiang Department Electrical and Computer Engineering University of Nevada Las Vegas.
Programming in VHDL Using Processes. How Processes Run A process is either in suspend mode or is running. For a process to run, there has to be a change.
Package with 4-valued logic Signal Attributes Assertion Data Flow description.
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
CPE 626 Advanced VLSI Design Lecture 3: VHDL Recapitulation Aleksandar Milenkovic
Reconfigurable Computing - VHDL - Types John Morris Chung-Ang University The University of Auckland.
IAY 0600 Digital Systems Design
2-Jun-16EE5141 Chapter 3 ä The concept of the signal ä Process concurrency ä Delta time ä Concurrent and sequential statements ä Process activation by.
Basic Concepts in VHDL Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
CPE 626 Advanced VLSI Design Lecture 4: VHDL Recapitulation (Part 2) Aleksandar Milenkovic
VHDL Very High Speed Integrated Circuit Hardware Description Language Shiraz University of shiraz spring 2011.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics VHDL register-transfer modeling: –basics using traffic light controller; –synthesis.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Lecture #7 Page 1 Lecture #7 Agenda 1.VHDL Data Types Announcements 1.n/a ECE 4110– Digital Logic Design.
Chapter 5 Introduction to VHDL. 2 Hardware Description Language A computer language used to design circuits with text-based descriptions of the circuits.
L19 – Resolved Signals. Resolved Signals  What are resolved signals In systems In VHDL Resolution – Isn’t that for resolving conflicts?  Ref: text Unit.
DATA TYPES 1.Pre-Defined Data Types 2. User-Defined Data Types.
16/11/2006DSD,USIT,GGSIPU1 Packages The primary purpose of a package is to encapsulate elements that can be shared (globally) among two or more design.
8-Jan-16EE5141 Chapter 6 Subprograms & Packages Subprogram declaration Subprogram body Package declaration Package body Resolution function Subprogram.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
ECOM 4311—Digital System Design with VHDL
IAY 0600 Digital Systems Design Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
Signals & Data-typesVer 1.1, Copyright 1997, TS, Inc. VHDL S i g n a l s & D a t a T y p e s Page 1.
Case Study: Xilinx Synthesis Tool (XST). Arrays & Records 2.
Chapter 8. Additional Topics in VHDL 권동혁.
Fundamentals of Digital Signal Processing יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב.
IAY 0600 Digital Systems Design
Elements of Structural Models
Introduction To VHDL 홍 원 의.
Basic Language Concepts
Subject Name: FUNDAMENTALS OF HDL Subject Code: 10EC45
IAY 0600 Digitaalsüsteemide disain
HDL simulation and Synthesis (Marks16)
Behavioral Style Combinational Design with VHDL
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
IAY 0600 Digital Systems Design
Behavioral modeling of a dual ported register set.
Copyright Joanne DeGroat, ECE, OSU
CPE 528: Session #7 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
CPE 626 Advanced VLSI Design Lecture 2: VHDL Recapitulation Aleksandar Milenkovic
ECE 434 Advanced Digital System L17
CPE/EE 422/522 Advanced Logic Design L06
ECE 434 Advanced Digital System L08
CPE/EE 422/522 Advanced Logic Design L15
CHAPTER 10 Introduction to VHDL
RTL Style در RTL مدار ترتيبي به دو بخش (تركيبي و عناصر حافظه) تقسيم مي شود. مي توان براي هر بخش يك پروسس نوشت يا براي هر دو فقط يك پروسس نوشت. مرتضي صاحب.
ECE 434 Advanced Digital System L9
CPE 528: Lecture #4 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
CPE/EE 422/522 Advanced Logic Design L08
CPE/EE 422/522 Advanced Logic Design L07
CPE/EE 422/522 Advanced Logic Design L14
CPE/EE 422/522 Advanced Logic Design L11
ECE 434 Advanced Digital System L10
VHDL Discussion Subprograms
IAS 0600 Digital Systems Design
CPE 528: Lecture #5 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
VHDL Discussion Subprograms
IAS 0600 Digital Systems Design
Behavioral modeling of a dual ported register set.
VHDL Data Types Module F3.1.
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

ECE 434 Advanced Digital System L15 Electrical and Computer Engineering University of Western Ontario

Additional Topics in VHDL Attributes Transport and Inertial Delays Operator Overloading Multivalued Logic and Signal Resolution IEEE 1164 Standard Logic Generics Generate Statements Synthesis of VHDL Code Synthesis Examples Files and Text IO 16/11/2018

Attributes associated with signals that return a value Signal Attributes Attributes associated with signals that return a value A’event – true if a change in S has just occurred A’active – true if A has just been reevaluated, even if A does not change A’event B’event T T + 1d A <= B - - B changes at time T 16/11/2018

Signal Attributes (cont’d) Event occurs on a signal every time it is changed Transaction occurs on a signal every time it is evaluated Example: A <= B - - B changes at time T A’event B’event T T + 1d 16/11/2018

Signal Attributes (cont’d) entity test is end; architecture bmtest of test is signal A : bit; signal B : bit; signal C : bit; begin A <= not A after 20 ns; B <= '1'; C <= A and B; process(A, B, C) variable Aev : bit; variable Aac : bit; variable Bev : bit; variable Bac : bit; variable Cev : bit; variable Cac : bit; begin if (A'event) then Aev := '1'; else Aev := '0'; end if; if (A'active) then Aac := '1'; else Aac := '0'; if (B'event) then Bev := '1'; else Bev := '0'; if (B'active) then Bac := '1'; else Bac := '0'; if (C'event) then Cev := '1'; else Cev := '0'; if (C'active) then Cac := '1'; else Cac := '0'; end process; end bmtest; 16/11/2018

Signal Attributes (cont’d) ns /test/a /test/line__15/bev delta /test/b /test/line__15/bac /test/c /test/line__15/cev /test/line__15/aev /test/line__15/cac /test/line__15/aac 0 +0 0 0 0 0 0 0 0 0 0 0 +1 0 1 0 0 0 1 1 0 1 20 +0 1 1 0 1 1 0 0 0 0 20 +1 1 1 1 0 0 0 0 1 1 40 +0 0 1 1 1 1 0 0 0 0 40 +1 0 1 0 0 0 0 0 1 1 16/11/2018

Signal Attributes (cont’d) Attributes that create a signal 16/11/2018

Examples of Signal Attributes 16/11/2018

Using Attributes for Error Checking check: process begin wait until rising_edge(Clk); assert (D’stable(setup_time)) report(“Setup time violation”) severity error; wait for hold_time; assert (D’stable(hold_time)) report(“Hold time violation”) end process check; 16/11/2018

Array Attributes A can be either an array name or an array type. Array attributes work with signals, variables, and constants. 16/11/2018

Recap: Adding Vectors Note: Add1 and Add2 vectors must be dimensioned as N-1 downto 0. Use attributes to write more general procedure that places no restrictions on the range of vectors other than the lengths must be same. 16/11/2018

Procedure for Adding Bit Vectors 16/11/2018

Transport and Inertial Delay 16/11/2018

Transport and Inertial Delay (cont’d) Z3 <= reject 4 ns X after 10 ns; Reject is equivalent to a combination of inertial and transport delay: Zm <= X after 4 ns; Z3 <= transport Zm after 6 ns; Statements executed at time T – B at T+1, C at T+2 A <= transport B after 1 ns; A <= transport C after 2 ns; Statements executed at time T – C at T + 2: Statements executed at time T – C at T + 1: A <= B after 1 ns; A <= C after 2 ns; A <= transport B after 2 ns; A <= transport C after 1 ns; 16/11/2018

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 16/11/2018

VHDL Package with Overloaded Operators 16/11/2018

Overloaded Operators A, B, C – bit vectors A <= B + C + 3 ? Overloading can also be applied to procedures and functions procedures have the same name – type of the actual parameters in the procedure call determines which version of the procedure is called 16/11/2018

Multivalued 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/11/2018

Tristate Buffers Resolution function to determine the actual value of f since it is driven from two different sources 16/11/2018

Signal 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 16/11/2018

Signal 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/11/2018

Resolution Function for X01Z Define AND and OR for 4-valued inputs? 16/11/2018

AND and OR Functions Using X01Z ‘0’ ‘1’ ‘Z’ OR ‘X’ ‘0’ ‘1’ ‘Z’ 16/11/2018

IEEE 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 care If forcing and weak signal are tied together, the forcing signal dominates. Useful in modeling the internal operation of certain types of ICs. In this course we use a subset of the IEEE values: X10Z 16/11/2018

Resolution Function for IEEE 9-valued 16/11/2018

AND Table for IEEE 9-valued 16/11/2018

AND Function for std_logic_vectors 16/11/2018

Generics 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 16/11/2018

Rise/Fall Time Modeling Using Generics 16/11/2018

Generate Statements Provides an easy way of instantiating components when we have an iterative array of identical components Example: 4-bit RCA 16/11/2018

4-bit Adder 16/11/2018

4-bit Adder using Generate 16/11/2018

To Do Read 8.1 – 8.7 16/11/2018