Verilog for High Performance

Similar documents
VHDL for Synthesis. Course Description. Course Duration. Goals

קורס VHDL for High Performance. VHDL

FPGA for Software Engineers

VHDL Essentials Simulation & Synthesis

Verilog Essentials Simulation & Synthesis

ALTERA FPGA Design Using Verilog

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

INSTITUTE OF AERONAUTICAL ENGINEERING Dundigal, Hyderabad ELECTRONICS AND COMMUNICATIONS ENGINEERING

MLR Institute of Technology

St.MARTIN S ENGINEERING COLLEGE Dhulapally, Secunderabad

CSE140L: Components and Design Techniques for Digital Systems Lab

CSE140L: Components and Design

EEL 4783: HDL in Digital System Design

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

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

Logic Synthesis. EECS150 - Digital Design Lecture 6 - Synthesis

EECS150 - Digital Design Lecture 5 - Verilog Logic Synthesis

SystemVerilog Essentials Simulation & Synthesis

ALTERA FPGAs Architecture & Design

Digital System Design with SystemVerilog

EECS150 - Digital Design Lecture 10 Logic Synthesis

EECS150 - Digital Design Lecture 10 Logic Synthesis

Register Transfer Level in Verilog: Part I

: : (91-44) (Office) (91-44) (Residence)

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

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

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

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

FSM Components. FSM Description. HDL Coding Methods. Chapter 7: HDL Coding Techniques

Lecture 12 VHDL Synthesis

Design Guidelines for Optimal Results in High-Density FPGAs

Lecture #1: Introduction

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

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

EEL 4783: HDL in Digital System Design

Topics. Midterm Finish Chapter 7

Verilog for Synthesis Ing. Pullini Antonio

Speaker: Kayting Adviser: Prof. An-Yeu Wu Date: 2009/11/23

Synthesis of Combinational and Sequential Circuits with Verilog

XST User Guide

Verilog introduction. Embedded and Ambient Systems Lab

ECE 4514 Digital Design II. Spring Lecture 15: FSM-based Control

VHDL: RTL Synthesis Basics. 1 of 59

Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Programmable Logic Devices Verilog VII CMPE 415

EN2911X: Reconfigurable Computing Topic 02: Hardware Definition Languages

Topics. Midterm Finish Chapter 7

Synthesizable Verilog

Digital Design Using Digilent FPGA Boards -- Verilog / Active-HDL Edition

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

Recommended Design Techniques for ECE241 Project Franjo Plavec Department of Electrical and Computer Engineering University of Toronto

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

RTL HARDWARE DESIGN USING VHDL. Coding for Efficiency, Portability, and Scalability. PONG P. CHU Cleveland State University

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

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

Verilog Module 1 Introduction and Combinational Logic

ECE 2300 Digital Logic & Computer Organization. More Sequential Logic Verilog

Digital Design with FPGAs. By Neeraj Kulkarni

ENGN1640: Design of Computing Systems Topic 02: Lab Foundations

World Class Verilog & SystemVerilog Training

Digital Design with SystemVerilog

Outline. EECS Components and Design Techniques for Digital Systems. Lec 11 Putting it all together Where are we now?

Writing Circuit Descriptions 8

(ii) Simplify and implement the following SOP function using NOR gates:

CHAPTER - 2 : DESIGN OF ARITHMETIC CIRCUITS

MCMASTER UNIVERSITY EMBEDDED SYSTEMS

HDL Coding Style Xilinx, Inc. All Rights Reserved

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

HDLs and SystemVerilog. Digital Computer Design

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

LeonardoSpectrum & Quartus II Design Methodology

Verilog Overview. Verilog Overview. Simple Example. Simple Example. Simple Example. Simple Example

Advanced FPGA Design. Jan Pospíšil, CERN BE-BI-BP ISOTDAQ 2018, Vienna

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Using Quartus II Verilog HDL & VHDL Integrated Synthesis

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

Synthesis Options FPGA and ASIC Technology Comparison - 1

Verilog Execution Semantics

EEL 4783: HDL in Digital System Design

ECE 574: Modeling and Synthesis of Digital Systems using Verilog and VHDL. Fall 2017 Final Exam (6.00 to 8.30pm) Verilog SOLUTIONS

VHDL simulation and synthesis

Lecture 3. Behavioral Modeling Sequential Circuits. Registers Counters Finite State Machines

Unit 2: High-Level Synthesis

8. Best Practices for Incremental Compilation Partitions and Floorplan Assignments

Laboratory Exercise 7

TSEA44 - Design for FPGAs

KING FAHD UNIVERSITY OF PETROLEUM & MINERALS COMPUTER ENGINEERING DEPARTMENT

Chapter 5 Registers & Counters

Modeling of Finite State Machines. Debdeep Mukhopadhyay

Sequential Circuit Design: Principle

Chapter 9: Sequential Logic Modules

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

structure syntax different levels of abstraction

Here is a list of lecture objectives. They are provided for you to reflect on what you are supposed to learn, rather than an introduction to this

A Brief Introduction to Verilog Hardware Definition Language (HDL)

Overview. Implementing Gigabit Routers with NetFPGA. Basic Architectural Components of an IP Router. Per-packet processing in an IP Router

Behavioral Modeling and Timing Constraints

Verilog 1 - Fundamentals

PINE TRAINING ACADEMY

Transcription:

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 into great depth and teaches efficient methods for writing Verilog code in a way that produces the precise digital circuit for various constraints like high frequency, low power, and minimal area. 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. This course also enriches digital engineers with many years of experience. The course covers the full synthesis process flow starting from reviewing methodologies, using development tools, adding constraints, implementing every Verilog structure in an optimal way, understanding the problems with bad coding style, learning the differences between simulation pre- and post-synthesis, analyzing critical paths, and reading and analyzing synthesis reports. In addition, the course focuses on writing efficient code to save area, increasing frequency, designing for low power consumption, dealing with skew problems, working with external IPs, using attributes in Verilog code, implementing reliable, and high speed finite state machines, solving design problems like high fanout and more. Course Duration 5 days Goals 1. Understand the synthesis process flow and the difference between different tools 2. Learn precise coding style for combinational and sequential circuits 3. Understand synthesis of multi-files projects 4. Become familiar with the various constraints and adding them to project 5. Become familiar with design problems resulting from bad coding style 6. Design efficient circuits for minimal area or high frequency 7. Work with IPs and combining them in the synthesis flow 8. Produce reports, detect and correct timing problems

Intended Users Hardware engineers who develop FPGAs and would like to enhance their skills, in order to understand synthesis limitations, to acquire better expertise on avoiding digital problems and to be to write efficient coding style for synthesis Previous Knowledge FPGA design, Verilog Course Material 1. Simulator: Modelsim 2. Synthesizer and Place & Route: Quartus II (ALTERA) or Precision (Mentor Graphics) 3. Demonstration on ALTERA Evaluation board Table of Contents Day #1 Introduction to Synthesis o The synthesis process Technology library Constraint HDL files Compiler Mapping Generated Netlist o Hardware inference versus hardware instantiation o Simulation versus Synthesis Verilog Subset for Logic Synthesis o Inference from declarations Modules Integer Sized & Unsized numbers

Parameter & localparam Net, reg, vector, array data types Initialization with X Model initialization using translate_off/translate_on Module instantiations Gate level modeling o Inference from Z value tri-state buffer Bi-Directional I/O tri-state MUX tri-state buffer bus o Inference from simple continuous assignment Logical operators Bitwise operators Reduction operators RTL and Technology view analysis o Inference from conditional operator (? : ) If-else synthesis LUT equation analysis X and Z values LATCH problem Don t care in synthesis o Inference from arithmetic and relational operators Integer versus real Arithmetic operators: +, -, *, /, %, ** Relational operators: >, <, =, /=, >=, <= Shift operators: >>, <<, >>>, <<< Constants in arithmetic and relational operators o Simulation versus synthesis behavior and synthesis guidelines Operator Sharing o Derivation of efficient HDL description o Reducing circuit size o Operator sharing using Verilog description o Operator sharing using synthesizer GUI options o Analyzing area and frequency o Tradeoff analysis o Complex operator sharing and synthesis tools limitations

Day #2 Procedural Statements Synthesis o Inference from within procedural statement introduction o General guidelines Using variables Case versus IF-ELSE Combinational circuits sensitivity list Sequential circuits sensitivity list o Inference from simple assignment statements o Inference from IF-ELSE and IF-ELSE IF statements Prioritization and dependency Latch problem Variable not initialized Full versus partial sensitivity list Combinational versus sequential If statements Operator sharing within procedural blocks Nested IF statements synthesis Using don t cares for final else clause Analyzing results on different synthesizers o Inference from Case statements General guidelines for synthesis Combinational versus sequential sensitivity list Don t care in Case statements Latch problem Full case attribute Parallel case attribute o Inference from loop statements Serial loop versus parallel loop synthesis Loop index FOR loop versus while, forever, repeat loop for synthesis o Combinational circuit design examples Gray code incrementor Programmable priority encoder Signed addition with status ALU CRC

Day #3 Nonblocking Assignment for Synthesis o Verilog race conditions IEEE Verilog standard determinism General guidelines to avoid race conditions o Nonblocking assignments coding guidelines for synthesis The Verilog stratified event queue Self-triggering always blocks Combinational and sequential logic in the same always block Blocking and nonblocking assignments in the same always block problem Assignments to the same variable from more than one always block Assignments using #0 issues Coding style Guidelines o Sensitivity List Incomplete sensitivity list, simulation pre and post synthesis Complete sensitivity list with mis-ordered assignments o Closed feedback loop problem Combinational loops Combinational loops overcome o Synchronous Circuits Inference latch versus flip-flop inference Synchronous and asynchronous reset Load and enable signals Incorrect control signal priority Shift registers Counters Single port memory Dual port memory Initializing memory contents Inferring ROM Inferring multiplier and DSP Adder trees

Finite State Machine Synthesis o State machine structure (Mealy and Moore block diagram) o State encoding (Auto, one-hot, binary, Johnson, two-hot, Gray, User specific) o State machine implementation in Verilog (one, two or three always blocks) o Bad coding styles for state machine o Specifying encoding style in Verilog and in synthesizer tool o Registered outputs with and without latency o Using custom encoding styles o State machine attributes o Analyzing encoding style area and performance o High reliability safe state machines using attributes, handling illegal states Day #4 Timing Analysis of a Synchronous Sequential Circuits o Introduction to timing constraints and synchronous design techniques o Synchronized versus unsynchronized I/O o Use I/O FF o Setup time violation and maximal clock rate o Synthesis static analysis formula o Hold time violation o Output related timing considerations o Input related timing considerations o Poor design practices and their remedies Misuse of asynchronous signals Misuse of gated clock Misuse of derived clocks Global clock Clock multiplexing Clock skew o Analyzing critical paths in details o Register changes during synthesis

o Synthesis static timing analysis versus Place & Route static timing analysis o Fan-out and long combinational chain timing problems Logic duplication Automatic fan-out control Shift register example o Using PLL in the system o Physical Synthesis versus logical synthesis Day #5 Synthesis of Large Projects o Reuse methodology o Parameterized code Parameters review Generate constructs (if-generate, case-generate, loopgenerate, nested generate) o Synthesis of functions & tasks o Compiler directives `define, `include, `ifdef, `else, `endif Integrating IP Core o IP core generation and integration into Verilog code o IP black box constraints Maximize Clock Rate o Introduction to pipeline o Latency and throughput o Pipelined combinational circuits o Pipelining considerations o Pipeline balancing o Effectiveness of pipeline o Adding a pipeline in Verilog o Analyze clock rate in pipelined design o Complex pipeline circuits o Retiming