RESOLVED SIGNALS Used for situations where 2 outputs drive one signal. Example of a resolved signal declaration: type tri_state_logic is (‘0’, ‘1’, ‘Z’);

Slides:



Advertisements
Similar presentations
Multiplexers Section 3-7 Mano & Kime. Multiplexers & Demultiplexers Multiplexers (Selectors) Lab 1 – Behavioral VHDL -- Multiplexers MUX as a Universal.
Advertisements

LECTURE 4: The VHDL N-bit Adder
Reconfigurable Computing - Resolution Functions John Morris Chung-Ang University The University of Auckland ‘Iolanthe’ at 13 knots on Cockburn Sound, Western.
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/8/ L17 Resolved SiganlsCopyright Joanne DeGroat, ECE, OSU1 Resolved Signals What are resolved signals and how do they work. Resolution???
Introduction to VHDL VHDL Tutorial R. E. Haskell and D. M. Hanna T1: Combinational Logic Circuits.
© Dr. Alaaeldin Amin 1 Hardware Modeling & Synthesis Using VHDL Very High Speed Integrated Circuits Start Of VHDL Development First Publication.
VHDL Data Types Module F3.1. VHDL Data Types Scalar Integer Enumerated Real (floating point)* Physical* Composite Array Record Access (pointers)* * Not.
Introduction to VHDL Multiplexers. Introduction to VHDL VHDL is an acronym for VHSIC (Very High Speed Integrated Circuit) Hardware Description Language.
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.
Introduction to VHDL Multiplexers Discussion D1.1.
ECE C03 Lecture 141 Lecture 14 VHDL Modeling of Sequential Machines Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
1 Data Object Object Types A VHDL object consists of one of the following: –Signal, Which represents interconnection wires that connect component instantiation.
1 H ardware D escription L anguages Basic Language Concepts.
Concordia University 1 Lecture #8 In this lecture we will cover the following material: The standard package, The std_logic_1164  Objects & data Types.
Resolved Signals Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Introduction to VHDL Arab Academy for Science, Technology & Maritime Transport Computer Engineering Department Magdy Saeb, Ph.D.
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,
CMPUT Computer Organization and Architecture II1 CMPUT329 - Fall 2003 Topic9: Three-State Buffers, Encoders/Decoders José Nelson Amaral.
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
ENG241 Digital Design Week #4 Combinational Logic Design.
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.
Packages and Use Clauses Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHDL – Basic Language Elements  Identifiers: –basic identifier: composed of a sequence of one or more.
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.
VHDL Very High Speed Integrated Circuit Hardware Description Language Shiraz University of shiraz spring 2011.
Generate Statements Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Topics AliasesSubprograms Generics & Configurations.
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
SUBPROGRAMAS PROCEDIMENTOS procedure average_samples is variable total : real := 0.0; begin assert samples'length > 0 severity failure; for index in samples'range.
Lecture #7 Page 1 Lecture #7 Agenda 1.VHDL Data Types Announcements 1.n/a ECE 4110– Digital Logic Design.
L19 – Resolved Signals. Resolved Signals  What are resolved signals In systems In VHDL Resolution – Isn’t that for resolving conflicts?  Ref: text Unit.
Feb. 26, 2001Systems Architecture I1 Systems Architecture I (CS ) Lecture 12: State Elements, Registers, and Memory * Jeremy R. Johnson Mon. Feb.
1 Introduction to VHDL Part 2 Fall We will use Std_logic And, Or have same precedence See slide 8 of part 1.
16/11/2006DSD,USIT,GGSIPU1 Packages The primary purpose of a package is to encapsulate elements that can be shared (globally) among two or more design.
8-Jan-16EE5141 Chapter 6 Subprograms & Packages Subprogram declaration Subprogram body Package declaration Package body Resolution function Subprogram.
CS/EE 3700 : Fundamentals of Digital System Design
04/26/20031 ECE 551: Digital System Design & Synthesis Lecture Set : Introduction to VHDL 12.2: VHDL versus Verilog (Separate File)
 Seattle Pacific University EE Logic System DesignMux-Decoder-1 Multiplexers Two alternative forms for a 2:1 Mux Truth Table Functional form Logical.
VHDL Discussion Subprograms IAY 0600 Digital Systems Design Alexander Sudnitson Tallinn University of Technology 1.
Apr. 3, 2000Systems Architecture I1 Introduction to VHDL (CS 570) Jeremy R. Johnson Wed. Nov. 8, 2000.
VHDL ELEC 311 Digital Logic and Circuits Dr. Ron Hayne Images Courtesy of Cengage Learning.
May 9, 2001Systems Architecture I1 Systems Architecture I (CS ) Lab 5: Introduction to VHDL Jeremy R. Johnson May 9, 2001.
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.
Slide 1 3.VHDL/Verilog Description Elements. Slide 2 To create a digital component, we start with…? The component’s interface signals Defined in MODULE.
Case Study: Xilinx Synthesis Tool (XST). Arrays & Records 2.
EGRE 6311 LHO 04 - Subprograms, Packages, and Libraries EGRE 631 1/26/09.
1 Introduction to Engineering Spring 2007 Lecture 19: Digital Tools 3.
IAY 0600 Digital Systems Design
Elements of Structural Models
Basic Language Concepts
Subject Name: FUNDAMENTALS OF HDL Subject Code: 10EC45
Behavioral Style Combinational Design with VHDL
IAY 0600 Digital Systems Design
Behavioral Style Combinational Design with VHDL
LIBRARY IEEE; Include Libraries for standard logic data types USE IEEE.STD_LOGIC_1164.ALL; -- Entity name normally the same as file name.
Copyright Joanne DeGroat, ECE, OSU
LIBRARY IEEE; Include Libraries for standard logic data types USE IEEE.STD_LOGIC_1164.ALL; -- Entity name normally the same as file name.
CPE/EE 422/522 Advanced Logic Design L11
VHDL Discussion Subprograms
CPE 528: Lecture #3 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
VHDL Discussion Subprograms
UNIT 6: Mixed-Type Description
Hardware Modeling & Synthesis Using VHDL
4-Input Gates VHDL for Loops
Digital Logic with VHDL
(Sequential-Circuit Building Blocks)
(Carry Lookahead Adder)
Presentation transcript:

RESOLVED SIGNALS Used for situations where 2 outputs drive one signal. Example of a resolved signal declaration: type tri_state_logic is (‘0’, ‘1’, ‘Z’); Next, we need to write a function to take a collection of values of this type. type tri_state_logic_array is array(integer range<>) of tri_state_logic; signal s1:resolve_tri_state_logic tri_state_logic;

RESOLVED SIGNALS Example1: A resolution function for resolving multiple values from tristate drivers. function resolve_tri_state_logic(values: in tri_state_logic_array) return tri_state_logic_is variable result:= tri_state_logic:=‘Z’; begin for index in values’range loop if values(index) /= Z then result := values(index); end if; end loop; return result; end function resolve_tri_state_logic;

RESOLVED SIGNALS The following example shows a package interface and the corresponding package body for the 4 state multivalued logic type. The constant resolution_table is a lookup table used to determine the value resulting from two source contributions to a signal of the resolved logic type. package mvl4 is type mvl4_ulogic is (‘X’,’0’,’1’,’Z’); type mvl4_ulogic_vector is array(natural range <>) of mvl4_ulogic; function resolve_mvl4(contribution: mvl4_ulogic_vector) return mvl4_ulogic; subtype mvl4_logic is resolve_mvl4 mvl4_ulogic; end package mvl4;

RESOLVED SIGNALS package body mvl4 is type table is array(mvl4_ulogic, mvl4_ulogic) of mvl4_ulogic; constant resolution_table : table := ((‘X’, ‘X’,’X’,’X’), (‘X’,’0’,’X’,’0’), (‘X’,’X’,’1’,’1’), (‘X’,’0’,’1’,’Z’)); function resolve_mlv4(contribution : mlv4_ulogic_vector) return mvl4_ulogic is variable result : mvl4_ulogic := ‘z’; begin for index in contribution’range loop result := resolution_table(result, contribution(index)); end loop; return result; end function resolve_mvl4; end package body mvl4;

RESOLVED SIGNALS Composite resolved subtypes: The following example shows a package interface and body that define a resolved array subtype. Each element of an array value of this subtype can be ‘X’,’0’,’1’ or ‘Z’. The resolved type uword is a 32 element value of these values. package words is type x01z is (‘X’,’0’,’1’,’Z’); type uword is array (0 to 31) of x01z; type uword_vector is array(natural range <>) of uword; function resolve_word(contribution : uword_vector) return uword; subtype word is resolve_word uword; end package words;

RESOLVED SIGNALS package body words is type table is array(x01z, x01z) of x01z; constant resolution_table :table := ((‘X’, ‘X’,’X’,’X’), (‘X’,’0’,’X’,’0’), (‘X’,’X’,’1’,’1’), (‘X’,’0’,’1’,’Z’)); function resolve_word (contribution : uword_vector) return uword is begin for index in contribution’range loop for element in uword’range loop result(element) := resolution_table(result(element), contribution(index)(element)); end loop; return result; end function resolve_word; end package words;

RESOLVED SIGNALS Example shows entity declarations for a ROM entity and a single in-line memory module (SIMM), using the MVL4_logic_vector type for their data ports. The data ports are 32 bits wide, whereas the data port of the ROM is only 8 bits wide. use work.mvl4.all; entity ROM is port( a : in mvl4_ulogic_vector(15 downto 0); d : inout mvl4_logic_vector(7 downto 0); rd : in mvl4_ulogic); end entity ROM;

RESOLVED SIGNALS use work.mvl4.all; entity SIMM is port(a : in mvl4_ulogic_vector(9 downto 0); d : inout mvl4_logic_vector(31 downto 0); ras, cas, we, cs : in mvl4_ulogic); end entity SIMM; architecture detailed of memory_subsystem is signal internal_data : mvl4_logic_vector(31 downto 0); begin bootROM : entity work.ROM(behavioral); port map (a=> internal_addr(15 downto 0); d => internal_addr(7 downto 0); rd => ROM_select); main_mem :entity work.SIMM(behavioral); port map ( a=> main_mem_addr, d => internal_data...); end erchitecture detailed;

RESOLVED SIGNALS The next example shows an entity declaration for a bus module that has a port of the unresolved type std_ulogic for connection to such a synchronization control signal. The architecture body for a system comprising several such modules is also outlined. library ieee; entity bus_module is port(synch : inout std_ulogic...); end entity bus_module; architecture top_level of bus_based_system is signal synch_control : std_logic; begin synch_control_pull_up : synch_control <= ‘H’; bus_module_1 : entity work.bus_module(behavioral) port map(synch => synch_control....); bus_module_2 : entity work.bus_module(behavioral) port map(synch => synch_control....); end architecture top_level;

RESOLVED SIGNALS The next example is an outline of a behavioral architecture body for a bus module, showing use of the synchronization control port: architecture behavioral of bus_module is begin behavior : process is... begin synch <= ‘0’ after Tdelay_synch;.... synch <= ‘Z’ after Tdelay_synch; wait until synch = ‘H’;.... end process behavior; end architecture behavioral;

RESOLVED SIGNALS

This figure shows the hierarchical organization of a single board computer system consisting of a video display, an input/output controller, a CPU/memory section and a bus expansion block. The CPU consists of memory block and a cache block. Both these act as sources for the data port, so it must be a resolved port. The cache has 2 sections, both act as its sources. Hence, this is also a resolved port.

RESOLVED SIGNALS Consider a case of one of the cache sections updating its data port. The new driving value is resolved with the current driving value form the other cache section to determine the driving value of the CPU/cache block data port. This result is then resolved with the current driving value of the memory block to determine the driving value of the CPU/memory section. Next, this driving value is resolved with the current driving values of the other top level sections to determine the effective value of the data bus signal. The final step is to propagate this signal value back down the hierarchy for use as the effective value of each of the data ports. Thus, a module that reads the value of its data port will see the final resolved value of the data bus signal.