View Public Classes








Verilog for Experienced VHDL Designers


























Unix Introduction













Lattice FPGAs with Verilog in PDF


Lattice FPGAs with Verilog

3 Days
50% Lecture, 50% Lab     
Basic to Intermediate Level


Overview
Verilog is widely used in the design and verification of platform FPGAs. This three-day course will familiarize you with key language features in the context of real-world FPGA development. The course focuses on Lattice FPGA implementation tools and technology.

If you’ve had some on-the-job exposure to Verilog, these lectures and labs will fill in the gaps, and show you how to write synthesis-efficient code. If you’re already familiar with Verilog-95, you’ll gain exposure to the many enhancements provided by Verilog-01 (IEEE Std 1364-2001).
 
You’ll describe and revise synthesizable Verilog modules, then take them through mapping and routing. You’ll also write testbench code to verify functionality. You’ll learn coding techniques to enhance device performance or resource utilization.

Benefits
Upon completion of this course, students will:

  • Know what Verilog constructs to use in various coding scenarios
  • Understand nuances of syntax and semantics for both synthesis and simulation
  • Envision the synthesized logic expected from the HDL code.
  • Take designs through the entire Lattice FPGA implementation flow
  • Use Lattice features like clock constraints, floorplan groups, and pad preferences
  • Write Verilog code to meet timing or utilization constraints

Intended Audience
Design and verification engineers whose knowledge of Verilog ranges from some on-the-job exposure to little or none, and who want to sharpen their skill set. Engineers who want to spin up on designing with Lattice tools and technology, in a Verilog environment, would also benefit. The course is also useful for test engineers who want to write Verilog patterns, product engineers who want to understand source code, and technical managers. 

For a more comprehensive, syntax-oriented introduction to all aspects of the Verilog language, we recommend the four-day Verilog for Hardware Designers, in which you’ll code, simulate and synthesize design examples in a variety of IC technologies.

Prerequisites
Students should be familiar with digital design principles and programming language concepts.

Suggested follow-on course:
Advanced Verilog 2001 Coding Styles for Synthesis & Verification

Training Approach
This is an intensive, interactive course, which is approximately 50% lecture and 50% lab.  Questions are highly encouraged. 

Course Outline

Day 1:

Verilog Design Flow with ispLEVER

  • How HDLs Work
  • Simulation and synthesis tools
  • Lattice FPGA imlementation tools
  • FPGA flow, Verilog code to bit file

Elements of Verilog Syntax

  • Lexical conventions
  • Literal Bit Vectors
  • Data Types: Variables vs Nets
  • Assignments and Expressions
  • Parameters: Symbolic Names

Lab Exercises

Verilog Operators

  • Concatenate and Replicate
  • Bitwise Operators
  • Arithmetic Operators
  • Shift and Rotate Operations
  • Precedence of Operators

Lab Exercises

Dataflow Coding

  • Anatomy of continuous assign
  • Describing glue logic
  • More complex dataflow code

Lab Exercises

Day 2:

Structural Verilog Coding 

  • Instantiating submodules
  • Using Lattice IPexpress
  • Data types for declaring ports
  • Probing via hierarchical pathnames

Lab Exercises

Writing and Running Testbenches

  • Code a classic testbench
  • Instantiate a design under verification
  • Hooking up stub signals
  • Effective stimulus generation code
  • Monitoring response via waveforms or tabular data
  • Event-driven simulation

Lab Exercises

RTL Coding for Combinational Logic

  • Algorithmic description of hardware
  • Anatomy of an always construct
  • Controlling execution of algorithms
  • Nuances of if-else, case(z), for, while
  • Understanding priority in if-else and case

Lab Exercises

RTL Coding for Sequential Logic

  • Level Sensitive Code
  • Edge Triggered Code
  • Nonblocking Syntax
  • Resets (asynchronous vs. synchronous)

Lab Exercises

Day 3:

Enhancing Performance

  • Constraining the Clock
  • Controlling Clock Enables
  • Prioritizing Reset, Enable
  • Using IO FFs
  • Coding for Speed
  • Global Set-Reset
  • Controlling Fanout

Lab Exercises

Fine Tuning FPGA Device

  • Speed Grades
  • I/O Placement
  • Hold Time Constraints
  • Floorplanning Groups
  • Timing Closure Strategies

Lab Exercises

Using HDL Explorer

  • Syntax-Checking and linting code
  • Using Design Review
  • Examining Design Connectivity
  • HDL Guidelines at a Glance
  For more information, contact:
Tom Wille
TM Associates, Inc.
14420 S. Kelmsley Dr.
Oregon City, OR 97045
503-656-4457
503-656-4775 fax

tw@tm-associates.com