COE 1502 Design Synthesis. Synthesis Theory Idea: – “Compile” VHDL into a cell-level netlist A netlist is a graph – Vertices represent cells (such as.

Slides:



Advertisements
Similar presentations
VERILOG: Synthesis - Combinational Logic Combination logic function can be expressed as: logic_output(t) = f(logic_inputs(t)) Rules Avoid technology dependent.
Advertisements

Digital Design Copyright © 2006 Frank Vahid 1 FPGA Internals: Lookup Tables (LUTs) Basic idea: Memory can implement combinational logic –e.g., 2-address.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
Altera FLEX 10K technology in Real Time Application.
© 2003 Xilinx, Inc. All Rights Reserved Architecture Wizard and PACE FPGA Design Flow Workshop Xilinx: new module Xilinx: new module.
Integrated Circuits Laboratory Faculty of Engineering Digital Design Flow Using Mentor Graphics Tools Presented by: Sameh Assem Ibrahim 16-October-2003.
Graduate Computer Architecture I Lecture 15: Intro to Reconfigurable Devices.
Lecture 26: Reconfigurable Computing May 11, 2004 ECE 669 Parallel Computer Architecture Reconfigurable Computing.
02/02/20091 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
1 Project supervised by: Dr Michael Gandelsman Project performed by: Roman Paleria, Avi Yona 12/5/2003 Multi-channel Data Acquisition System Mid-Term Presentation.
The Spartan 3e FPGA. CS/EE 3710 The Spartan 3e FPGA  What’s inside the chip? How does it implement random logic? What other features can you use?  What.
Chapter 7 Design Implementation (II)
1/31/20081 Logic devices can be classified into two broad categories Fixed Programmable Programmable Logic Device Introduction Lecture Notes – Lab 2.
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
ECE 331 – Digital System Design Tristate Buffers, Read-Only Memories and Programmable Logic Devices (Lecture #16) The slides included herein were taken.
1 Introduction A digital circuit design is just an idea, perhaps drawn on paper We eventually need to implement the circuit on a physical device –How do.
Foundation and XACTstepTM Software
1. 2 FPGAs Historically, FPGA architectures and companies began around the same time as CPLDs FPGAs are closer to “programmable ASICs” -- large emphasis.
Introduction to FPGA’s FPGA (Field Programmable Gate Array) –ASIC chips provide the highest performance, but can only perform the function they were designed.
© 2011 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
1 DIGITAL DESIGN I DR. M. MAROUF FPGAs AUTHOR J. WAKERLY.
StateCAD FPGA Design Workshop. For Academic Use Only Presentation Name 2 Objectives After completing this module, you will be able to:  Describe how.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR HDL coding n Synthesis vs. simulation semantics n Syntax-directed translation n.
ISE. Tatjana Petrovic 249/982/22 ISE software tools ISE is Xilinx software design tools that concentrate on delivering you the most productivity available.
Introduction to Design Tools COE Review: Tools, functions, design flow Four tools we will use in this course – HDL Designer Suite FPGA Advantage.
The FPX KCPSM Module Exercise 1 Henry Fu The Layered Protocol Wrappers Exercise: Network Data Encryption / Decryption Using ROT13 Algorithm Henry Fu Washington.
Mentor Tools tutorial Bold Browser Design Manager Design Architect Library Components Quicksim Creating and Compiling the VHDL Model.
The Layered Protocol Wrappers 1 Florian Braun, Henry Fu The Layered Protocol Wrappers: A Solution to Streamline Networking Functions to Process ATM Cells,
Xilinx Development Software Design Flow on Foundation M1.5
Computer Engineering 1502 Advanced Digital Design Professor Donald Chiarulli Computer Science Dept.
© 2003 Xilinx, Inc. All Rights Reserved For Academic Use Only Xilinx Design Flow FPGA Design Flow Workshop.
ECP2036 Microprocessor and Interfacing Registers Control & Status Registers Program Counter User-Visible Registers Instruction Register... General-Purpose.
Gigabit Kits Workshop August Washington WASHINGTON UNIVERSITY IN ST LOUIS IP Processing Wrapper Tutorial Gigabitkits Workshop August 2001
정 용 군 ( 전자공학과 대학원 ) 대상 : VLSI 설계 연구회 1,2,3 학년 기간 : ~ Synopsys Tool 교육 Synopsys 교육 1.
Introduction to FPGA Created & Presented By Ali Masoudi For Advanced Digital Communication Lab (ADC-Lab) At Isfahan University Of technology (IUT) Department.
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.
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
Synopsys Custom Designer Tutorial for a chip integration using the University of Utah Standard Cell Libraries In ON Semiconductor 0.5u C5 CMOS Version.
Synopsys Custom Designer Tutorial for a chip integration using the University of Utah Standard Cell Libraries In ON Semiconductor 0.5u C5 CMOS Version.
Programmable Logic Training Course Project Manager.
This material exempt per Department of Commerce license exception TSU Xilinx Tool Flow.
Fall 08, Oct 31ELEC Lecture 8 (Updated) 1 Lecture 8: Design, Simulation Synthesis and Test Tools ELEC 2200: Digital Logic Circuits Nitin Yogi
Programmable Logic Training Course HDL Editor
ECE 545 Project 2 Specification. Project 2 (15 points) – due Tuesday, December 19, noon Application: cryptography OR digital signal processing optimized.
Introduction to Design Tools COE Example design: ALU Recall that the ALUOp is 4 bits – High-order two bits used to determine operation class (ALUOp(3:2))
Computer Engineering 1502 Advanced Digital Design Professor Donald Chiarulli Computer Science Dept Sennott Square
Introduction to VHDL Simulation … Synthesis …. The digital design process… Initial specification Block diagram Final product Circuit equations Logic design.
Introduction to FPGA Tools
Tools - Design Manager - Chapter 6 slide 1 Version 1.5 FPGA Tools Training Class Design Manager.
1 Introduction to VHDL Part 2 Fall We will use Std_logic And, Or have same precedence See slide 8 of part 1.
Teaching Digital Logic courses with Altera Technology
Survey of Reconfigurable Logic Technologies
Tools - Analyzing your results - Chapter 7 slide 1 Version 1.5 FPGA Tools Course Analyzing your Results.
PARBIT Tool 1 PARBIT Partial Bitfile Configuration Tool Edson L. Horta Washington University, Applied Research Lab August 15, 2001.
ASIC/FPGA design flow. Design Flow Detailed Design Detailed Design Ideas Design Ideas Device Programming Device Programming Timing Simulation Timing Simulation.
© 2005 Xilinx, Inc. All Rights Reserved This material exempt per Department of Commerce license exception TSU CORE Generator System.
Robust Low Power VLSI R obust L ow P ower VLSI Using Module Compiler to build FPGA Structures Seyi Ayorinde ECE 6505.
Software for tests: AMB and LAMB configuration - Available tools FTK Workshop – Pisa 13/03/2013 Daniel Magalotti University of Modena and Reggio Emilia.
SUBJECT : DIGITAL ELECTRONICS CLASS : SEM 3(B) TOPIC : INTRODUCTION OF VHDL.
ETE Digital Electronics
Dept. of Electrical and Computer Engineering
QUARTUS II Version 9.1 service pack 2
Topics HDL coding for synthesis. Verilog. VHDL..
We will be studying the architecture of XC3000.
Peter J. Ashenden The University of Adelaide
COE 1502 Design Synthesis.
Founded in Silicon Valley in 1984
Quantum Computing Basics
THE ECE 554 XILINX DESIGN PROCESS
THE ECE 554 XILINX DESIGN PROCESS
Presentation transcript:

COE 1502 Design Synthesis

Synthesis Theory Idea: – “Compile” VHDL into a cell-level netlist A netlist is a graph – Vertices represent cells (such as gates, latches, etc.) – Edges represent interconnection wires To do this, we need – VHDL – A technology cell library – Place-and-route netlist onto FPGA/ASIC To do this, we need – Netlist – CLB specification and routing matrix (FPGA) Output is FPGA routing bitmap

Netlists Leonardo Spectrum’s output format is a text EDIF netlist Example: port OR2 AND2 port A B C D E instance OR2 as ix1 instance AND2 as ix3 ix1 A B D ix3 D C E Note that AND2 and OR2 are technology cells

Netlists Actual Leonardo output: (edif example (edifVersion 2 0 0) (edifLevel 0) (keywordMap (keywordLevel 0)) (status (written (timestamp ) (program "LeonardoSpectrum Level 3" (version "2002b.21")) (author "Exemplar Logic Inc"))) (external PRIMITIVES (edifLevel 0) (technology (numberDefinition )) (cell OR2 (cellType GENERIC) (view INTERFACE (viewType NETLIST) (interface (port (rename p0 "in[0]") (direction INPUT)) (port (rename p1 "in[1]") (direction INPUT)) (port out (direction OUTPUT))))) (cell AND2 (cellType GENERIC) (view INTERFACE (viewType NETLIST) (interface (port (rename p2 "in[0]") (direction INPUT)) (port (rename p3 "in[1]") (direction INPUT)) (port out (direction OUTPUT)))))) (library alu (edifLevel 0) (technology (numberDefinition )) (cell example (cellType GENERIC) (view struct (viewType NETLIST) (interface (port A (direction INPUT)) (port B (direction INPUT)) (port C (direction INPUT)) (port E (direction OUTPUT))) (contents (instance ix1 (viewRef INTERFACE (cellRef OR2 (libraryRef PRIMITIVES )))) (instance ix3 (viewRef INTERFACE (cellRef AND2 (libraryRef PRIMITIVES )))) (net A (joined (portRef A ) (portRef p0 (instanceRef ix1 )))) (net B (joined (portRef B ) (portRef p1 (instanceRef ix1 )))) (net C (joined (portRef C ) (portRef p3 (instanceRef ix3 )))) (net E (joined (portRef E ) (portRef out (instanceRef ix3 )))) (net D (joined (portRef out (instanceRef ix1 )) (portRef p2 (instanceRef ix3 )))))))) (design example (cellRef example (libraryRef alu ))))

ALU Wrapper Your ALU design must be placed into a wrapper before you perform synthesis – The ALU wrapper is located in the COELib library Wrapper shares a signal namespace with its wrapper and the signals on the Wild-One card Copy the wrapper to your ALU library – Your ALU is already instantiated inside Your job: – Wire up desired signals to 32 output buffers (which will be visible on the logic analyzer for testing) – Topmost buffer corresponds to LSB on LA (wire downward) – Suggestion: bring out ALUOp, 8 bits of A, B, and R, and Overflow, Zero, RST, and PCLK One you do this, generate a netlist for the wrapper using Leonardo – Use the tutorial on the website

ALU Wrapper Your ALU Registers Controller that selectively enables the registers (reading FIFO) and controls writing result to FIFO memory FIFOIn_Reg bus from FIFO memory 4x1 bit buffers AnalyzerData FIFOOut_Data FIFO control signals

ALU Wrapper Your ALU in pe0 pe1 Daughter card connectors PCI interface Memory

ALU Wrapper Daughter card connector PCI host interface FPGA FIFO SRAM Pinout wrapper ALU wrapper ALU

Preparing for Synthesis Copy the CPE0 directory from I:\1502 to your group directory… – This is the directory where you will perform synthesis, place-and-route, and test your design using the logic analyser

Leonardo Spectrum Setup Leonardo…

Leonardo Spectrum If the synthesis completes without error, copy ALU_WRAP.edf from \ls\netlists\alu_wrap_struct\netlists\alu_wrap.edf into your CPE0 directory.

Place-and-route Once we have the netlist, we need to build the FPGA configuration file – GOAL: map netlist onto FPGA by writing to CLBs and perform routing – CLBs use registered lookup tables, so cells need to be translated into SRAM cells

Placing and Routing Place and route the design… – Open a command window using Start | Run | cmd – Change to your CPE0 directory – Edit the Makefile by changing line 4 such that the variable points to your CPE0 directory – Enter the following command: set PATH=n:\xilinx\bin\nt;d:\local\wild-one\tools;%PATH% set xilinx=n:\xilinx – Run make – Run mcs2bin cpe0.mcs cpe0.bin This creates the bin file Notes: – Use make clean to start over – Use the generated log file to check for errors

Testing Design on Logic Analyzer