ALTERA FPGA Design Using Verilog

Similar documents
ALTERA FPGAs Architecture & Design

Verilog Essentials Simulation & Synthesis

VHDL Essentials Simulation & Synthesis

FPGA for Software Engineers

Verilog for High Performance

Quartus II Prime Foundation

VHDL for Synthesis. Course Description. Course Duration. Goals

Verilog HDL. A Guide to Digital Design and Synthesis. Samir Palnitkar. SunSoft Press A Prentice Hall Title

SystemVerilog Essentials Simulation & Synthesis

Advanced ALTERA FPGA Design

קורס VHDL for High Performance. VHDL

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Building Gigabit Interfaces in Altera Transceiver Devices

MLR Institute of Technology

Creating PCI Express Links in Intel FPGAs

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

EECS150 - Digital Design Lecture 10 Logic Synthesis

Sunburst Design - Verilog-2001 Design & Best Coding Practices by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

EECS150 - Digital Design Lecture 10 Logic Synthesis

High-Performance FPGA PLL Analysis with TimeQuest

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

ENGN1640: Design of Computing Systems Topic 02: Design/Lab Foundations

Synthesis vs. Compilation Descriptions mapped to hardware Verilog design patterns for best synthesis. Spring 2007 Lec #8 -- HW Synthesis 1

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

CSE140L: Components and Design Techniques for Digital Systems Lab

8. Migrating Stratix II Device Resources to HardCopy II Devices

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

Lab #1. Topics. 3. Introduction to Verilog 2/8/ Programmable logic. 2. Design Flow. 3. Verilog --- A Hardware Description Language

Tutorial for Altera DE1 and Quartus II

CSE140L: Components and Design

LeonardoSpectrum & Quartus II Design Methodology

Designing with ALTERA SoC Hardware

Building Interfaces with Arria 10 High-Speed Transceivers

Altera Technical Training Quartus II Software Design

World Class Verilog & SystemVerilog Training

R07. IV B.Tech. II Semester Supplementary Examinations, July, 2011

EEL 4783: HDL in Digital System Design

Synthesis of Language Constructs. 5/10/04 & 5/13/04 Hardware Description Languages and Synthesis

Interfacing DDR2 SDRAM with Stratix II, Stratix II GX, and Arria GX Devices

ENGN1640: Design of Computing Systems Topic 02: Lab Foundations

Intel Quartus Prime Pro Edition User Guide

Digital VLSI Design with Verilog

Designing with Nios II Processor for Hardware Engineers

EN164: Design of Computing Systems Lecture 06: Lab Foundations / Verilog 2

Hardware Design Environments. Dr. Mahdi Abbasi Computer Engineering Department Bu-Ali Sina University

Qsys and IP Core Integration

Verilog Sequential Logic. Verilog for Synthesis Rev C (module 3 and 4)

lpm_shiftreg Megafunction

A Tutorial Introduction 1

Section I. Cyclone II Device Family Data Sheet

Cover TBD. intel Quartus prime Design software

MICROTRONIX AVALON MOBILE DDR MEMORY CONTROLLER IP CORE

lpm_compare Megafunction User Guide

XST User Guide

EE 231 Fall EE 231 Lab 2

Phase-Locked Loop Reconfiguration (ALTPLL_RECONFIG) Megafunction

Analyzing Designs with Quartus II Netlist Viewers

VERILOG QUICKSTART. Second Edition. A Practical Guide to Simulation and Synthesis in Verilog

University of California, Davis Department of Electrical and Computer Engineering. EEC180B DIGITAL SYSTEMS Spring Quarter 2018

11. Analyzing Timing of Memory IP

altshift_taps Megafunction User Guide

VERILOG QUICKSTART. James M. Lee Cadence Design Systems, Inc. SPRINGER SCIENCE+BUSINESS MEDIA, LLC

RIZALAFANDE CHE ISMAIL TKT. 3, BLOK A, PPK MIKRO-e KOMPLEKS PENGAJIAN KUKUM. SYNTHESIS OF COMBINATIONAL LOGIC (Chapter 8)

Error Correction Code (ALTECC_ENCODER and ALTECC_DECODER) Megafunctions User Guide

Park Sung Chul. AE MentorGraphics Korea

White Paper Performing Equivalent Timing Analysis Between Altera Classic Timing Analyzer and Xilinx Trace

Verilog Design Entry, Synthesis, and Behavioral Simulation

Design Guidelines for Optimal Results in High-Density FPGAs

Index. A a (atto) 154 above event 120, 207 restrictions 178

Cover TBD. intel Quartus prime Design software

DDR and DDR2 SDRAM Controller Compiler User Guide

Behavioral Modeling and Timing Constraints

Programmable Logic Devices Verilog VII CMPE 415

Method We follow- How to Get Entry Pass in SEMICODUCTOR Industries for 3rd year engineering. Winter/Summer Training

ECE 437 Computer Architecture and Organization Lab 6: Programming RAM and ROM Due: Thursday, November 3

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

The Verilog Hardware Description Language

System Debugging Tools Overview

AN 462: Implementing Multiple Memory Interfaces Using the ALTMEMPHY Megafunction

High Speed Memory Interfacing 800MHz DDR3 Memory Lab

Tutorial 2 Implementing Circuits in Altera Devices

Introduction to Verilog

Section I. Cyclone II Device Family Data Sheet

Computer Aided Design Basic Syntax Gate Level Modeling Behavioral Modeling. Verilog

PINE TRAINING ACADEMY

Interfacing RLDRAM II with Stratix II, Stratix,& Stratix GX Devices

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

QDRII SRAM Controller MegaCore Function User Guide

Chapter 2. Cyclone II Architecture

Verilog introduction. Embedded and Ambient Systems Lab

DE2 Board & Quartus II Software

Advanced Synthesis Techniques

QDRII SRAM Controller MegaCore Function User Guide

EE 231 Fall Lab 1: Introduction to Verilog HDL and Altera IDE

430 Index. D flip-flop, from nands, 189, 191, 192 D flip-flop, verilog, 37

DDR & DDR2 SDRAM Controller Compiler

Introduction to the Qsys System Integration Tool

Transcription:

ALTERA FPGA Design Using Verilog Course Description This course provides all necessary theoretical and practical know-how to design ALTERA FPGA/CPLD using Verilog standard language. The course intention is to train computer and electronics engineers from scratch to practical work level. The course goes into great depth, and touches upon every aspect of the standard and FPGA design with directly connected to the topics needed in the industry today. The course combines 50% theory with 50% practical work in every meeting. The practical labs cover all the theory and also include practical digital design. The course begins with an overview of the current programmable logic devices and their capabilities, continues with an in-depth study of Verilog language with all of its structures, involves writing test-bench programs and employ a simulation tool. The course also teaches how to employ correct coding-style for synthesis, employ digital design recommended considerations, insert timing constraints, analyze design problems and solve them. The course continues with ALTERA FPGA architecture and how to utilize it for best performance/area/power. At the end of the course engineers will feel confidence to design a new FPGA project. Course Duration 7 days

Goals 1. Become familiar with ALTERA FPGA and CPLD families and their capabilities 2. Understand the design process from specification up to programming and final verification on board 3. Implement combinational and sequential processes 4. Build a hierarchy (bottom-up and top-down) 5. Write test-benches 6. Write generic code for design reuse 7. Understand coding style considerations for synthesis 8. Synthesize multi-files projects 9. Become familiar and insert timing constraints 10. Configure and embed IP in the design 11. Produce and analyze reports 12. Identify and fix timing issues 13. Utilize the FPGA architecture in the most efficient way with proper RTL coding style 14. Program and verify the FPGA on board Intended Users Hardware engineers who would like start developing FPGA or CPLD System engineers who would like to upgrade their professional skills Previous Knowledge A basic background in digital logic Course Material 1. Simulator: Modelsim or ActiveHDL 2. Synthesizer and Place & Route: Quartus II (ALTERA) or Precision (Mentor Graphics) 3. ALTERA Evaluation board 4. Course book (including labs)

Table of Contents Day #1 Introduction to Programmable Logic Devices o CPLD architecture and design consideration o FPGA architecture LUT FF PLL DSP Block Embedded RAM Embedded Processor FPGA Programming process Introduction to Verilog Language o Verilog history o Digital design o FPGA design flow Simulation Synthesis Place & Route Programming Verification o Advantages of Verilog o Simulation & Synthesis o Demonstration of whole process on board Hierarchical Modeling Concept o Top down and bottom up o Modules o Instances o Components of a simulation o Design example of a counter

Introduction to Verilog Basic Concepts o Lexical conventions (white space, comments, operatos, number specification, unsized numbers, X or Z values, negative numbers, underscore characters and question marks, strings, identifiers and keywords, escaped identifiers) o Data types (value set, nets, registers, vectors, integer, real, time register, arrays, memories, parameters, strings) o System tasks and compiler directives (displaying information, monitoring information, stopping and finishing in simulation, compiler directives) Modules and Ports o Modules o Ports o Port connection rules (inputs, outputs, inouts, width matching, unconnected ports) o Connecting ports to external signals (connected by ordered list, connecting ports by name) o Hierarchical names Gate Level Modeling o Gate types (and/or gates, buf/net gates, array of instances) o Gate delays (rise, fall, turn-off, min/typ/max values) Dataflow Modeling o Continuous assignments (implicit continuous assignment, implicit net declaration) o Delays (regular assignment delay, implicit continuous assignment delay, net declaration delay) o Expressions, operators and operands o Operator types (arithmetic, logical, relational, equality, bitwise, reduction, shift, concatenation, replication, conditional, operator precedence) Putting All Together o Small project

Day #2 Behavioral Modeling o Initial statement (combined variable declaration and initialization, combined port/data declaration and initialization, combined ANSI C style port declaration and initialization) o Always statement (always block) o Blocking assignments o Non-blocking assignments o Timing controls (delay based, regular delay control, intra-assignment, zero delay control, event based timing control, named event control, event OR control, level sensitive timing control) o Conditional statements (if-else, case, casex, casez, while loop, for loop, repeat loop, forever loop) o Sequential and parallel blocks (block types, parallel blocks, nested blocks, named blocks, disabling named blocks) o Generate blocks (generate loop, genvar, generate conditional, generate case) Day #3 Tasks and Functions o Differences between tasks and functions o Tasks (task declaration and invocation, task examples, automatic tasks) o Functions (function declaration and invocation, function examples, recursive functions, constant functions, signed functions) Modeling Finite State Machines o FSM concept o Mealy & Moore Models o Verilog coding style o State encoding Sequential Johnson

One Hot Two Hot Defined by user Defined by synthesis o Handling the unused states o Reset & Fail Safe Behavior o Interactive State Machines Unidirectional Bi-Directional Useful Modeling Techniques o Procedural continuous assignments (assign and deassign, force and release) o Overriding parameters (defparam statement, module_instance parameter values) o Conditional compilation and execution o Time scales o Useful system tasks (file output, $fopen, $fdisplay, $fwrite, $fmonitor, $fstrobe, display hierarchy, strobing, random number generation, initializing memory from file, value change dump file) Day #4 Introduction to ALTERA FPGAs o CPLD : MAX V, MAX II o FPGA : Cyclone IV, Cyclone V, ARIA II, ARIA V, STRATIX IV, STRATIX V, SoC ARM based Introduction to Quartus II IDE o Subscription Vs Web edition o Project creation and the main windows in Quartus II o Quartus II project files and folders o Project management (archive, restore, copy, revisions) o Design entry methods (schematic, HDL, EDIF) o Synthesis and P&R o Programmer

RTL Coding Guidelines for QUARTUS II Integrated Synthesis o Synthesis directives and attributes o Fixed output registers o RAM inference o Latch inference o Combinational loops o Finite state machine coding styles Compilation Process o Processing options o Compilation design flows o Viewing compilation results o Netlist viewers o State machine viewer o Chip planner o Resource property editor Day #5 Example: Cyclone IV Architecture Deep Dive o Logic elements and logic array blocks (LE modes, LAB topology and control signals) o Memory blocks (control signals, parity bit support, byte enable support, packed mode, address clock enable, mixed width, asynchronous reset, memory modes: FIFO, ROM, Shift register, DPR, SDR, clocking modes, design considerations) o Embedded multipliers (architecture, operational modes) o Clock networks and PLLs (GCLK networks, PLLs hardware, programmable bandwidth, phase shift implementation, PLL cascading, PLL reconfiguration, spread spectrum clocking) o I/O interfaces (I/O element features: slew rate control, programmable current strength, open drain output, bus hold, programmable pull-up resistor, programmable delay, PCI clamp diode, on chip termination, I/O standards, I/O banks, clock pins functionality, high speed I/O interface, true differential output buffer support, design guidelines)

IP Megafunctions o MegaCore, AMPP, OpenCore IPs o MegaWizard plug-in manager tool o Generated files Memories o Memory editor o Create memory initialization file o Using memory file in design Day #6 Assignment Editor o Synthesis and fitting control o Synthesis settings o Fitter settings o Assignment editor features o Design assistance I/O Management o Pin planner o I/O assignment analysis o Using synthesis attributes in HDL o Live I/O checking Introduction to FPGA Verification o Functional versus gate level simulation o Simulating ALTERA IP cores o System debugging tools overview (in-system sources and probes, insystem memory content editor, signal probe, SignalTap II, LAI)

Day #7 Introduction to Timing Analysis o TimeQuest tool overview o Basic steps to using TimeQuest (generate timing netlist, enter SDC constraints, update timing netlist, generate timing reports) o Using TimeQuest in Quartus II flow o Timing analysis basics (Launch Vs Latch edges, setup and hold times, data and clock arrival time, data required time, setup and hold slack analysis, I/O analysis, recovery and removal, timing models) Timing Reports o Reporting in Quartus II Vs reporting in TimeQuest o Custom, summary and diagnostic reports o Clock transfer, datasheet, Fmax reports o Slack histogram report o Detailed slack/path report, further path analysis Introduction to Timing Constraints o Importance of constraining o Enter constraints o SDC netlist terminology o Collections SDC Timing Constraints o Internal and virtual clocks o Generated clocks (inverted clocks, phase shifted clocks o PLL clocks and derive_pll_clocks Altera SDC extension o Non ideal clock constraints (Jitter, latency on PCB) o Checking clock constraints o Report clocks SDC Timing Constraints for I/O o Combinational I/O interface constraints (max & min delay constraints) o Synchronous inputs constraints (setup and hold time calculations, set_input_delay max & min, set_output_delay min& max, when to use each constraint)

o Checking I/O constraints (report SDC, report unconstrained path, report ignored constraint)