Lecture 4. VHDL Fundamentals. Required reading. Example: NAND Gate. Design Entity. Example VHDL Code. Design Entity

Similar documents
Lecture 4. VHDL Fundamentals. George Mason University

CDA 4253 FPGA System Design Introduction to VHDL. Hao Zheng Dept of Comp Sci & Eng USF

Lecture 4. VHDL Basics. Simple Testbenches

VHDL Basics. Mehdi Modarressi. Department of Electrical and Computer Engineering, University of Tehran. ECE381(CAD), Lecture 4:

Introduction to VHDL #1

Introduction to VHDL #3

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University

Digital Systems Design

Hardware Modeling. VHDL Basics. ECS Group, TU Wien

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

Digital Systems Design

VHDL for FPGA Design. by : Mohamed Samy

CSCI Lab 3. VHDL Syntax. Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\

VHDL is a hardware description language. The code describes the behavior or structure of an electronic circuit.

Introduction to VHDL

Design units can NOT be split across different files

Lattice VHDL Training

VHDL for Complex Designs

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

Introduction to VHDL. Main language concepts

Lecture 3 Introduction to VHDL

Multi-valued Logic. Standard Logic IEEE 1164 Type std_ulogic is ( U, uninitialized

UNIT I Introduction to VHDL VHDL: - V -VHSIC, H - Hardware, D - Description, L Language Fundamental section of a basic VHDL code Library :

EEL 4783: Hardware/Software Co-design with FPGAs

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 4 Introduction to VHDL

INTRODUCTION TO VHDL. Lecture 5 & 6 Dr. Tayab Din Memon Assistant Professor Department of Electronic Engineering, MUET

BASIC VHDL LANGUAGE ELEMENTS AND SEMANTICS. Lecture 7 & 8 Dr. Tayab Din Memon

Basic Language Constructs of VHDL

Lecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

VHDL And Synthesis Review

Combinational Logic COMB. LOGIC BLOCK. A Combinational Logic Block is one where the outputs depend only on the current inputs

Hardware Description Language VHDL (1) Introduction

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools

Constructing VHDL Models with CSA

ECE 545 Lecture 4. Simple Testbenches. George Mason University

Design Entry: Schematic Capture and VHDL ENG241: Digital Design Week #4

Menu. Introduction to VHDL EEL3701 EEL3701. Intro to VHDL

ECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles

ENGIN 241 Digital Systems with Lab

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006

Very High Speed Integrated Circuit Har dware Description Language

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN

FPGA Design. Part III - Combinatorial VHDL. Thomas Lenzi

ECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University

Logic and Computer Design Fundamentals VHDL. Part 1 Chapter 4 Basics and Constructs

Mridula Allani Fall Fall

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture

CS232 VHDL Lecture. Types

Contents. Appendix D VHDL Summary Page 1 of 23

CS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory

Hardware Modeling. VHDL Syntax. Vienna University of Technology Department of Computer Engineering ECS Group

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

ECE 545 Lecture 7. Modeling of Circuits with a Regular Structure. Aliases, Attributes, Packages. Mixing Design Styles. George Mason University

Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009

C-Based Hardware Design

Hardware description languages

Inthis lecture we will cover the following material:

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1

!"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"

VHDL: Code Structure. 1

2/14/2016. Hardware Synthesis. Midia Reshadi. CE Department. Entities, Architectures, and Coding.

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993)

Verilog Module 1 Introduction and Combinational Logic

Verilog. Verilog for Synthesis

Schematic design. Gate level design. 0 EDA (Electronic Design Assistance) 0 Classical design. 0 Computer based language

TSIU03, SYSTEM DESIGN LECTURE 2

Entity, Architecture, Ports

Lecture 3. VHDL Design Units and Methods. Entity, Architecture, and Components Examples of Combinational Logic Hands-on in the Laboratory

VHDL. Official Definition: VHSIC Hardware Description Language VHISC Very High Speed Integrated Circuit

Chapter 6 Combinational-Circuit Building Blocks

Getting Started with VHDL

VHDL for Synthesis. Course Description. Course Duration. Goals

Review of Digital Design with VHDL

Review. LIBRARY list of library names; USE library.package.object; ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type;

VHDL: skaitmeninių įtaisų projektavimo kalba. 2 paskaita Pradmenys

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

CPE/EE 422/522. Chapter 8 - Additional Topics in VHDL. Dr. Rhonda Kay Gaede UAH. 8.1 Attributes - Signal Attributes that return a value

VHDL: A Crash Course

5. VHDL - Introduction - 5. VHDL - Design flow - 5. VHDL - Entities and Architectures (1) - 5. VHDL - Entities and Architectures (2) -

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

Lecture 3. VHDL Design Units and Methods. Notes. Notes. Notes

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

Concurrent Signal Assignment Statements (CSAs)

Architecture des Ordinateurs I

IT T35 Digital system desigm y - ii /s - iii

The University of Alabama in Huntsville ECE Department CPE Midterm Exam February 26, 2003

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL

Verilog HDL is one of the two most common Hardware Description Languages (HDL) used by integrated circuit (IC) designers. The other one is VHDL.

HW1 Modeling Concepts

Lecture 12 VHDL Synthesis

Synthesis from VHDL. Krzysztof Kuchcinski Department of Computer Science Lund Institute of Technology Sweden

Building Blocks. Entity Declaration. Entity Declaration with Generics. Architecture Body. entity entity_name is. entity register8 is

Lab # 5. Subprograms. Introduction

Transcription:

Required reading Lecture 4 VHDL Fundamentals P. Chu, RTL Hardware Design using VHDL Chapter 3, Basic Language Constructs of VHDL George Mason University 2 Example: NAND Gate Design Entity a b z a b z 0 0 1 0 1 1 1 0 1 1 1 0 3 4 Example VHDL Code 3 sections to a piece of VHDL code File extension for a VHDL file is.vhd Name of the file should be the same as the entity name (nand_gate.vhd) [OpenCores Coding Guidelines] LIBRARY DECLARATION Design Entity design entity entity declaration Design Entity - most basic building block of a design. z : OUT STD_LOGIC); ENTITY DECLARATION architecture 1 architecture 2 One entity can have many different architectures. ARCHITECTURE model OF nand_gate IS END model; ARCHITECTURE BODY architecture 3 5 6 1

Entity Declaration Entity declaration simplified syntax Entity Declaration describes the interface of the component, i.e. input and output ports. Reserved words Entity name Port names z : OUT STD_LOGIC ); Port modes (data flow directions) Port type Semicolon No Semicolon after last port ENTITY entity_name IS PORT ( port_name : port_mode signal_type; port_name : port_mode signal_type;. port_name : port_mode signal_type); END entity_name; 7 8 Port Mode IN Port Mode OUT Port signal Entity Entity Port signal a z Driver resides outside the entity Driver resides inside the entity c Output cannot be read within the entity c <= z 9 10 Port Mode OUT (with extra signal) Port Mode INOUT (typically avoided) Entity Port signal Entity Port signal x z a c Signal x can be read inside the entity Signal can be read inside the entity Driver resides inside the entity z <= x c <= x Driver may reside both inside and outside of the entity 11 12 2

Port Modes - Summary The Port Mode of the interface describes the direction in which data travels with respect to the component In: Data comes into this port and can only be read within the entity. It can appear only on the right side of a signal or variable assignment. Architecture (Architecture body) Describes an implementation of a design entity Architecture example: Out: The value of an output port can only be updated within the entity. It cannot be read. It can only appear on the left side of a signal assignment. Inout: The value of a bi-directional port can be read and updated within the entity model. It can appear on both sides of a signal assignment. ARCHITECTURE model OF nand_gate IS END model; 13 14 Architecture simplified syntax Entity Declaration & Architecture nand_gate.vhd ARCHITECTURE architecture_name OF entity_name IS [ declarations ] code END architecture_name; z : OUT STD_LOGIC); ARCHITECTURE dataflow OF nand_gate IS END dataflow; 15 16 Tips & Hints Tips & Hints Place each entity in a different file. The name of each file should be exactly the same as the name of an entity it contains. Place the declaration of each port, signal, constant, and variable in a separate line These rules are not enforced by all tools but are worth following in order to increase readability and portability of your designs These rules are not enforced by all tools but are worth following in order to increase readability and portability of your designs 17 18 3

Library Declarations Libraries z : OUT STD_LOGIC); Library declaration Use all definitions from the package std_logic_1164 ARCHITECTURE model OF nand_gate IS END model; 19 20 Library declarations - syntax Fundamental parts of a library LIBRARY PACKAGE 1 PACKAGE 2 LIBRARY library_name; USE library_name.package_name.package_parts; TYPES CONSTANTS FUNCTIONS PROCEDURES COMPONENTS TYPES CONSTANTS FUNCTIONS PROCEDURES COMPONENTS 21 22 Libraries ieee std work Specifies multi-level logic system, including STD_LOGIC, and STD_LOGIC_VECTOR data types Specifies pre-defined data types (BIT, BOOLEAN, INTEGER, REAL, SIGNED, UNSIGNED, etc.), arithmetic operations, basic type conversion functions, basic text i/o functions, etc. Holds current designs after compilation Need to be explicitly declared Visible by default STD_LOGIC Demystified 23 24 4

STD_LOGIC BIT versus STD_LOGIC z : OUT STD_LOGIC); ARCHITECTURE dataflow OF nand_gate IS END dataflow; BIT type can only have a value of 0 or 1 STD_LOGIC can have nine values U, X, 0, 1, Z, W, L, H, - Useful mainly for simulation 0, 1, and Z are synthesizable (your codes should contain only these three values) What is STD_LOGIC you ask? 25 26 STD_LOGIC type demystified More on STD_LOGIC Meanings (1) Value Meaning U Uninitialized X Forcing (Strong driven) Unknown 1 X 0 Forcing (Strong driven) 0 1 Forcing (Strong driven) 1 X Contention on the bus Z W L H High Impedance Weak (Weakly driven) Unknown Weak (Weakly driven) 0. Models a pull down. Weak (Weakly driven) 1. Models a pull up. 0 - Don't Care 27 28 More on STD_LOGIC Meanings (2) More on STD_LOGIC Meanings (3) V DD V DD H 0 1 L 29 30 5

More on STD_LOGIC Meanings (4) Resolving logic levels - Do not care. Can be assigned to outputs for the case of invalid inputs (may produce significant improvement in resource utilization after synthesis). Must be used with great caution. For example in VHDL, the direct comparison 1 = - gives FALSE. The "std_match" functions defined in the numeric_std package must be used to make this value work as expected: Example: if (std_match(address, "-11---") then... elsif (std_match(address, "-01---") then... else... end if; U X 0 1 Z W L H - U U U U U U U U U U X U X X X X X X X X 0 U X 0 X 0 0 0 0 X 1 U X X 1 1 1 1 1 X Z U X 0 1 Z W L H X W U X 0 1 W W W W X L U X 0 1 L W L W X H U X 0 1 H W W H X - U X X X X X X X X 31 32 STD_LOGIC Rules In ECE 545 use std_logic or std_logic_vector for all entity input or output ports Do not use integer, unsigned, signed, bit for ports You can use them inside of architectures if desired You can use them in generics Instead use std_logic_vector and a conversion function inside of your architecture [Consistent with OpenCores Coding Guidelines] Modeling Wires and Buses 33 34 Signals SIGNAL a : STD_LOGIC; a 1 wire SIGNAL b : STD_LOGIC_VECTOR(7 DOWNTO 0); b 8 bus Standard Logic Vectors SIGNAL a: STD_LOGIC; SIGNAL b: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL c: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL d: STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL e: STD_LOGIC_VECTOR(8 DOWNTO 0);. a <= 1 ; b <= 0000 ; -- Binary base assumed by default c <= B 0000 ; -- Binary base explicitly specified d <= X AF67 ; -- Hexadecimal base e <= O 723 ; -- Octal base 35 36 6

Vectors and Concatenation SIGNAL a: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL b: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL c, d, e: STD_LOGIC_VECTOR(7 DOWNTO 0); a <= 0000 ; b <= 1111 ; c <= a & b; -- c = 00001111 Types of VHDL Description (Modeling Styles) d <= 0 & 0001111 ; -- d <= 00001111 e <= 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 ; -- e <= 00001111 37 38 Types of VHDL Description: Convention used in this class VHDL Descriptions Types of VHDL Description: Alternative convention VHDL Descriptions Testbenches dataflow structural behavioral Behavioral Concurrent statements Components and interconnects Sequential statements Registers State machines Decoders Structural Components & interconnects dataflow Concurrent statements algorithmic Sequential statements Subset most suitable for synthesis 39 40 xor3 Example Entity xor3_gate ENTITY xor3_gate IS A : IN STD_LOGIC; B : IN STD_LOGIC; C : IN STD_LOGIC; Result : OUT STD_LOGIC ); end xor3_gate; 41 42 7

Dataflow Architecture (xor3_gate) ARCHITECTURE dataflow OF xor3_gate IS SIGNAL U1_OUT: STD_LOGIC; U1_OUT <= A XOR B; Result <= U1_OUT XOR C; END dataflow; Dataflow Description Describes how data moves through the system and the various processing steps. Dataflow uses series of concurrent statements to realize logic. Dataflow is the most useful style to describe combinational logic Dataflow code also called concurrent code Concurrent statements are evaluated at the same time; thus, the order of these statements doesn t matter This is not true for sequential/behavioral statements U1_OUT This order U1_out <= A XOR B; Result <= U1_out XOR C; Is the same as this order Result <= U1_out XOR C; U1_out <= A XOR B; 43 44 Structural Architecture in VHDL 93 xor2 xor2.vhd ARCHITECTURE structural OF xor3_gate IS SIGNAL U1_OUT: STD_LOGIC; U1: entity work.xor2(dataflow) PORT MAP (I1 => A, I2 => B, Y => U1_OUT); U2: entity work.xor2(dataflow) PORT MAP (I1 => U1_OUT, I2 => C, Y => Result); END structural; A B xor3_gate C U1_OUT I1 I2 Y I1 I2 Y PORT NAME LOCAL WIRE NAME Result ENTITY xor2 IS I1 : IN STD_LOGIC; I2 : IN STD_LOGIC; Y : OUT STD_LOGIC); END xor2; ARCHITECTURE dataflow OF xor2 IS Y <= I1 xor I2; END dataflow; 45 46 Structural Architecture in VHDL 87 Structural Description ARCHITECTURE structural OF xor3_gate IS SIGNAL U1_OUT: STD_LOGIC; COMPONENT xor2 I1 : IN STD_LOGIC; I2 : IN STD_LOGIC; Y : OUT STD_LOGIC ); END COMPONENT; U1: xor2 PORT MAP (I1 => A, I2 => B, Y => U1_OUT); U2: xor2 PORT MAP (I1 => U1_OUT, I2 => C, Y => Result); END structural; A B xor3_gate C U1_OUT I1 I2 Y I1 I2 Y PORT NAME LOCAL WIRE NAME Result Structural design is the simplest to understand. This style is the closest to schematic capture and utilizes simple building blocks to compose logic functions. Components are interconnected in a hierarchical manner. Structural descriptions may connect simple gates or complex, abstract components. Structural style is useful when expressing a design that is naturally composed of sub-blocks. 47 48 8

Behavioral Architecture (xor3 gate) ARCHITECTURE behavioral OF xor3 IS xor3_behave: PROCESS (A, B, C) IF ((A XOR B XOR C) = '1') THEN Result <= '1'; ELSE Result <= '0'; END IF; END PROCESS xor3_behave; END behavioral; Behavioral Description It accurately models what happens on the inputs and outputs of the black box (no matter what is inside and how it works). This style uses PROCESS statements in VHDL. 49 50 9