ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 6: Configurations.

Slides:



Advertisements
Similar presentations
COE 405 VHDL Basics Dr. Aiman H. El-Maleh Computer Engineering Department King Fahd University of Petroleum & Minerals Dr. Aiman H. El-Maleh Computer Engineering.
Advertisements

1 Introduction to VHDL (Continued) EE19D. 2 Basic elements of a VHDL Model Package Declaration ENTITY (interface description) ARCHITECTURE (functionality)
Anurag Dwivedi.  Verilog- Hardware Description Language  Modules  Combinational circuits  assign statement  Control statements  Sequential circuits.
LECTURE 4: The VHDL N-bit Adder
Mridula Allani Fall 2010 (Refer to the comments if required) ELEC Fall 2010, Nov 21(Adopted from Profs. Nelson and Stroud)
Introduction to VHDL (Lecture #5) ECE 331 – Digital System Design The slides included herein were taken from the materials accompanying Fundamentals of.
Lab Lecture 3 VHDL Architecture styles and Test Bench -Aahlad.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
N Structural Modeling: n Entities n Ports n Architectures n Packages.
VHDL. What is VHDL? VHDL: VHSIC Hardware Description Language  VHSIC: Very High Speed Integrated Circuit 7/2/ R.H.Khade.
ECE 331 – Digital System Design Single-bit Adder Circuits and Adder Circuits in VHDL (Lecture #12) The slides included herein were taken from the materials.
ECE 331 – Digital System Design
(1) Programming Mechanics © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
1 H ardware D escription L anguages Basic Language Concepts.
Modeling styles: 1. Structural Modeling: As a set of interconnected components (to represent structure), 2. Dataflow Modeling: As a set of concurrent assignment.
IAY 0600 Digital Systems Design
IAY 0600 Digitaalsüsteemide disain Event-Driven Simulation Alexander Sudnitson Tallinn University of Technology.
DSD,USIT,GGSIPU1 Entity declaration –describes the input/output ports of a module entity reg4 is port ( d0, d1, d2, d3, en, clk : in std_logic; q0, q1,
VHDL TUTORIAL Preetha Thulasiraman ECE 223 Winter 2007.
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
ENG6090 RCS1 ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 5: Modeling Structure.
Language Concepts Ver 1.1, Copyright 1997 TS, Inc. VHDL L a n g u a g e C o n c e p t s Page 1.
Reconfigurable Computing - VHDL John Morris Chung-Ang University The University of Auckland.
CWRU EECS 317 EECS 317 Computer Design LECTURE 1: The VHDL Adder Instructor: Francis G. Wolff Case Western Reserve University.
Basic Overview of VHDL Matthew Murach Slides Available at:
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
VHDL Very High Speed Integrated Circuit Hardware Description Language Shiraz University of shiraz spring 2011.
Reconfigurable Computing - VHDL John Morris Computer Science/ Electrical and Computer Engineering The University of Auckland Iolanthe racing off Fremantle,
Introduction to VLSI Design – Lec01. Chapter 1 Introduction to VLSI Design Lecture # 11 High Desecration Language- Based Design.
HARDWARE DESCRIPTION LANGUAGE (HDL). What is HDL? A type of programming language for sampling and modeling of electronic & logic circuit designs It can.
Topics AliasesSubprograms Generics & Configurations.
1 component OR_3 port (A,B,C: in bit; Z: out bit); end component ; Reserved Words  Declarations of Components and Entities are similar  Components are.
ECE 331 – Digital System Design Single-bit Adder Circuits and Adder Circuits in VHDL (Lecture #11) The slides included herein were taken from the materials.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
ENG6530 RCS1 ENG6530 Reconfigurable Computing Systems Hardware Description Languages VHDL.
Hardware languages "Programming"-language for modelling of (digital) hardware 1 Two main languages: VHDL (Very High Speed Integrated Circuit Hardware Description.
1 Introduction to VHDL Part 2 Fall We will use Std_logic And, Or have same precedence See slide 8 of part 1.
Digital System Projects
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
Basic VHDL RASSP Education & Facilitation Module 10 Version 2.02 Copyright  RASSP E&F All rights reserved. This information is copyrighted by.
ECOM 4311—Digital System Design with VHDL
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
VHDL Project I: Serial Adder Matthew Murach Slides Available at:
IAY 0600 Digital Systems Design Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
(1) Modeling Structure © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Explain Half Adder and Full Adder with Truth Table.
IAY 0600 Digital Systems Design VHDL discussion Structural style Modular design and hierarchy Part 1 Alexander Sudnitson Tallinn University of Technology.
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.
Introduction to Verilog COE 202 Digital Logic Design Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals.
IAY 0600 Digital Systems Design
Elements of Structural Models
Structural style Modular design and hierarchy Part 1
Basic Language Concepts
IAY 0600 Digitaalsüsteemide disain
Behavioral Style Combinational Design with VHDL
IAY 0600 Digital Systems Design
Dataflow Style Combinational Design with VHDL
Structural style Modular design and hierarchy Part 1
Behavioral Style Combinational Design with VHDL
ENG6530 Reconfigurable Computing Systems
IAY 0600 Digital Systems Design
VHDL VHSIC Hardware Description Language VHSIC
Introduction to Verilog
IAS 0600 Digital Systems Design
Structural style Modular design and hierarchy Part 1
IAY 0600 Digital Systems Design
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
IAS 0600 Digital Systems Design
Digital Systems Design 2
Presentation transcript:

ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 6: Configurations

Topics Associating architectures to entities Associating architectures to entities Default Binding Default Binding Configuration Specification Configuration Specification Configuration Declaration Configuration Declaration

Configurations So far, we have seen that there are different ways in which to model the operation of digital circuit utilizing –Data flow –Behavioral –Structural If you have different representations of one digital circuit (i.e. half adder or full adder). –Which architecture for the half adder should be used? Is there a mechanism in VHDL to accomplish this?

Configurations A design entity can have multiple alternative architectures A configuration specifies the architecture that is to be used to implement a design entity architecture-3 architecture-2 architecture-1 entity binding configuration

Configuration Techniques The VHDL language provides configurations for explicitly associating an architecture description with each component in a structural model. binding –This process of association is referred to as binding an instance of the component to an architecture. default binding –In the absence of any programmer-supplied configuration information, default binding rules apply. There are several ways in which configuration can be provided: –Configuration specification –Configuration declaration.

Component Binding We are concerned with configuring the architecture and not the entity Enhances sharing of designs: simply change the configuration

Default Binding Rules If no configuration information is provided, then we can find a default architecture as follows: –If the entity name is the same as the component name, then this entity is bound to the component. –If there are multiple architectures for the entity, then in this case we use the last compiled architecture for the entity. deferred If no such entity with the same name is visible to the VHDL environment, then the binding is said to be deferred: that is no binding takes place now, but information will be forthcoming later. –This is akin to going ahead with wiring the rest of the circuit and hoping that your partner comes up with the right chips before you are ready to run the experiment!!

Configuration Specification Configuration specifications are used in the architecture body to identify the relationships between the components and the entity – architecture pairs used to model each component. If we use a laboratory analogy, consider how we might specify the chips to be used for a component that we have declared. –We might specify the chip name and location, for example, in the box labeled half adders in the grey cabinet. How can we similarly define the exact location of an entity – architecture pair?

Configuration Specification We can do so by naming the design library within which it is located and the name of the design unit within which such pairs are stored. architecture structural of full_adder is -- --declare components here signal s1, s2, s3: std_logic; configuration specification for H1: half_adder use entity WORK.half_adder (behavioral); for H2: half_adder use entity WORK.half_adder (structural); for O1: or_2 use entity POWER.lpo2 (behavioral) generic map (gate_delay => gate_delay) port map (I1 => a, I2 => b, Z=>c); begin -- component instantiation statements H1: half_adder port map (a =>In1, b => In2, sum => s1, carry=> s2); H2: half_adder port map (a => s1, b => c_in, sum => sum, carry => s2); O1: or_2 port map (a => s2, b => s3, c => c_out); end structural; library name entity name architecture name

Configuration Declaration Configuration specifications is part of the architecture: hence, we must be placing it within the architecture body. Modification of our choice of models to implement a component requires editing the architecture and recompiling the model!! A configuration declaration enables us to provide the same configuration information, but as a separate design unit and, if desired, in a separate file. Suppose we take all of the configuration information provided in the previous slide, name it, and refer to it by its name. This unit now becomes the configuration declaration and is a distinct design unit (like an entity, or architecture)

Configuration declaration A configuration is a design unit like entity, package etc. Hence, it can be declared by itself. configuration_declaration <= configuration id of entity_name is for architecture_name { for component_specification binding_indication; end for; } end for; end [ configuration ] id ; component_specification <= ( instantiation_label {, … } | others | all ) : component_name; binding_indication <= use entity entity_name [ ( architecture_id ) ]

Configuration Declaration Written as a separate design unit Can be written to span a design hierarchy Use of the “for all” clause configuration Config_A of full_adder is -- name the configuration -- for the entity for structural -- name of the architecture being configured for H1: half_adder use entity WORK.half_adder (behavioral); end for; -- for H2: half_adder use entity WORK.half_adder (structural); end for; -- for O1: or_2 use entity POWER.lpo2 (behavioral) generic map(gate_delay => gate_delay) port map (I1 => a, I2 => b, Z=>c); end for; -- end for; end Config_A;

Example configuration reg4_gate_level of reg4 is for struct for bit0,bit1 : ff use entity flipflop(behavior); end for; for others : ff use entity flipflop(struct); end for; end; Default binding for ports

Design flow 1.Partition design into sub-parts. 2.Define the interface between various sub-parts. 3.Construct components to specify the sub-parts. 4.Design actual implementations for the components. 5.Use configuration to integrate and simulate.

Summary The key issue to be understood here is that –Configurations are the language mechanism that specifies a particular implementation when a myriad of alternative models is available for the constituent components. –The use of configurations is motivated in part by the need to be able to reuse models and share models among developers