CPE 626 Advanced VLSI Design Lecture 7: VHDL Synthesis
|
|
- Beverly Goodwin
- 6 years ago
- Views:
Transcription
1 CPE 626 Lecture 7 VHDL Synthes Aleksar Milenkovic http// http// milenka@ece.uah.edu Asstant Pressor Electrical Computer Engineering Dept. University Alabama in Huntsville Design Flow Overview A. Milenkovic 2
2 Schematic Capture RTL code Carefully Select Design Hierarchy Architectural Wizards (Clocking, RocketIO) Core Generator A. Milenkovic 3 Core Generator Design tool that delivers parameterized cores optimized for Xilinx FPGAs E.g., adders, multipliers, filters, FIFOs, memories Core Generator outputs *.EDN file > EDIF (Electronic Data Interchange Format) netlt file; it includes information required to implement the module in a Xilinx FPGA *.VHO > VHDL template file; used as a model for instantiating a module in a VHDL design *.VHD > VHDL wrapper file; provides support for functional simulation A. Milenkovic 4
3 Functional Simulation Very the syntax functionality Separate simulation for each module > easier to debug When each module behaves as expected, create a test bench for entire design A. Milenkovic 5 Coding for Synthes A. Milenkovic 6
4 Avoid Ports Declared as Buffers Entity alu port( A in STD_LOGIC_VECTOR(3 B in STD_LOGIC_VECTOR(3 CLK in STD_LOGIC; C out STD_LOGIC_VECTOR(3 0) ); alu; architecture BEHAVIORAL alu -- dummy C_INT STD_LOGIC_VECTOR(3 C C_INT; process (CLK event CLK 1 ) C_INT < UNSIGNED(A) + UNSIGNED(B) + UNSIGNED(C_INT); process; BEHAVIORAL; Entity alu port( A in STD_LOGIC_VECTOR(3 B in STD_LOGIC_VECTOR(3 CLK in STD_LOGIC; C buffer STD_LOGIC_VECTOR(3 0) ); alu; architecture BEHAVIORAL alu process (CLK event CLK 1 ) C UNSIGNED(A) + UNSIGNED(B) UNSIGNED(C); process; BEHAVIORAL; A. Milenkovic 7 Signals vs. Variables for Synthes -- XOR_VAR.VHD Library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity xor_var port ( A, B, C in STD_LOGIC; X, Y out STD_LOGIC ); xor_var; architecture VAR_ARCH xor_var VARprocess (A,B,C) variable D STD_LOGIC; D A; X C xor D; D B; Y C xor D; process; VAR_ARCH; A. Milenkovic 8
5 Signals vs. Variables for Synthes -- XOR_SIG.VHD Library IEEE; use IEEE.std_logic_1164.all; entity xor_sig port ( A, B, C in STD_LOGIC; X, Y out STD_LOGIC ); xor_sig; architecture SIG_ARCH xor_sig D STD_LOGIC; SIGprocess (A,B,C) D A; -- ignored!! X C xor D; D B; -- overrides!! Y C xor D; process; SIG_ARCH; A. Milenkovic 9 Guidelines for synthes VHDL/Verilog are not originally planned as languages for synthes Many HDL simulation constructs are not supported in synthes Omit wait for XX statements Omit delay statements after XX; Omit initial values Order grouping arithmetic statement can influence synthes A. Milenkovic 10
6 If Statement vs. Case Statement If statement generally produces priorityencoded logic can contain a set dferent expressions Case statement generally creates balanced logic evaluated against a common controlling expression In general, use the Case statement for complex decoding use the If statement for speed critical paths A. Milenkovic 11 MUX 4-1 Synthes -- IF_EX.VHD library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity _ex port ( SEL in STD_LOGIC_VECTOR(1 A,B,C,D in STD_LOGIC; MUX_OUT out STD_LOGIC); _ex; architecture BEHAV _ex IF_PRO process (SEL,A,B,C,D) (SEL 00 ) MUX_OUT A; els (SEL 01 ) MUX_OUT B; els (SEL 10 ) MUX_OUT C; els (SEL 11 ) MUX_OUT D; else MUX_OUT '0'; process; --END IF_PRO BEHAV; -- CASE_EX.VHD library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity case_ex port ( SEL in STD_LOGIC_VECTOR(1 A,B,C,D in STD_LOGIC; MUX_OUT out STD_LOGIC); case_ex; architecture BEHAV case_ex CASE_PRO process (SEL,A,B,C,D) case SEL when 00 > MUX_OUT A; when 01 > MUX_OUT B; when 10 > MUX_OUT C; when 11 > MUX_OUT D; when others > MUX_OUT '0'; case; process; --End CASE_PRO BEHAV; A. Milenkovic 12
7 MUX 4-1 Implementation A. Milenkovic 13 Resource Sharing An optimization that uses a single functional block (adder, multiplier, shter, ) to implement several HDL operators Pros less gates, simpler routing Cons adds extra logic levels > increase delay (avoid sharing on the critical path) A. Milenkovic 14
8 Resource Sharing VHDL Example -- RES_SHARING.VHD library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; use IEEE.std_logic_arith.all; entity res_sharing port ( A1,B1,C1,D1 in STD_LOGIC_VECTOR (7 COND_1 in STD_LOGIC; Z1 out STD_LOGIC_VECTOR (7 0)); res_sharing; architecture BEHAV res_sharing P1 process (A1,B1,C1,D1,COND_1) (COND_1 1 ) Z1 A1 + B1; else Z1 C1 + D1; process; -- P1 BEHAV; A. Milenkovic 15 Implementation W/WO Resource Sharing Enabled Dabled A. Milenkovic 16
9 Regters Asynchronous Preset/Set -- FF_EXAMPLE.VHD -- Example Implementing Regters library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity ff_example port ( RESET, SET, CLOCK, ENABLE in STD_LOGIC; D_IN in STD_LOGIC_VECTOR (7 A_Q_OUT out STD_LOGIC_VECTOR (7 B_Q_OUT out STD_LOGIC_VECTOR (7 C_Q_OUT out STD_LOGIC_VECTOR (7 D_Q_OUT out STD_LOGIC_VECTOR (7 E_Q_OUT out STD_LOGIC_VECTOR (7 0)); ff_example; architecture BEHAV ff_example -- D flip-flop FF process (CLOCK) (CLOCK event CLOCK 1 ) A_Q_OUT D_IN; process; -- End FF -- Flip-flop with asynchronous reset FF_ASYNC_RESET process (RESET, CLOCK) (RESET 1 ) B_Q_OUT ; els (CLOCK'event CLOCK B_Q_OUT D_IN; -- Flip-flop with asynchronous set FF_ASYNC_SET process (SET, CLOCK) (SET C_Q_OUT ; els (CLOCK'event CLOCK C_Q_OUT D_IN; process; -- End FF_ASYNC_SET A. Milenkovic 17 Regters Asynchronous Preset/Set -- Flip-flop with asynchronous reset -- clock enable FF_CLOCK_ENABLE process (ENABLE, RESET, CLOCK) (RESET 1 ) D_Q_OUT ; els (CLOCK'event CLOCK (ENABLE D_Q_OUT D_IN; process; -- End FF_CLOCK_ENABLE Flip-flop Flip-flop with with asynchronous asynchronous reset reset asynchronous asynchronous set set clock clock enable enable FF_ASR_CLOCK_ENABLE FF_ASR_CLOCK_ENABLE process process (ENABLE, (ENABLE, RESET, RESET, SET, SET, CLOCK) CLOCK) (RESET (RESET E_Q_OUT E_Q_OUT " "; " "; els els (SET (SET E_Q_OUT E_Q_OUT " "; " "; els els (CLOCK'event (CLOCK'event CLOCK CLOCK (ENABLE (ENABLE E_Q_OUT E_Q_OUT D_IN; D_IN; process; process; End End FF_ASR_CLOCK_ENABLE FF_ASR_CLOCK_ENABLE BEHAV; BEHAV; A. Milenkovic 18
10 Use Clock_Enable instead gated Clock -- Better implementation to use clock enable rather than gated clock library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity gate_clock port (IN1,IN2,DATA,CLK,LOAD in STD_LOGIC; OUT1 out STD_LOGIC); gate_clock; architecture BEHAVIORAL gate_clock GATECLK STD_LOGIC; GATECLK (IN1 IN2 CLK); GATE_PR process (GATECLK,DATA,LOAD) (GATECLK event GATECLK 1 ) (LOAD 1 ) OUT1 DATA; process; -- End GATE_PR BEHAVIORAL; Th implementation introduces Glitches Clock delays Clock skew A. Milenkovic 19 Use Clock Enable Instead Gated Clocks -- CLOCK_ENABLE.VHD library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity clock_enable port (IN1,IN2,DATA,CLOCK,LOAD in STD_LOGIC; DOUT out STD_LOGIC); clock_enable; architecture BEHAV clock_enable ENABLE STD_LOGIC; ENABLE IN1 IN2 LOAD; EN_PR process (ENABLE,DATA,CLOCK) (CLOCK event CLOCK 1 ) (ENABLE 1 ) DOUT DATA; process; -- End EN_PR BEHAV; A. Milenkovic 20
11 HDL Coding Techniques for Common Building Blocks Multiplication in FPGAs http// A. Milenkovic 22
12 Multiplier library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity mult port( ); mult; A in std_logic_vector(17 B in std_logic_vector(17 RES out std_logic_vector(35 0) architecture archi mult RES A * B; archi; Device utilization summary Selected Device 3s50tq144-5 Number Slices 19 out 768 2% Number 4 input LUTs 36 out % Number bonded IOBs 72 out 97 74% Number MULT18X18s 3 out 4 75% Delay ns (Levels Logic 25) A. Milenkovic 23 Inferring Pipelined Multiplier library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity multpipe generic( A_port_size integer 18; B_port_size integer 18 ); port( clk in std_logic; A in unsigned (A_port_size-1 B in unsigned (B_port_size-1 MULT out unsigned ( (A_port_size+B_port_size-1) 0)); multpipe; A. Milenkovic 24
13 Inferring Pipelined Multiplier (cont d) architecture architecture Behavioral Behavioral multpipe multpipe a_in, a_in, b_in b_in unsigned unsigned (A_port_size-1 (A_port_size-1 mult_res mult_res unsigned unsigned ( ( (A_port_size+B_port_size-1) (A_port_size+B_port_size-1) pipe_1, pipe_1, pipe_2, pipe_2, pipe_3 pipe_3 unsigned unsigned ((A_port_size+B_port_size-1) ((A_port_size+B_port_size-1) mult_res mult_res a_in a_in * * b_in; b_in; process process (clk) (clk) (clk'event (clk'event clk clk a_in a_in A; A; b_in b_in B; B; pipe_1 pipe_1 mult_res; mult_res; pipe_2 pipe_2 pipe_1; pipe_1; pipe_3 pipe_3 pipe_2; pipe_2; MULT MULT pipe_3; pipe_3; process; process; Behavioral; Behavioral; > Four pipeline stages A. Milenkovic 25 Pipelined Multiplier RTL Schematic Device utilization summary Selected Device 3s50tq144-5 Number Slices 60 out 768 7% Number Slice Flip Flops 72 out % Number 4 input LUTs 72 out % Number bonded IOBs 72 out 97 74% Number MULT18X18s 3 out 4 75% Number GCLKs 1 out 8 12% Delay 9.824ns (Levels Logic 23) A. Milenkovic 26
14 Inferring PM Alternative Description #1 architecture beh beh mult mult a_in, a_in, b_in b_in unsigned unsigned (A_port_size-1 mult_res mult_res unsigned unsigned ((A_port_size+B_port_size-1) pipe_2, pipe_2, pipe_3 pipe_3 unsigned unsigned ((A_port_size+B_port_size-1) process process (clk) (clk) (clk event (clk event clk 1 ) a_in a_in A; A; b_in b_in B; B; mult_res a_in a_in * b_in; b_in; pipe_2 pipe_2 mult_res; mult_res; pipe_3 pipe_3 pipe_2; pipe_2; MULT MULT pipe_3; pipe_3; process; process; beh; A. Milenkovic 27 Inferring PM Alternative Description #2 architecture beh beh mult mult a_in, a_in, b_in b_in unsigned unsigned (A_port_size-1 mult_res mult_res unsigned unsigned ((A_port_size+B_port_size-1) type type pipe_reg_type array array (2 (2 0) 0) unsigned unsigned ((A_port_size+B_port_size-1) pipe_regs pipe_regs pipe_reg_type; mult_res mult_res a_in a_in * b_in; b_in; process process (clk) (clk) (clk event (clk event clk 1 ) a_in a_in A; A; b_in b_in B; B; pipe_regs pipe_regs mult_res mult_res & pipe_regs(2 1); 1); MULT MULT pipe_regs( process; process; beh; A. Milenkovic 28
15 RAMs/ROMs XST fers an automatic RAM recognition Keep you HDL code technology indepent XST can infer dtributed or Block RAM Parameters Synchronous write, Write enable, RAM enable, Asynchronous or synchronous read, Reset the data output latches, Data output reset, Single, dual or multiple-port read, Single-port write A. Milenkovic 29 Dual-port Block RAM -- --Only XST XST supports supports RAM RAM inference inference -- --Infers Dual Dual Port Port Block Block Ram Ram entity entitydpblockram dpblockram port port (clk (clk in in std_logic; std_logic; we we in in std_logic; std_logic; a in in std_logic_vector(4 dpra dpra in in std_logic_vector(4 di di in in std_logic_vector(3 spo spo out out std_logic_vector(3 dpo dpo out out std_logic_vector(3 0)); dpblockram; A. Milenkovic 30
16 Dual-port Block RAM architecture architecture syn syn dpblockram dpblockram type type ram_type ram_type array array (31 (31 0) 0) std_logic_vector std_logic_vector (3 (3 RAM RAM ram_type; ram_type; read_a read_a std_logic_vector(4 std_logic_vector(4 read_dpra read_dpra std_logic_vector(4 std_logic_vector(4 process process (clk) (clk) (clk'event (clk'event clk clk (we (we RAM(conv_integer(a)) RAM(conv_integer(a)) di; di; read_a read_a a; a; read_dpra read_dpra dpra; dpra; process; process; spo spo RAM(conv_integer(read_a)); RAM(conv_integer(read_a)); dpo dpo RAM(conv_integer(read_dpra)); RAM(conv_integer(read_dpra)); syn; syn; A. Milenkovic 31 Dual-port Dtributed RAM entity entitydpdtram dpdtram port port (clk (clk in in std_logic; std_logic; we we in in std_logic; std_logic; a in in std_logic_vector(4 dpra dpra in in std_logic_vector(4 di di in in std_logic_vector(3 spo spo out out std_logic_vector(3 dpo dpo out out std_logic_vector(3 0)); dpdtram; dpdtram; A. Milenkovic 32
17 Dual-port Dtributed RAM architecture architecture syn syn dpdtram dpdtram type type ram_type ram_type array array (31 (31 0) 0) std_logic_vector std_logic_vector (3 (3 RAM RAM ram_type; ram_type; process process (clk) (clk) (clk'event (clk'event clk clk (we (we RAM(conv_integer(a)) RAM(conv_integer(a)) di; di; process; process; spo spo RAM(conv_integer(a)); RAM(conv_integer(a)); dpo dpo RAM(conv_integer(dpra)); RAM(conv_integer(dpra)); syn; syn; A. Milenkovic 33 Dual-port RAM with Enable on Each Port Write VHDL description. A. Milenkovic 34
CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic
CPE 626 Lecture 6: VHDL Synthesis Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer Engineering
More informationAssignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture
Assignment Last time Project 4: Using synthesis tools Synplify Pro and Webpack Due 11/11 ning of class Generics Used to parameterize models E.g., Delay, bit width Configurations Configuration specification
More informationECE 448 Lecture 13. FPGA Memories. George Mason University
ECE 448 Lecture 13 FPGA Memories George Mason University Recommended reading Spartan-6 FPGA Block RAM Resources: User Guide Google search: UG383 Spartan-6 FPGA Configurable Logic Block: User Guide Google
More informationECE 699: Lecture 9. Programmable Logic Memories
ECE 699: Lecture 9 Programmable Logic Memories Recommended reading XST User Guide for Virtex-6, Spartan-6, and 7 Series Devices Chapter 7, HDL Coding Techniques Sections: RAM HDL Coding Techniques ROM
More informationVHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2
VHDL: Modeling RAM and Register Files Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2 Memory Synthesis Approaches: Random logic using flip-flops or latches Register files in datapaths RAM standard components
More informationECE 545: Lecture 11. Programmable Logic Memories
ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Memory Resources:
More informationECE 545: Lecture 11. Programmable Logic Memories. Recommended reading. Memory Types. Memory Types. Memory Types specific to Xilinx FPGAs
ECE 545: Lecture 11 Programmable Logic Memories Recommended reading Vivado Design Suite User Guide: Synthesis Chapter 4 RAM HDL Coding Techniques Initializing RAM Contents 7 Series FPGAs Resources: User
More informationLecture 11 Memories in Xilinx FPGAs
Lecture 11 Memories in Xilinx FPGAs ECE 448 FPGA and ASIC Design with VHDL Recommended reading XAPP463 Using Block RAM in Spartan-3 Generation FPGAs Google search: XAPP463 XAPP464 Using Look-Up Tables
More informationECE 545 Lecture 17 RAM. George Mason University
ECE 545 Lecture 17 RAM George Mason University Recommended reading XST User Guide for Virtex-6, Spartan-6, and 7 Series Devices Chapter 7, HDL Coding Techniques [ UG687 (v 14.5) March 20, 2013 ] Sections:
More informationLecture 12 VHDL Synthesis
CPE 487: Digital System Design Spring 2018 Lecture 12 VHDL Synthesis Bryan Ackland Department of Electrical and Computer Engineering Stevens Institute of Technology Hoboken, NJ 07030 1 What is Synthesis?
More informationHardware Description Language VHDL (1) Introduction
Hardware Description Language VHDL (1) Introduction Digital Radiation Measurement and Spectroscopy NE/RHP 537 Introduction Hardware description language (HDL) Intended to describe circuits textually, for
More informationHDL Coding Style Xilinx, Inc. All Rights Reserved
HDL Coding Style Objective After completing this module, you will be able to: Select a proper coding style to create efficient FPGA designs Specify Xilinx resources that need to be instantiated for various
More informationLecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)
Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits Hardware Description Language) 1 Standard ICs PLD: Programmable Logic Device CPLD: Complex PLD FPGA: Field Programmable
More informationSequential Logic - Module 5
Sequential Logic Module 5 Jim Duckworth, WPI 1 Latches and Flip-Flops Implemented by using signals in IF statements that are not completely specified Necessary latches or registers are inferred by the
More informationAbi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University
Hardware description language (HDL) Intended to describe circuits textually, for a computer to read Evolved starting in the 1970s and 1980s Popular languages today include: VHDL Defined in 1980s by U.S.
More informationCprE 583 Reconfigurable Computing
Recap Moore FSM Example CprE / ComS 583 Reconfigurable Computing Moore FSM that recognizes sequence 10 0 1 0 1 S0 / 0 S1 / 0 1 S2 / 1 Prof. Joseph Zambreno Department of Electrical and Computer Engineering
More information310/ ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006
310/1780-10 ICTP-INFN Advanced Tranining Course on FPGA and VHDL for Hardware Simulation and Synthesis 27 November - 22 December 2006 VHDL & FPGA - Session 2 Nizar ABDALLH ACTEL Corp. 2061 Stierlin Court
More informationCDA 4253 FGPA System Design Xilinx FPGA Memories. Hao Zheng Comp Sci & Eng USF
CDA 4253 FGPA System Design Xilinx FPGA Memories Hao Zheng Comp Sci & Eng USF Xilinx 7-Series FPGA Architecture On-Chip block RAM On-Chip block RAM Distributed RAM by Logic Fabric Distributed RAM by Logic
More informationVHDL in 1h. Martin Schöberl
VHDL in 1h Martin Schöberl VHDL /= C, Java, Think in hardware All constructs run concurrent Different from software programming Forget the simulation explanation VHDL is complex We use only a small subset
More informationVHDL for Synthesis. Course Description. Course Duration. Goals
VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes
More informationIntroduction to VHDL #3
ECE 322 Digital Design with VHDL Introduction to VHDL #3 Lecture 7 & 8 VHDL Modeling Styles VHDL Modeling Styles Dataflow Concurrent statements Structural Components and interconnects Behavioral (sequential)
More informationAdvanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis. 26 October - 20 November, 2009
2065-15 Advanced Training Course on FPGA Design and VHDL for Hardware Simulation and Synthesis 26 October - 20 November, 2009 FPGA Architectures & VHDL Introduction to Synthesis Nizar Abdallah ACTEL Corp.2061
More informationTiming in synchronous systems
BO 1 esign of sequential logic Outline Timing in synchronous networks Synchronous processes in VHL VHL-code that introduces latches andf flip-flops Initialization of registers Mealy- and Moore machines
More informationVHDL And Synthesis Review
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
More information[VARIABLE declaration] BEGIN. sequential statements
PROCESS statement (contains sequential statements) Simple signal assignment statement
More informationControl and Datapath 8
Control and Datapath 8 Engineering attempts to develop design methods that break a problem up into separate steps to simplify the design and increase the likelihood of a correct solution. Digital system
More informationEECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis
EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis Jan 31, 2012 John Wawrzynek Spring 2012 EECS150 - Lec05-verilog_synth Page 1 Outline Quick review of essentials of state elements Finite State
More informationOutline CPE 626. Advanced VLSI Design. Lecture 4: VHDL Recapitulation (Part 2) Signals. Variables. Constants. Variables vs.
CPE 626 Lecture 4: VHDL Recapitulation (Part 2) Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and
More informationTwo HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design
Two HDLs used today Introduction to Structured VLSI Design VHDL I VHDL and Verilog Syntax and ``appearance'' of the two languages are very different Capabilities and scopes are quite similar Both are industrial
More information1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013
MARIE CURIE IAPP: FAST TRACKER FOR HADRON COLLIDER EXPERIMENTS 1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013 Introduction to VHDL Calliope-Louisa Sotiropoulou PhD Candidate/Researcher Aristotle University
More informationTopics. Midterm Finish Chapter 7
Lecture 9 Topics Midterm Finish Chapter 7 Xilinx FPGAs Chapter 7 Spartan 3E Architecture Source: Spartan-3E FPGA Family Datasheet CLB Configurable Logic Blocks Each CLB contains four slices Each slice
More informationTopics. Midterm Finish Chapter 7
Lecture 9 Topics Midterm Finish Chapter 7 ROM (review) Memory device in which permanent binary information is stored. Example: 32 x 8 ROM Five input lines (2 5 = 32) 32 outputs, each representing a memory
More informationField Programmable Gate Array
Field Programmable Gate Array System Arch 27 (Fire Tom Wada) What is FPGA? System Arch 27 (Fire Tom Wada) 2 FPGA Programmable (= reconfigurable) Digital System Component Basic components Combinational
More informationLatch Based Design (1A) Young Won Lim 2/18/15
Latch Based Design (1A) Copyright (c) 2015 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any
More informationECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University
ECE 545 Lecture 8 Data Flow Description of Combinational-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 7, Combinational Circuit Design:
More informationEITF35: Introduction to Structured VLSI Design
EITF35: Introduction to Structured VLSI Design Part 1.2.2: VHDL-1 Liang Liu liang.liu@eit.lth.se 1 Outline VHDL Background Basic VHDL Component An example FSM Design with VHDL Simulation & TestBench 2
More informationOutline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.
Outline CPE/EE 422/522 Advanced Logic Design L05 Electrical and Computer Engineering University of Alabama in Huntsville What we know Combinational Networks Sequential Networks: Basic Building Blocks,
More informationDigital Design with SystemVerilog
Digital Design with SystemVerilog Prof. Stephen A. Edwards Columbia University Spring 25 Synchronous Digital Design Combinational Logic Sequential Logic Summary of Modeling Styles Testbenches Why HDLs?
More informationVHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language
VHDL Introduction to Structured VLSI Design VHDL I Very High Speed Integrated Circuit (VHSIC) Hardware Description Language Joachim Rodrigues A Technology Independent, Standard Hardware description Language
More informationCOVER SHEET: Total: Regrade Info: 2 (6 points) 3 (8 points) 4 (10 points) 8 (12 points) 6 (6 points) 7 (6 points) 9 (30 points) 10 (4 points)
EEL 4712 Midterm 2 Spring 2010 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity
ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 6, 2006 Classes November 6 and 8 are in 429 Dana! Lecture 15: Homework 5: Datapath How to write a testbench for synchronous
More informationCCE 3202 Advanced Digital System Design
CCE 3202 Advanced Digital System Design Lab Exercise #2 Introduction You will use Xilinx Webpack v9.1 to allow the synthesis and creation of VHDLbased designs. This lab will outline the steps necessary
More informationSEQUENTIAL STATEMENTS
SEQUENTIAL STATEMENTS Sequential Statements Allow to describe the behavior of a circuit as a sequence of related events Can be used to model, simulate and synthesize: Combinational logic circuits Sequential
More informationECE 545 Lecture 12. FPGA Embedded Resources 12/8/11. Resources. Recommended reading. Use of Embedded FPGA Resources in SHA-3 Candidates
ECE 545 Lecture 12 FPGA Embedded Resources Resources FPGA Embedded Resources web page available from the course web page George Mason University 2 Recommended reading XAPP463 Using Block RAM in Spartan-3
More informationVHDL HIERARCHICAL MODELING
To incorporate hierarchy in VHDL we must add component declarations and component instantiations to the model. In addition, we need to declare internal signals to interconnect the components. We can also
More informationSchedule. ECE U530 Digital Hardware Synthesis. Rest of Semester. Midterm Question 1a
ECE U530 Digital Hardware Synthesis Prof. Miriam Leeser mel@coe.neu.edu November 8, 2006 Midterm Average: 70 Lecture 16: Midterm Solutions Homework 6: Calculator Handshaking HW 6: Due Wednesday, November
More informationENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices
ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices School of Engineering, University of Guelph Winter 2017 1 Objectives: The purpose of this lab is : Learn basic bus design techniques.
More informationSummary of FPGA & VHDL
FYS4220/9220 Summary of FPGA & VHDL Lecture #6 Jan Kenneth Bekkeng, University of Oslo - Department of Physics 16.11.2011 Curriculum (VHDL & FPGA part) Curriculum (Syllabus) defined by: Lectures Lecture6:
More informationECE 545 Lecture 12. FPGA Resources. George Mason University
ECE 545 Lecture 2 FPGA Resources George Mason University Recommended reading 7 Series FPGAs Configurable Logic Block: User Guide Overview Functional Details 2 What is an FPGA? Configurable Logic Blocks
More informationCOVER SHEET: Total: Regrade Info: 5 (5 points) 2 (8 points) 6 (10 points) 7b (13 points) 7c (13 points) 7d (13 points)
EEL 4712 Midterm 2 Spring 2011 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationELE432. ADVANCED DIGITAL DESIGN HACETTEPE UNIVERSITY ROUTING and FPGA MEMORY. In part from ECE 448 FPGA and ASIC Design with VHDL
ELE432 ADVANCED DIGITAL DESIGN HACETTEPE UNIVERSITY ROUTING and FPGA MEMORY In part from ECE 448 FPGA and ASIC Design with VHDL Organization of the Week Routing in FPGA Memory Design in FPGA Xilinx Programmable
More informationAPPLICATION NOTE. A CPLD VHDL Introduction. Introduction. Overview. Entity. XAPP 105 January12, 1998 (Version 1.0) 0 4* Application Note
0 APPLICATION NOTE A CPLD VHDL Introduction XAPP 105 January12, 1998 Version 1.0) 0 4* Application Note Summary This introduction covers the basics of VHDL as applied to Complex Programmable Logic Devices.
More informationDigital System Construction
Digital System Construction FYSIKUM Lecture 4: More VHDL, memory, PRNG Arithmetic Memories Pipelines and buffers Pseudorandom numbers IP core generation in Vivado Introduction to Lab 3 Digital Systemkonstruktion
More informationFPGA for Software Engineers
FPGA for Software Engineers Course Description This course closes the gap between hardware and software engineers by providing the software engineer all the necessary FPGA concepts and terms. The course
More informationVerilog for High Performance
Verilog for High Performance Course Description This course provides all necessary theoretical and practical know-how to write synthesizable HDL code through Verilog standard language. The course goes
More informationVHDL for Modeling - Module 10
VHDL for Modeling Module 10 Jim Duckworth, WPI 1 Overview General examples AND model Flip-flop model SRAM Model Generics DDR SDRAM Model Constraints Metastability Block Statements Just for reference Jim
More informationIn our case Dr. Johnson is setting the best practices
VHDL Best Practices Best Practices??? Best practices are often defined by company, toolset or device In our case Dr. Johnson is setting the best practices These rules are for Class/Lab purposes. Industry
More informationELCT 501: Digital System Design
ELCT 501: Digital System Lecture 4: CAD tools (Continued) Dr. Mohamed Abd El Ghany, Basic VHDL Concept Via an Example Problem: write VHDL code for 1-bit adder 4-bit adder 2 1-bit adder Inputs: A (1 bit)
More informationUsing Library Modules in VHDL Designs
Using Library Modules in VHDL Designs This tutorial explains how Altera s library modules can be included in VHDL-based designs, which are implemented by using the Quartus R II software. Contents: Example
More informationAsynchronous FIFO Design
Asynchronous FIFO Design 2.1 Introduction: An Asynchronous FIFO Design refers to a FIFO Design where in the data values are written to the FIFO memory from one clock domain and the data values are read
More informationVHDL simulation and synthesis
VHDL simulation and synthesis How we treat VHDL in this course You will not become an expert in VHDL after taking this course The goal is that you should learn how VHDL can be used for simulation and synthesis
More informationUsing Library Modules in VHDL Designs
Using Library Modules in VHDL Designs This tutorial explains how Altera s library modules can be included in VHDL-based designs, which are implemented by using the Quartus R II software. Contents: Example
More informationVHDL 2 Combinational Logic Circuits. Reference: Roth/John Text: Chapter 2
VHDL 2 Combinational Logic Circuits Reference: Roth/John Text: Chapter 2 Combinational logic -- Behavior can be specified as concurrent signal assignments -- These model concurrent operation of hardware
More informationVHDL for Logic Synthesis
VHDL for Logic Synthesis Overview Design Flow for Hardware Design VHDL coding for synthesis General guidelines for hardware designers This lecture includes the content from: Nitin Yogi, Modelling for Synthesis
More informationHardware Design with VHDL Design Example: BRAM ECE 443
BRAM There are two sources of memory available on most FPGA boards. Internal (on-chip memory) External SRAMs and DRAMs. Internal memory is either distributed (from the LUTs) or block (dedicated on-chip
More informationDigital Design Laboratory Lecture 2
ECE 280 / CSE 280 Digital Design Laboratory Lecture 2 Adder Design Basic building block is a full adder Chained together as a ripple carry adder Carry lookahead adder is an other option Propagate and generate
More informationECE 545 Lecture 6. Behavioral Modeling of Sequential-Circuit Building Blocks. George Mason University
ECE 545 Lecture 6 Behavioral Modeling of Sequential-Circuit Building Blocks George Mason University Required reading P. Chu, RTL Hardware Design using VHDL Chapter 5.1, VHDL Process Chapter 8, Sequential
More informationContents. Chapter 9 Datapaths Page 1 of 28
Chapter 9 Datapaths Page of 2 Contents Contents... 9 Datapaths... 2 9. General Datapath... 3 9.2 Using a General Datapath... 5 9.3 Timing Issues... 7 9.4 A More Complex General Datapath... 9 9.5 VHDL for
More informationHDL. Hardware Description Languages extensively used for:
HDL Hardware Description Languages extensively used for: Describing (digital) hardware (formal documentation) Simulating it Verifying it Synthesizing it (first step of modern design flow) 2 main options:
More informationAdvanced Synthesis Techniques
Advanced Synthesis Techniques Reminder From Last Year Use UltraFast Design Methodology for Vivado www.xilinx.com/ultrafast Recommendations for Rapid Closure HDL: use HDL Language Templates & DRC Constraints:
More informationXilinx ASMBL Architecture
FPGA Structure Xilinx ASMBL Architecture Design Flow Synthesis: HDL to FPGA primitives Translate: FPGA Primitives to FPGA Slice components Map: Packing of Slice components into Slices, placement of Slices
More informationECE 448 Lecture 4. Sequential-Circuit Building Blocks. Mixing Description Styles
ECE 448 Lecture 4 Sequential-Circuit Building Blocks Mixing Description Styles George Mason University Reading Required P. Chu, FPGA Prototyping by VHDL Examples Chapter 4, Regular Sequential Circuit Recommended
More informationConcurrent & Sequential Stmts. (Review)
VHDL Introduction, Part II Figures in this lecture are from: Rapid Prototyping of Digital Systems, Second Edition James O. Hamblen & Michael D. Furman, Kluwer Academic Publishers, 2001, ISBN 0-7923-7439-
More informationCS211 Digital Systems/Lab. Introduction to VHDL. Hyotaek Shim, Computer Architecture Laboratory
CS211 Digital Systems/Lab Introduction to VHDL Hyotaek Shim, Computer Architecture Laboratory Programmable Logic Device (PLD) 2/32 An electronic component used to build reconfigurable digital circuits
More informationVHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents
VHDL Testbench Tutorial 1 Contents 1 VHDL Testbench 2 Test Bench Syntax 3 Testbench Example: VHDL Code for Up Down Binary Counter 4 VHDL Testbench code for up down binary counter 5 Testbench Waveform for
More informationקורס VHDL for High Performance. VHDL
קורס VHDL for High Performance תיאור הקורס קורסזהמספקאתכלהידע התיאורטיוהמעשילכתיבתקודHDL. VHDL לסינתזה בעזרת שפת הסטנדרט הקורסמעמיקמאודומלמדאת הדרךהיעילהלכתיבתקודVHDL בכדילקבלאתמימושתכןהלוגי המדויק. הקורסמשלב
More informationDesign Problem 4 Solution
CSE 260 Digital Computers: Organization and Logical Design Design Problem 4 Solution Jon Turner Due 4/13/06 1. (125 points). In this problem, you will design a packet FIFO, which is a circuit that temporarily
More informationFPGA Lecture for LUPO and GTO Vol , 31 August (revised 2013, 19 November) H. Baba
FPGA Lecture for LUPO and GTO Vol. 1 2010, 31 August (revised 2013, 19 November) H. Baba Contents Basic feature of FPGA Basic usage for LUPO New project Read and Write Basic behavioral VHDL simulation
More informationLogic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis
Logic Synthesis Verilog and VHDL started out as simulation languages, but quickly people wrote programs to automatically convert Verilog code into low-level circuit descriptions (netlists). EECS150 - Digital
More informationLeonardoSpectrum & Quartus II Design Methodology
LeonardoSpectrum & Quartus II Design Methodology September 2002, ver. 1.2 Application Note 225 Introduction As programmable logic device (PLD) designs become more complex and require increased performance,
More informationDesign Guidelines for Using DSP Blocks
Design Guidelines for Using DSP Blocks in the Synplify Software April 2002, ver. 1.0 Application Note 193 Introduction Altera R Stratix TM devices have dedicated digital signal processing (DSP) blocks
More informationACS College of Engineering. Department of Biomedical Engineering. Logic Design Lab pre lab questions ( ) Cycle-1
ACS College of Engineering Department of Biomedical Engineering Logic Design Lab pre lab questions (2015-2016) Cycle-1 1. What is a combinational circuit? 2. What are the various methods of simplifying
More informationThe VHDL Hardware Description Language
The VHDL Hardware Description Language p. 1/? The VHDL Hardware Description Language CSEE W4840 Prof. Stephen A. Edwards Columbia University The VHDL Hardware Description Language p. 2/? Why HDLs? 1970s:
More informationDesign Problem 3 Solutions
CSE 260 Digital Computers: Organization and Logical Design Jon Turner Design Problem 3 Solutions In this problem, you are to design, simulate and implement a sequential pattern spotter, using VHDL. This
More informationThe University of Alabama in Huntsville ECE Department CPE Final Exam Solution Spring 2004
The University of Alabama in Huntsville ECE Department CPE 526 01 Final Exam Solution Spring 2004 1. (15 points) An old Thunderbird car has three left and three right tail lights, which flash in unique
More informationSequential Statement
Sequential Statement Sequential Logic Output depends not only on current input values but also on previous input values. Are building blocks of; Counters Shift registers Memories Flip flops are basic sequential
More informationMCMASTER UNIVERSITY EMBEDDED SYSTEMS
MCMASTER UNIVERSITY EMBEDDED SYSTEMS Computer Engineering 4DS4 Lecture Revision of Digital Systems Amin Vali January 26 Course material belongs to DrNNicolici Field programmable gate arrays (FPGAs) x x
More information8 Register, Multiplexer and
8 Register, Multiplexer and Three-State Inference HDL Compiler can infer Registers (latches and flip flops) Multiplexers Three state gates This chapter discusses methods of inferring different types of
More informationProblem Set 10 Solutions
CSE 260 Digital Computers: Organization and Logical Design Problem Set 10 Solutions Jon Turner thru 6.20 1. The diagram below shows a memory array containing 32 words of 2 bits each. Label each memory
More informationVHDL: RTL Synthesis Basics. 1 of 59
VHDL: RTL Synthesis Basics 1 of 59 Goals To learn the basics of RTL synthesis. To be able to synthesize a digital system, given its VHDL model. To be able to relate VHDL code to its synthesized output.
More information!"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"
!"#$%&&"'(')"*+"%,%-".#"'/"'.001$$"!!"#$%&'#()#*+"+#,-."/0110#230#4."50",+"+#)6# 6+-+#(.6+-0#)4475.8)60#0/#.65-0#230#9+**+"+# 2.48).-0#(.6+-0#! 2+"*5."5*:#,."/0110#;)**0! *),".6*:#-.99-0*0"5."+#2+660,.40"5)#;)*)2)#
More informationOutline CPE 626. Advanced VLSI Design. Lecture 3: VHDL Recapitulation. Intro to VHDL. Intro to VHDL. Entity-Architecture Pair
Outline CPE 626 Lecture 3: VHDL Recapitulation Aleksandar Milenkovic http://www.ece.uah.edu/~milenka http://www.ece.uah.edu/~milenka/cpe626-04f/ milenka@ece.uah.edu Assistant Professor Electrical and Computer
More informationDIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1
DIGITAL LOGIC WITH VHDL (Fall 23) Unit DESIGN FLOW DATA TYPES LOGIC GATES WITH VHDL TESTBENCH GENERATION DESIGN FLOW Design Entry: We specify the logic circuit using a Hardware Description Language (e.g.,
More informationTSEA44 - Design for FPGAs
2015-11-24 Now for something else... Adapting designs to FPGAs Why? Clock frequency Area Power Target FPGA architecture: Xilinx FPGAs with 4 input LUTs (such as Virtex-II) Determining the maximum frequency
More informationEEL 4712 Digital Design Test 1 Spring Semester 2007
IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read it with a reasonable effort, it is assumed wrong. COVER SHEET: Problem: Points: 1 (15 pts) 2 (20 pts) Total 3 (15 pts) 4 (18 pts)
More informationFPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1
FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1 Anurag Dwivedi Digital Design : Bottom Up Approach Basic Block - Gates Digital Design : Bottom Up Approach Gates -> Flip Flops Digital
More informationCOVER SHEET: Total: Regrade Info: Problem#: Points. 7 (14 points) 6 (7 points) 9 (6 points) 10 (21 points) 11 (4 points)
EEL 4712 Midterm 3 Spring 2013 VERSION 1 Name: UFID: Sign your name here if you would like for your test to be returned in class: IMPORTANT: Please be neat and write (or draw) carefully. If we cannot read
More informationVHDL for Complex Designs
ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 VHDL for Complex Designs This lecture covers VHDL features that are useful when designing complex logic circuits. After
More informationVHDL Examples Mohamed Zaky
VHDL Examples By Mohamed Zaky (mz_rasmy@yahoo.co.uk) 1 Half Adder The Half Adder simply adds 2 input bits, to produce a sum & carry output. Here we want to add A + B to produce Sum (S) and carry (C). A
More informationLecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1
Lecture 1: VHDL Quick Start Digital Systems Design Fall 10, Dec 17 Lecture 1 1 Objective Quick introduction to VHDL basic language concepts basic design methodology Use The Student s Guide to VHDL or The
More information