Lecture #8 Page 1 Lecture #8 Agenda 1.VHDL : Operators 2.VHDL : Signal Assignments Announcements 1.HW #4 assigned ECE 4110– Digital Logic Design.

Slides:



Advertisements
Similar presentations
EE 261 – Introduction to Logic Circuits Module #5 Page 1 EE 261 – Introduction to Logic Circuits Module #5 - VHDL Topics A.Hardware Description Languages.
Advertisements

VHDL ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Thomson Engineering.
VHDL 3 BASIC OPERATORS AND ARCHITECTURE BODY Design descriptions & Design constructions examples are taken from foundation series examples exercise 3:
Introduction to VHDL (Lecture #5) ECE 331 – Digital System Design The slides included herein were taken from the materials accompanying Fundamentals of.
Comprehensive VHDL Module 6 Types November Comprehensive VHDL: Types Copyright © 2000 Doulos Types Aim ©To understand the use and synthesis.
VHDL Data Types Module F3.1. VHDL Data Types Scalar Integer Enumerated Real (floating point)* Physical* Composite Array Record Access (pointers)* * Not.
Data Types. Composite Date Types n Arrays –Single and multi-dimensional –Arrays are single Type n Records –Records are mixed types.
CS 3850 Lecture 5 Operators. 5.1 Binary Arithmetic Operators Binary arithmetic operators operate on two operands. Register and net (wire) operands are.
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
1 Part II: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
Chapter 6. Dataflow Modeling. Continuous Assignments The left hand side always be a scalar or vector net or a concatenation of scalar and vector nets.
Programmable Logic Architecture Verilog HDL FPGA Design Jason Tseng Week 5.
Digital Arithmetic and Arithmetic Circuits
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
IAY 0600 Digital Systems Design
Lecture 3 Chap 4 Types Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
4. Computer Maths and Logic 4.2 Boolean Logic Logic Circuits.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHDL – Basic Language Elements  Identifiers: –basic identifier: composed of a sequence of one or more.
Basic VHDL RASSP Education & Facilitation Module 10 Version 2.02 Copyright  RASSP E&F All rights reserved. This information is copyrighted by.
Lecture 4 Chap 5 Types Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Copyright(c) 1996 W. B. Ligon III1 Getting Started with VHDL VHDL code is composed of a number of entities Entities describe the interface of the component.
Design Methodology Based on VHDL Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Lecture #20 Page 1 ECE 4110– Digital Logic Design Lecture #21 Agenda 1.MSI: Carry Look-Ahead Adders Announcements 1.N/A.
Lecture #7 Page 1 Lecture #7 Agenda 1.VHDL Data Types Announcements 1.n/a ECE 4110– Digital Logic Design.
Lecture 9 Chap 11: Subprograms Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Chapter 5 Introduction to VHDL. 2 Hardware Description Language A computer language used to design circuits with text-based descriptions of the circuits.
IAY 0600 Digital Systems Design
CEC 220 Digital Circuit Design More VHDL Fri, February 27 CEC 220 Digital Circuit Design Slide 1 of 15.
CEC 220 Digital Circuit Design Introduction to VHDL Wed, February 25 CEC 220 Digital Circuit Design Slide 1 of 19.
ECE 331 – Digital System Design Multi-bit Adder Circuits, Adder/Subtractor Circuit, and Multiplier Circuit (Lecture #12)
Lecture #18 Page 1 ECE 4110– Sequential Logic Design Lecture #18 Agenda 1.MSI Demultiplexers 2.MSI Tri-State Buffers 3.MSI Comparators Announcements 1.HW.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
BASIC VHDL LANGUAGE ELEMENTS Digital Design for Instrumentation with VHDL 1.
ECOM 4311—Digital System Design with VHDL
CS 151: Digital Design Chapter 4: Arithmetic Functions and Circuits
1 ECE 545—Digital System Design with VHDL Lecture 1 Digital Logic Refresher Part A – Combinational Logic Building Blocks.
Scalar Data Types and Operations 大同大學 資訊工程系 副教授 鄭福炯
Advanced FPGA Based System Design Lecture-6 & 7 VHDL Data Types By: Dr Imtiaz Hussain 1.
CEC 220 Digital Circuit Design Introduction to VHDL Friday, February 21 CEC 220 Digital Circuit Design Slide 1 of 10.
VHDL 3 BASIC OPERATORS AND ARCHITECTURE BODY Design descriptions & Design constructions examples are taken from foundation series examples exercise 3:
Number Representation and Arithmetic Circuits
Lecture #8 Page 1 Lecture #8 Agenda 1.VHDL : Operators 2.VHDL : Signal Assignments Announcements 1.HW #4 assigned ECE 4110– Sequential Logic Design.
Chapter 3: Dataflow Modeling Digital System Designs and Practices Using Verilog HDL and 2008~2010, John Wiley 3-1 Chapter 3: Dataflow Modeling.
Lecture #10 Page 1 Lecture #10 Agenda 1.VHDL : Concurrent Signal Assignments 2.Decoders using Structural VHDL Announcements 1.HW #4 due 2.HW #5 assigned.
IAY 0600 Digital Systems Design VHDL discussion Verification: Testbenches Alexander Sudnitson Tallinn University of Technology.
CEC 220 Digital Circuit Design Introduction to VHDL Wed, Oct 14 CEC 220 Digital Circuit Design Slide 1 of 19.
13/06/59 1 Copyright  1997, KJH Introduction to VHDL Lecture 2 Prof. K. J. Hintz Department of Electrical and Computer Engineering George Mason University.
Chapter 8. Additional Topics in VHDL 권동혁.
Introduction To VHDL 홍 원 의.
Basic Language Concepts
Operators Assignment Operators Logical Operators Relational Operators
VHDL Basics.
Chapter 2. Introduction To VHDL
VHDL 3 Basic operators and Architecture Body
Behavioral Modeling in Verilog
ECE 434 Advanced Digital System L17
CHAPTER 10 Introduction to VHDL
OPERATORS and CONCURRENT STATEMENTS
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 L11
Advanced FPGA Based System Design
ECE 434 Advanced Digital System L10
COE 202 Introduction to Verilog
VHDL Data Types Module F3.1.
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

Lecture #8 Page 1 Lecture #8 Agenda 1.VHDL : Operators 2.VHDL : Signal Assignments Announcements 1.HW #4 assigned ECE 4110– Digital Logic Design

Lecture #8 Page 2 VHDL Operators VHDL Operators - Data types define both "values" and "operators" - There are "Pre-Determined" data types Pre-determined = Built-In = STANDARD Package - We can add additional types/operators by including other Packages - We'll first start with the STANDARD Package that comes with VHDL

Lecture #8 Page 3 VHDL Operators Logical Operators - works on types BIT, BIT_VECTOR, BOOLEAN - vectors must be same length - the result is always the same type as the input not and nand or nor xor xnor

Lecture #8 Page 4 VHDL Operators Numerical Operators - works on types INTEGER, REAL - the types of the input operands must be the same +"addition" - "subtraction" * "multiplication" / "division" mod "modulus" rem "remainder" abs "absolute value" ** "exponential" ex) Can we make an adder circuit yet? A,B: inBIT_VECTOR (7 downto 0) Z : out BIT_VECTOR (7 downto 0) Z <= A + B;

Lecture #8 Page 5 VHDL Operators Relational Operators - used to compare objects - objects must be of same type - Output is always BOOLEAN (TRUE, FALSE) - works on types: BOOLEAN, BIT, BIT_VECTOR, CHARACTER, INTEGER, REAL, TIME, STRING ="equal" /= "not equal" "greater than" >= "greater than or equal"

Lecture #8 Page 6 VHDL Operators Shift Operators - works on one-dimensional arrays - works on arrays that contain types BIT, BOOLEAN - the operator requires 1) An Operand (what is to be shifted) 2) Number of Shifts (specified as an INTEGER) - a negative Number of Shifts (i.e., "-") is valid and reverses the direction of the shift sll"shift left logical" srl "shift right logical" sla "shift left arithmetic" sra "shift right arithmetic" rol "rotate left" ror "rotate right"

Lecture #8 Page 7 VHDL Operators Concatenation Operator - combines objects of same type into an array - the order is preserved & "concatenate" ex) New_Bus <= ( Bus1(7:4) & Bus2(3:0) )

Lecture #8 Page 8 VHDL Operators STD_LOGIC_1164 Operators - To expand the data types we have in VHDL, we include the IEEE Package "STD_LOGIC_1164" - This gives us the data types: STD_LOGIC STD_LOGIC_VECTOR - This gives us all of the necessary operators for these types Logical Numerical Relational Shift

Lecture #8 Page 9 VHDL Operators Examples Example 1 v := a + y * x; The multiplication y*x is carried out first, then a is added to the result of multiplication. This is because the multiplication operator has higher level of priority than the adding operator. Example 2 variable We1, We2, We3, Wy : BIT := '1'; Wy := We1 and We2 xnor We1 nor We3; For the initial value of the variables We1, We2, We3 equal to '1', the result is assigned to the variable Wy and is equal to '0'. Example 3 variable Zm1: REAL := 100.0; variable Zm2 : BIT_VECTOR(7 downto 0) := ('0','0','0','0','0','0','0','0'); variable Zm3, Zm4 : BIT_VECTOR(1 to 0); Zm1 /= True Zm1 = True Zm2 /= ('1', '0', '0', '0', '0', '0', '0', '0') -- True Zm3 = Zm4 -- True

Lecture #8 Page 10 VHDL Operators Example 4 Zm1 > True Zm1 >= True Zm2 < ('1', '0', '0', '0', '0', '0', '0', '0') -- True Zm3 <= Zm2 -- True Example 5 variable Zm5 : BIT_VECTOR(3 downto 0) := ('1','0','1','1'); Zm5 sll 1 -- ('0', '1', '1', '0') Zm5 sll 3 -- ('1', '0', '0', '0') Zm5 sll Zm5 srl 3 Zm5 srl 1 -- ('0', '1', '0', '1') Zm5 srl 3 -- ('0', '0', '0', '1') Zm5 srl Zm5 sll 3 Zm5 sla 1 -- ('0', '1', '1', '1') Zm5 sla 3 -- ('1', '1', '1', '1') Zm5 sla Zm5 sra 3 Zm5 sra 1 -- ('1', '1', '0', '1') Zm5 sra 3 -- ('1', '1', '1', '1') Zm5 sra Zm5 sla 3 Zm5 rol 1 -- ('0', '1', '1', '1') Zm5 rol 3 -- ('1', '1', '0', '1') Zm5 rol Zm5 ror 3 Zm5 ror 1 -- ('1', '1', '0', '1') Zm5 ror 3 -- ('0', '1', '1', '1') Zm5 ror Zm5 rol 3

Lecture #8 Page 11 VHDL Operators Example 6 constant B1: BIT_VECTOR := "0000"; -- four element array constant B2: BIT_VECTOR := "1111"; -- four element array constant B3: BIT_VECTOR := B1 & B2; -- eight element array, ascending -- direction, value " " subtype BIT_VECTOR_TAB is BIT_VECTOR (1 downto 0); constant B4: BIT_VECTOR_TAB := "01"; constant B5: BIT_VECTOR:= B4 & B2; -- six element array, descending -- direction, value "011111" constant B6 : BIT := '0' ; constant B7 : BIT_VECTOR := B2 & B6;-- five element array, ascending -- direction, value "11110" constant B8: BIT := '1'; constant B9: BIT_VECTOR := B6 & B8; -- two element array, ascending -- direction value "01“

Lecture #8 Page 12 VHDL Operators Example 7 z := x * ( -y) -- A legal expression z := x / (not y) -- A legal expression The same expressions without parentheses would be illegal. Example 7 variable A,B :Integer; variable C : Real; C:= * ( / ); A:= B mod 2; Example 8 2 ** 8 = ** 3 = ** (-2) = 1 / (4**2) =

Lecture #8 Page 13 VHDL Operators Assignment Operators - The assignment operator is <= - The Results is always on the Left, Operands on the Right - Types need to all be of the same type - need to watch the length of arrays! Ex)x <=y; a <= b or c; sum <= x + y; NewBus <= m & k;

Lecture #8 Page 14 Delayed Assignments Delay Modeling - VHDL allows us to include timing information into assignment statements - this gives us the ability to model real world gate delay - we use the keyword "after" in our assignment followed by a time operand. Ex) B <= not A after 2ns; - VHDL has two types of timing models that allow more accurate representation of real gates 1) Inertial Delay (default) 2) Transport Delay

Lecture #8 Page 15 Delayed Assignments Inertial Delay - if the input has two edge transitions in less time than the inertial delay, the pulse is ignored said another way… - if the input pulse width is smaller than the delay, it is ignored - this models the behavior of trying to charge up the gate capacitance of a MOSFET ex) B <= A after 5ns; any pulses less than 5ns in width are ignored.

Lecture #8 Page 16 Delayed Assignments Transport Delay - transport delay will always pass the pulse, no matter how small it is. - this models the behavior of transmission lines - we have to explicitly call out this type of delay using the "transport" keyword ex) B <= transport A after 5ns; B <= transport not A after t_delay; -- here we used a constant