History TTL-logic PAL (Programmable Array Logic)

Slides:



Advertisements
Similar presentations
Digital Design with VHDL Presented by: Amir Masoud Gharehbaghi
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 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Mridula Allani Fall 2010 (Refer to the comments if required) ELEC Fall 2010, Nov 21(Adopted from Profs. Nelson and Stroud)
VHDL ELEC 418 Advanced Digital Systems Dr. Ron Hayne Images Courtesy of Thomson Engineering.
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.
6/27/20061 Sequence Detectors Lecture Notes – Lab 5 Sequence detection is the act of recognizing a predefined series of inputs A sequence detector is a.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
FPGAs and VHDL Lecture L12.1. FPGAs and VHDL Field Programmable Gate Arrays (FPGAs) VHDL –2 x 1 MUX –4 x 1 MUX –An Adder –Binary-to-BCD Converter –A Register.
Counters Discussion D5.3 Example 33. Counters 3-Bit, Divide-by-8 Counter 3-Bit Behavioral Counter in Verilog Modulo-5 Counter An N-Bit Counter.
Introduction to VHDL CSCE 496/896: Embedded Systems Witawas Srisa-an.
ELEN 468 Lecture 191 ELEN 468 Advanced Logic Design Lecture 19 VHDL.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
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.
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.
FPGAs and VHDL Lecture L13.1 Sections 13.1 – 13.3.
VHDL And Synthesis Review. VHDL In Detail Things that we will look at: –Port and Types –Arithmetic Operators –Design styles for Synthesis.
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.
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
Simple Testbenches Behavioral Modeling of Combinational Logic
Lecture #6 Page 1 Lecture #6 Agenda 1.VHDL - Architecture 2.VHDL - Packages Announcements 1.HW #3 assigned ECE 4110– Sequential Logic Design.
Introduction to VHDL (part 2)
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
1 Part I: VHDL CODING. 2 Design StructureData TypesOperators and AttributesConcurrent DesignSequential DesignSignals and VariablesState Machines A VHDL.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
VHDL TUTORIAL Preetha Thulasiraman ECE 223 Winter 2007.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #17 – Introduction.
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
VHDL IE- CSE. What do you understand by VHDL??  VHDL stands for VHSIC (Very High Speed Integrated Circuits) Hardware Description Language.
Introduction to VHDL Spring EENG 2920 Digital Systems Design Introduction VHDL – VHSIC (Very high speed integrated circuit) Hardware Description.
VHDL Very High Speed Integrated Circuit Hardware Description Language Shiraz University of shiraz spring 2011.
HARDWARE DESCRIPTION LANGUAGE (HDL). What is HDL? A type of programming language for sampling and modeling of electronic & logic circuit designs It can.
VHDL Basics. VHDL BASICS 2 OUTLINE –Component model –Code model –Entity –Architecture –Identifiers and objects –Operations for relations VHDL ET062G &
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Hardware languages "Programming"-language for modelling of (digital) hardware 1 Two main languages: VHDL (Very High Speed Integrated Circuit Hardware Description.
VHDL Discussion Sequential Sytems. Memory Elements. Registers. Counters IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology.
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
ACANEL VHDL 의 이해와 실습 2000 년 1 학기 Computer Architecture (classes links)
CEC 220 Digital Circuit Design VHDL in Sequential Logic Wednesday, March 25 CEC 220 Digital Circuit Design Slide 1 of 13.
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.
CDA 4253 FPGA System Design Sequential Circuit Building Blocks Hao Zheng Dept of Comp Sci & Eng USF.
George Mason University Behavioral Modeling of Sequential-Circuit Building Blocks ECE 545 Lecture 8.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
An Introduction to V.H.D.L.. Need of a Compiler… main( ) { int x=10,y=20,z; z = x + y ; printf ( “ %d “, z ); getch( ) ; } What’s That ? Give me only.
Basic Language Concepts
Subject Name: FUNDAMENTALS OF HDL Subject Code: 10EC45
Design Entry: Schematic Capture and VHDL
Introduction to Programmable Logic
Introduction Introduction to VHDL Entities Signals Data & Scalar Types
CHAPTER 17 VHDL FOR SEQUENTIAL LOGIC
Part IV: VHDL CODING.
Custom Designed Integrated Circuits
Sequential-Circuit Building Blocks
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
VHDL VHSIC Hardware Description Language VHSIC
RTL Style در RTL مدار ترتيبي به دو بخش (تركيبي و عناصر حافظه) تقسيم مي شود. مي توان براي هر بخش يك پروسس نوشت يا براي هر دو فقط يك پروسس نوشت. مرتضي صاحب.
VHDL (VHSIC Hardware Description Language)
VHDL Introduction.
Behavioral Modeling of Sequential-Circuit Building Blocks
Sequntial-Circuit Building Blocks
Figure 8.1. The general form of a sequential circuit.
CprE / ComS 583 Reconfigurable Computing
Sequntial-Circuit Building Blocks
(Sequential-Circuit Building Blocks)
EEL4712 Digital Design (VHDL Tutorial).
Presentation transcript:

History TTL-logic PAL (Programmable Array Logic) FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example TTL-logic PAL (Programmable Array Logic) FPGA (Field Programmable Gate Array) 1

FPGA Introduction Logical element / slice History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Logical element / slice Programmable interconnections RAM, DSP, PLL, IO, … 2

FPGA Structure Look-up table [ F’=f(F1,F2,F3,F4) ] Flip-flop History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Look-up table [ F’=f(F1,F2,F3,F4) ] Flip-flop Multiplexer 3

FPGA Overview LC’s Various Virtex family Spartan family Various History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example LC’s Various Virtex family Spartan family Various Stratix family Cyclone family I/O RAM bits 4

VHDL Introduction VHDL (VHSIC Hardware Description Language) History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example VHDL (VHSIC Hardware Description Language) VHSIC (Very High Speed Integrated Circuit) Original: Language for description, simulation and documentation of digital systems Now: Language for description, simulation, documentation and syntheses of digital systems First developments around 1970 First standardization in 1987 by IEEE (IEEE 1076-1987) Later adjusted in 1993 (VHDL-93) Again adjusted in 2001 (VHDL-2001) Other languages (Verilog, Abel, ..) are available 5

Structure Component (inputs, outputs, behaviour) History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Component (inputs, outputs, behaviour) Entity, architecture, signals 6

Language XOR function entity XORport is port ( A,B: in BIT; C: out BIT History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example XOR function entity XORport is port ( A,B: in BIT; C: out BIT ); end XORport; architecture dataflow of XORport is begin C<=A xor B; end dataflow; 7

Language Template architecture architecture-name of entity-name is History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example architecture architecture-name of entity-name is variable declarations signal declarations constant declarations function definitions component declarations begin concurrent-statement; … end architecture-name; entity entity-name is port ( signal-names : mode signal-type; … signal-names : mode signal-type ); end entity-name; 8

Signals Signal Variable Constant std_logic type: Signal-types: History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Signal Physical value Line or register in design Has history of values Can be observed in simulation Variable Temporally value Only defined in process, block, procedure, function Used to make design more readable Can’t be observed in simulation Constant Used in generic programming std_logic type: ‘U’ --Not initialized ‘X’ --Forcing Unknown ‘0’ --Forcing 0 ‘1’ --Forcing 1 ‘Z’ --High Impedance ‘W’ --Weak Unknown ‘L’ --Weak 0 ‘H’ --Weak 1 ‘-’ --Don’t care Signal-types: bit (‘1’ or ‘0’) bit_vector (combination of bits) boolean (‘true’ or ‘false’) integer (-231+1 to +231-1) real user-defined types (defined by libraries) std_logic std_logic_vector Problems with bit signal-types: Unknown values Don’t care Pull-up or pull-down Tri-state Signal-modes: in out buffer inout 9

Dataflow C<=A xor B; Q<=R nor nQ nQ<=S nor Q Q<=R nor nQ History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Q<=R nor nQ nQ<=S nor Q start : R='0', S='0', Q='1', nQ='0‘ step 1: R='1', S='0', Q='1', nQ='0‘ (Assert R) step 2: R='1', S='0', Q='0', nQ='0‘ (Q changes) step 3: R='1', S='0', Q='0', nQ='1‘ (nQ changes) step 4: R=‘1', S='0', Q='0', nQ='1‘ (no changes => stop) C<=A xor B; Defines direct relation between output and input Sequence not important (parallelism) Asynchronous Difficult for complex functions Difficult to understand Q<=R nor nQ nQ<=S nor Q 10

Behavioural Sequence important Asynchronous History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Sequence important Asynchronous Divides complex functions in manageable parts Easier to understand case (signal-name) is when condition => action1; ... when others => action2; end case; for variable/signal-name in start-value to stop-value loop action; end loop; process(signal-names) begin -- sequential code: e.g.: if (condition) then action1; else action2; end if; end process; if (condition) then action1; elsif (condition) then action2; ... else action3; end if; 11

Structural Divide problems into sub-problems Connecting blocks Reuse History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example --component declarations component entity-name port ( signal-names : mode signal-type ); end component; … --signals to connect blocks signal-names : mode signal-type; begin component-name : component port map ( signal-mapping ); … Divide problems into sub-problems Connecting blocks Reuse 12

Synchronous Signals Rising or falling edge No ‘else’ condition History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example process(clk) begin if (clk'EVENT and clk='1') then action; end if; end process; Rising or falling edge No ‘else’ condition Clock signal in process list 13

Simulation Test functionality of each block History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Test functionality of each block Test interaction between blocks Test bench written in VHDL Assert stimuli, observe outputs Possible to look at internal signals 14

Design Flow Create new project Select FPGA device Create new VHDL file History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Create new project Select FPGA device Create new VHDL file Simulation Assign pins Synthesis and fitting Program device Test new hardware 15

Example Quiz buttons (2 players, first push wins, reset) History FPGA introduction FPGA structure FPGA overview VHDL introduction Structure Language Language template Signals Dataflow Behavioural Structural Synchronous signals Simulation Design flow Example Quiz buttons (2 players, first push wins, reset) library IEEE; use IEEE.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity tstbench is end tstbench; architecture test of tstbench is component QuizButton is port ( button1, button2: in std_logic; reset: in std_logic; light1, light2: out std_logic ); end component; signal clk : std_logic := '0'; signal rst : std_logic := '0'; signal testData : std_logic_vector(1 downto 0) := "00"; begin … uut: QuizButton port map ( button1=>testData(0), button2=>testData(1), reset=>rst end test; architecture dataflow of QuizButton is signal state1 : std_logic := '0'; signal state2 : std_logic := '0'; begin process(button1, button2, reset) if (button1='1' and state2='0') then state1<='1'; end if; if (button2='1' and state1='0') then state2<='1'; if (reset='1') then state1<='0'; state2<='0'; end process; light1<=state1; light2<=state2; end dataflow; library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity QuizButton is port ( button1, button2: in std_logic; reset: in std_logic; light1, light2: out std_logic ); end QuizButton; process(clk) begin clk <= not clk after 20 ns; -- 50MHz if (clk='0') then rst<='1'; else rst<='0'; testData<="00"; testData<=testData+1 after 10 ns; end if; end process; 16