ENG6090 RCS1 ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 4: Modeling Dataflow.

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

Quad 2-to-1 and Quad 4-to-1 Multiplexers Discussion D2.4 Example 7.
1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Introduction to VHDL VHDL Tutorial R. E. Haskell and D. M. Hanna T1: Combinational Logic Circuits.
Introduction to VHDL CSCE 496/896: Embedded Systems Witawas Srisa-an.
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.
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448.
EE 367 – Logic Design Lecture #17
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches.
Data Flow Modeling of Combinational Logic Simple Testbenches
A.7 Concurrent Assignment Statements Used to assign a value to a signal in an architecture body. Four types of concurrent assignment statements –Simple.
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.
ENG6090 RCS1 ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 5: Modeling Structure.
VHDL Introduction. V- VHSIC Very High Speed Integrated Circuit H- Hardware D- Description L- Language.
ENG241 Digital Design Week #4 Combinational Logic Design.
VHDL in 1h Martin Schöberl. AK: JVMHWVHDL2 VHDL /= C, Java,… Think in hardware All constructs run concurrent Different from software programming Forget.
ECE Advanced Digital Systems Design Lecture 4 – Combinational Circuits in VHDL Capt Michael Tanner Room 2F46A HQ U.S. Air Force Academy.
IAY 0600 Digital Systems Design VHDL discussion Dataflow&Behavioral Styles Combinational Design Alexander Sudnitson Tallinn University of Technology.
VHDL for Combinational Circuits. VHDL We Know Simple assignment statements –f
Introduction to VHDL Spring EENG 2920 Digital Systems Design Introduction VHDL – VHSIC (Very high speed integrated circuit) Hardware Description.
1 ECE 545 – Introduction to VHDL Dataflow Modeling of Combinational Logic Simple Testbenches ECE 656. Lecture 2.
Mixed Style RTL Modeling
ECE 332 Digital Electronics and Logic Design Lab Lab 6 Concurrent Statements & Adders.
ECE 331 – Digital System Design Multiplexers and Demultiplexers (Lecture #13)
(1) Basic Language Concepts © Sudhakar Yalamanchili, Georgia Institute of Technology, 2006.
IAY 0600 Digital Systems Design VHDL discussion Dataflow Style Combinational Design Alexander Sudnitson Tallinn University of Technology.
Delay Mechanisms transport | [reject time_exp] inertial Transport: Ideal transmission line Inertial: Model rejection of short pulses.
George Mason University Data Flow Modeling in VHDL ECE 545 Lecture 7.
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)
ECE 332 Digital Electronics and Logic Design Lab Lab 5 VHDL Design Styles Testbenches Concurrent Statements & Adders.
ECOM 4311—Digital System Design with VHDL
Data Flow Modeling in VHDL
Apr. 3, 2000Systems Architecture I1 Introduction to VHDL (CS 570) Jeremy R. Johnson Wed. Nov. 8, 2000.
May 9, 2001Systems Architecture I1 Systems Architecture I (CS ) Lab 5: Introduction to VHDL Jeremy R. Johnson May 9, 2001.
Lecture #10 Page 1 Lecture #10 Agenda 1.VHDL : Concurrent Signal Assignments 2.Decoders using Structural VHDL Announcements 1.HW #4 due 2.HW #5 assigned.
Lecture #17 Page 1 ECE 4110–5110 Digital System Design Lecture #17 Agenda 1.MSI Multiplexers 2.MSI Encoders Announcements Test 1 closed book, Wednesday.
CDA 4253 FPGA System Design Behavioral modeling of Combinational Circuits Hao Zheng Dept of Comp Sci & Eng USF.
QUIZ What Circuit is this ?. Entity (The Object) -- Entity informs about the circuit’s interface -- signals entity my_circuit is port (L0, L1, L2, L3.
George Mason University Data Flow Modeling of Combinational Logic ECE 545 Lecture 5.
Data Flow and Behavioral Modeling in VHDL 1 MS EMBEDDED SYSTEMS.
Fundamentals of Digital Signal Processing יהודה אפק, נתן אינטרטור אוניברסיטת תל אביב.
Combinational logic circuit
Basic Language Concepts
Systems Architecture Lab: Introduction to VHDL
Describing Combinational Logic Using Processes
B e h a v i o r a l to R T L Coding
ENG2410 Digital Design “Combinational Logic Design”
ECE 4110–5110 Digital System Design
Dataflow Style Combinational Design with VHDL
Chapter 2. Introduction To VHDL
Combinational Circuits Using VHDL
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
IAS 0600 Digital Systems Design
ECE 434 Advanced Digital System L08
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
VHDL VHSIC Hardware Description Language VHSIC
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Data Flow Modeling of Combinational Logic
VHDL (VHSIC Hardware Description Language)
VHDL Structural Architecture
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Data Flow Description of Combinational-Circuit Building Blocks
Modeling of Circuits with a Regular Structure
Data Flow Description of Combinational-Circuit Building Blocks
Modeling of Circuits with a Regular Structure
CprE / ComS 583 Reconfigurable Computing
Digital Logic with VHDL
Presentation transcript:

ENG6090 RCS1 ENG6090 Reconfigurable Computing Systems Hardware Description Languages Part 4: Modeling Dataflow

ENG6090 RCS2 Topics Concurrent Statements Concurrent Statements Conditional Signal Assignment Conditional Signal Assignment Selected Signal Assignment Selected Signal Assignment

ENG6090 RCS3 Concurrent Signal Assignment Thus far, all the signal assignments have been performed inside the process body. If the process contains only simple signal signal assignments, then this is too cumbersome. VHDL provides “shortcuts” through concurrent signal assignments. defined The concurrent signal assignments are defined by equivalent process statements by equivalent process statements. written The concurrent signal assignments are written inside architecture bodies inside architecture bodies.

ENG6090 RCS4 Dataflow Description how data moves through the system Describes how data moves through the system and the various processing steps. evaluated at the same time Data Flow uses series of concurrent statements to realize logic. Concurrent statements are evaluated at the same time; thus, order of these statements doesn’t matter. most useful style when Data Flow is most useful style when series of Boolean equations can represent a logic.

ENG6090 RCS5 XOR3 Example

ENG6090 RCS6 Entity (XOR3 Gate) entity XOR3 is port( A : in STD_LOGIC; B : in STD_LOGIC; C : in STD_LOGIC; RESULT : out STD_LOGIC ); end XOR3;

ENG6090 RCS7 Dataflow Architecture (XOR3 Gate) architecture XOR3_DATAFLOW of XOR3 is signal U1_OUT: STD_LOGIC; begin U1_OUT <= A xor B; RESULT <= U1_OUT xor C; end XOR3_DATAFLOW; U1_out XOR3

ENG6090 RCS8 Full Adder: Data Flow Representation

ENG6090 RCS9 Decoders: Data Flow

ENG6090 RCS10 entity dec_2_to_4 is port ( A0, A1: in std_logic; D0, D1, D2, D3: out std_logic); end entity decoder_2_to_4; architecture dataflow1 of dec_2_to_4 is Signal A0_n, A1_n: std_logic; begin A0_n <= not A0; A1_n <= not A1; D0 <= A0_n and A1_n; D1 <= A0 and A1_n; D2 <= A0_n and A1; D3 <= A0 and A1; end architecture dataflow1; entity dec_2_to_4 is port ( A0, A1: in std_logic; D0, D1, D2, D3: out std_logic); end entity decoder_2_to_4; architecture dataflow1 of dec_2_to_4 is Signal A0_n, A1_n: std_logic; begin A0_n <= not A0; A1_n <= not A1; D0 <= A0_n and A1_n; D1 <= A0 and A1_n; D2 <= A0_n and A1; D3 <= A0 and A1; end architecture dataflow1; Decoder: Data Flow Example #1 Example: 2-to-4 decoder D0 D1 D2 D3 A(1) A(0) Interface Functionality A0_n

ENG6090 RCS11 zmux: z <= d0 when sel1 = ‘0’ and sel0 = ‘0’ else d1 when sel1 = ‘0’ and sel0 = ‘1’ else d2 when sel1 = ‘1’ and sel0 = ‘0’ else d3; zmux: process (d0,d1,d2,d3,sel0,sel1) is begin if sel1 = ‘0’ and sel0 = ‘0’ then z <= d0; elsif sel1 = ‘0’ and sel0 = ‘1’ then z <= d1; elsif sel1 = ‘1’ and sel0 = ‘0’ then z <= d2; else z <= d3; end; When Else Statement

ENG6090 RCS12 entity dec_2_to_4 is port ( A : in std_logic_vector(1 downto 0); D : out std_logic_vector(3 downto 0) ); end entity dec_2_to_4; architecture dataflow2 of dec_2_to_4 is begin D <= "0001" when A = "00" else "0010" when A = "01" else "0100" when A = "10" else "1000" when A = "11" else "XXXX"; end architecture dataflow2; entity dec_2_to_4 is port ( A : in std_logic_vector(1 downto 0); D : out std_logic_vector(3 downto 0) ); end entity dec_2_to_4; architecture dataflow2 of dec_2_to_4 is begin D <= "0001" when A = "00" else "0010" when A = "01" else "0100" when A = "10" else "1000" when A = "11" else "XXXX"; end architecture dataflow2; Decoder: Data Flow Example #2 Example: 2-to-4 decoder D(0) D(1) D(2) D(3) A(1) A(0) Interface Functionality A(1..0)D(3..0)

ENG6090 RCS13 Multiplexers: Data Flow

ENG6090 RCS14 entity mux_4_to_1 is port ( S : in std_logic_vector(1 downto 0); D : in std_logic_vector(0 to 3); Y : out std_logic ); end entity mux_4_to_1; architecture dataflow1 of mux_4_to_1 is begin Y <= D(0) when S = "00" else D(1) when S = "01" else D(2) when S = "10" else D(3) when S = "11" else "X"; end architecture dataflow1; entity mux_4_to_1 is port ( S : in std_logic_vector(1 downto 0); D : in std_logic_vector(0 to 3); Y : out std_logic ); end entity mux_4_to_1; architecture dataflow1 of mux_4_to_1 is begin Y <= D(0) when S = "00" else D(1) when S = "01" else D(2) when S = "10" else D(3) when S = "11" else "X"; end architecture dataflow1; Multiplexer: Data Flow Ex#1 Example: 4-to-1 Multiplexer D(0) D(1) D(2) D(3) S(1)S(0) Interface Functionality Y S1S0Y 00D0 01D1 10D2 11D3

ENG6090 RCS15 alu: with alu_function select result <= a+b after Tpd when alu_add, a-b after Tpd when alu_sub; alu: process (alu_function,a,b) is begin case alu_function is when alu_add => result <= a+b; when alu_sub => result <= a-b; end case; end; Selected signal assignment

ENG6090 RCS16 entity mux_4_to_1 is port ( S : in std_logic_vector(1 downto 0); D : in std_logic_vector(0 to 3); Y : out std_logic ); end entity mux_4_to_1; architecture dataflow2 of mux_4_to_1 is begin with S select Y <= D(0) when "00“; D(1) when "01“; D(2) when "10“; D(3) when "11“; "X“ when others; end architecture dataflow2; entity mux_4_to_1 is port ( S : in std_logic_vector(1 downto 0); D : in std_logic_vector(0 to 3); Y : out std_logic ); end entity mux_4_to_1; architecture dataflow2 of mux_4_to_1 is begin with S select Y <= D(0) when "00“; D(1) when "01“; D(2) when "10“; D(3) when "11“; "X“ when others; end architecture dataflow2; Multiplexer: Data Flow Ex#2 Example: 4-to-1 Multiplexer D(0) D(1) D(2) D(3) S(1)S(0) Interface Functionality Y S1S0Y 00D0 01D1 10D2 11D3

ENG6090 RCS17Summary Data Flow is a behavioral description in which the data dependencies in the description match those in a real implementation (best used for Boolean function implementation) It basically describes how data moves through the system and the various processing steps. Data Flow uses series of concurrent statements to realize logic. Think of the conditional signal assignment and selected assignment statements as routing structures rather than sequential control constructs. –The conditional signal assignment statement infers a priority routing structure, and a large number of when clauses leads to a long cascading chain. –The selected signal assignment statements infers a multiplexing structure, and a large number of choices leads to a wide mux.

ENG6090 RCS18

ENG6090 RCS19 Example rst_gen: reset <= ‘1’,’0’ after 200 ns when extended_reset; ‘1’,’0’ after 50 ns; Assume extended_reset is a constant. There are no signals named on the RHS. rst_gen: process is begin if extended_reset then reset <= ‘1’,’0’ after 200 ns; else reset <= ‘1’, ‘0’ after 50 ns; end if; wait; end;