VHDL And Synthesis Review. VHDL In Detail Things that we will look at: –Port and Types –Arithmetic Operators –Design styles for Synthesis.

Slides:



Advertisements
Similar presentations
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.
Advertisements

History TTL-logic PAL (Programmable Array Logic)
1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Introduction to VHDL (Lecture #5) ECE 331 – Digital System Design The slides included herein were taken from the materials accompanying Fundamentals of.
Introduction to VHDL VHDL Tutorial R. E. Haskell and D. M. Hanna T1: Combinational Logic Circuits.
Comprehensive VHDL Module 6 Types November Comprehensive VHDL: Types Copyright © 2000 Doulos Types Aim ©To understand the use and synthesis.
ECE C03 Lecture 18ECE C03 Lecture 61 Lecture 18 VHDL Modeling of Sequential Machines Prith Banerjee ECE C03 Advanced Digital Design Spring 1998.
Introduction to VHDL CSCE 496/896: Embedded Systems Witawas Srisa-an.
ELEN 468 Lecture 191 ELEN 468 Advanced Logic Design Lecture 19 VHDL.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi Some of the slides were taken from K Gaj’s lecture slides from GMU’s.
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.
The IEEE Libraries And Examples Using Functions. Libraries Using the Library Command VHDL allows libraries defined using: library LibraryName; Here, we.
CSCI 660 EEGN-CSCI 660 Introduction to VLSI Design Lecture 2 Khurram Kazi Some of the slides were taken from K Gaj ’ s lecture slides from GMU ’ s VHDL.
ECE C03 Lecture 141 Lecture 14 VHDL Modeling of Sequential Machines Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
Overview Logistics Last lecture Today HW5 due today
1 Part I: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
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
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
VHDL in 1h Martin Schöberl. AK: JVMHWVHDL2 VHDL /= C, Java,… Think in hardware All constructs run concurrent Different from software programming Forget.
Capt Michael Tanner Room 2F46A
Copyright © 1997 Altera Corporation & 提供 What is VHDL Very high speed integrated Hardware Description Language (VHDL) –is.
RTL Hardware Design by P. Chu Chapter Basic VHDL program 2. Lexical elements and program format 3. Objects 4. Data type and operators RTL Hardware.
VHDL Very High Speed Integrated Circuit Hardware Description Language Shiraz University of shiraz spring 2011.
1 Introduction to VHDL part 1 Fall Preliminary Class web page egre365/index.html Syllabus Grades: –Quizzes.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Lecture 7 Chap 9: Registers Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
DATA TYPES 1.Pre-Defined Data Types 2. User-Defined Data Types.
VHDL Discussion Sequential Sytems. Memory Elements. Registers. Counters IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology.
 Seattle Pacific University EE Logic System DesignCounters-1 Shift Registers DQ clk DQ DQ ShiftIn Q3Q3 Q2Q2 DQ Q1Q1 Q0Q0 A shift register shifts.
1 Part III: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
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)
CEC 220 Digital Circuit Design VHDL in Sequential Logic Wednesday, March 25 CEC 220 Digital Circuit Design Slide 1 of 13.
BASIC VHDL LANGUAGE ELEMENTS Digital Design for Instrumentation with VHDL 1.
ECOM 4311—Digital System Design with VHDL
George Mason University ECE 448 – FPGA and ASIC Design with VHDL VHDL Coding for Synthesis ECE 448 Lecture 12.
VHDL Programming Fundamentals Presented By Dr. Pradyut Kumar Biswal Department of Electronics, IIIT Bhubaneswar.
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.
VHDL 7: use of signals v.5a1 VHDL 7 Use of signals In processes and concurrent statements.
George Mason University Behavioral Modeling of Sequential-Circuit Building Blocks ECE 545 Lecture 8.
Case Study: Xilinx Synthesis Tool (XST). Arrays & Records 2.
Fundamentals of Digital Signal Processing יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב.
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
IAY 0600 Digital Systems Design
Combinational logic circuit
B e h a v i o r a l to R T L Coding
Part II A workshop by Dr. Junaid Ahmed Zubairi
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
Part IV: VHDL CODING.
Custom Designed Integrated Circuits
ECE 4110–5110 Digital System Design
Hardware Description Languages: Verilog
In processes and concurrent statements
Sequential-Circuit Building Blocks
ECE 434 Advanced Digital System L17
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
RTL Style در RTL مدار ترتيبي به دو بخش (تركيبي و عناصر حافظه) تقسيم مي شود. مي توان براي هر بخش يك پروسس نوشت يا براي هر دو فقط يك پروسس نوشت. مرتضي صاحب.
IAS 0600 Digital Systems Design
CPE 528: Lecture #5 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
Behavioral Modeling of Sequential-Circuit Building Blocks
Sequntial-Circuit Building Blocks
Data Flow Description of Combinational-Circuit Building Blocks
IAS 0600 Digital Systems Design
Data Flow Description of Combinational-Circuit Building Blocks
IAS 0600 Digital Systems Design
Sequntial-Circuit Building Blocks
EEL4712 Digital Design (VHDL Tutorial).
EEL4712 Digital Design (Midterm 1 Review).
Presentation transcript:

VHDL And Synthesis Review

VHDL In Detail Things that we will look at: –Port and Types –Arithmetic Operators –Design styles for Synthesis

VHDL Ports Four Different Types of Ports –in: signal values are read-only –out: signal values are write-only Possible to have multiple drivers <- Depends on type of port, will discuss later –buffer: comparable to out signal values may be read, as well only 1 driver –inout: bidirectional port

Types of VHDL Ports / Signals VHDL a strongly typed language, so all types assigned between signals and ports have to match Standard VHDL Types: –type BOOLEAN is (FALSE,TRUE); –type BIT is (`0`,`1`); –type CHARACTER is (-- ascii set); –type INTEGER is range -- implementation_defined –type REAL is range -- implementation_defined –BIT_VECTOR, STRING, TIME

VHDL Types However instead of using bits, or bit vectors better to use the Std_Logic_1164 types: –Instead of a simple 0 or 1 have more states that you can use during simulation to get more information on what is going on with design –TYPE STD_ULOGIC IS ( `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); –To use Std_Logic_1164 need to include its library with command use IEEE.std_logic_1164.all; –Should use Std_logic type on all input/output ports

Std_Logic_1164 Two different base types for the library –STD_ULOGIC AND STD_ULOGIC_VECTOR Gives you error messages in cases of multiple concurrent signal assignments More work to do arithmetic as type conversions are needed, some libraries predefined for std_logic –STD_LOGIC AND STD_LOGIC_VECTOR When multiple signal assignments present uses resolution function to decide which signal ‘wins’ over the other signal and is assigned, or whether an unknown signal is assigned Can use the port mode “buffer” to overcome the resolution function being used (buffer allows only a single signal driver)

Arithmetic Operations Arithmetic operators you will want to use are included in the NUMERIC_STD package –Include its libraries with this command use ieee.numeric_std.all; Have two basic modes of operation –Signed : 2-complement (sign+absolute value) –Unsigned : binary representation of positive integers

Arithmetic Operators Might have to convert std_logic_vector to signed or unsigned type if compiler complains Typecasting to unsigned –someSignalUnsignedType <= 6 + unsigned(someSignal) NOTE: Can use Logical and Comparison operators directly on std_logic and std_logic_vector types without type conversion! –i.e. – not, and, <, =, /=

Understanding Synthesis How does design translate during synthesis? –Sensitivity list is usually ignored during synthesis (It is NOT ignored during simulation) –A bad sensitivity list could give you a design that looks like it works during simulation, but could synthesize to something that doesn’t!

Understanding Synthesis Latches –Happen when you have incomplete assignment statements, synthesizer then infers that you want to have memory (this is in an un-clocked process) –Example: architecture WRONG of MUX is begin process (A, B, SEL) begin if SEL = `1` then Z <= A; end if; end process; end WRONG; –Why is a latch generated for Z instead of a logic path?

Understanding Synthesis Correct way to do assignment statements with “if statements” architecture OK_1 of MUX is begin process (A, B, SEL) begin Z <= B; if SEL = `1` then Z <= A; end if; end process; end OK_1; For CASE statements, can use the default case (“when others”), and assign signals there to avoid latches

Understanding Synthesis Clocked Processes –In synthesis all assignments to signals inside a clocked process will make those signals stored as memory (flip-flop, registers) –Have to follow a certain format for this to happen Need to have a clock event in the sensitivity list (or wait on clk’event statements) For single edge triggered need to check for specified edge (can do dual edge triggered by checking for both edges)

Understanding Synthesis Example of Register –process(CLK, RST) begin if (CLK`event and CLK=`1`) then -- combinatorics end if; end process; OR –Here can use function to check for rising edge of clock, synthesizer may or may not support this –process(CLK, RST) begin if (rising_edge(CLK) then -- combinatorics end if; end process; **Cant have any other elsif, else in main outer if block!! Nested if blocks ok!!

Understanding Synthesis Example of asynchronous reset FlipFlop process(CLK, RST) begin if (RST = `1`) then -- asynchronous register reset elsif (CLK`event and CLK=`1`) then -- combinatorics --Signals assigned here inferred as FF’s, reg end if; end process;