Introduction to FPGAs Getting Started with Xilinx.

Slides:



Advertisements
Similar presentations
Verilog Fundamentals Shubham Singh Junior Undergrad. Electrical Engineering.
Advertisements

Simulation executable (simv)
The Verilog Hardware Description Language
Verilog Overview. University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Supplement on Verilog adder examples
Synchronous Sequential Logic
Table 7.1 Verilog Operators.
Hardware Description Language (HDL)
SYEN 3330 Digital SystemsJung H. Kim Chapter SYEN 3330 Digital Systems Chapters 4 – Part3: Verilog – Part 1.
CSE 201 Computer Logic Design * * * * * * * Verilog Modeling
Give qualifications of instructors: DAP
CSE 341 Verilog HDL An Introduction. Hardware Specification Languages Verilog  Similar syntax to C  Commonly used in  Industry (USA & Japan) VHDL 
CS 151 Digital Systems Design Lecture 37 Register Transfer Level
Silicon Programming--Intro. to HDLs1 Hardware description languages: introduction intellectual property (IP) introduction to VHDL and Verilog entities.
Reconfigurable Computing (EN2911X, Fall07) Lecture 05: Verilog (1/3) Prof. Sherief Reda Division of Engineering, Brown University
University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Introduction to Basys 2. Switches Slide switchesPush button switches.
Verilog Basics Nattha Jindapetch November Agenda Logic design review Verilog HDL basics LABs.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
ECE 2372 Modern Digital System Design
Digital Logic Operations and Functions. Basic Logic Operations Logic, as you know it, involves in a making of digital system. Logic, as you know it, involves.
Introduction Verilog is a HARDWARE DESCRIPTION LANGUAGE (HDL) A hardware description language is a language or means used to describe or model a digital.
Verilog HDL: A solution for Everybody By, Anil Kumar Ram Rakhyani
EEE2243 Digital System Design Chapter 4: Verilog HDL (Sequential) by Muhazam Mustapha, January 2011.
1 Workshop Topics - Outline Workshop 1 - Introduction Workshop 2 - module instantiation Workshop 3 - Lexical conventions Workshop 4 - Value Logic System.
COE 202 Introduction to Verilog Computer Engineering Department College of Computer Sciences and Engineering King Fahd University of Petroleum and Minerals.
Anurag Dwivedi. Basic Block - Gates Gates -> Flip Flops.
Introduction to ASIC flow and Verilog HDL
Sharif University of Technology Department of Computer Engineering Verilog ® HDL Basic Concepts Alireza Ejlali.
Introduction to Verilog. Data Types A wire specifies a combinational signal. – Think of it as an actual wire. A reg (register) holds a value. – A reg.
Teaching Digital Logic courses with Altera Technology
Verilog Intro: Part 1. Hardware Description Languages A Hardware Description Language (HDL) is a language used to describe a digital system, for example,
Introduction to Verilog. Structure of a Verilog Program A Verilog program is structured as a set of modules, which may represent anything from a collection.
1 University of Jordan Computer Engineering Department CPE 439: Computer Design Lab.
Exp#5 & 6 Introduction to Verilog COE203 Digital Logic Laboratory Dr. Ahmad Almulhem KFUPM Spring 2009.
Structural Description
Overview Logistics Last lecture Today HW5 due today
Hardware Description Languages: Verilog
Supplement on Verilog FF circuit examples
Supplement on Verilog for Algorithm State Machine Chart
Introduction.
ELEN 468 Advanced Logic Design
Reg and Wire:.
Introduction to Verilog
EMT 351/4 DIGITAL IC DESIGN Week # Synthesis of Sequential Logic 10.
Learning Outcome By the end of this chapter, students are expected to be able to: Design State Machine Write Verilog State Machine by Boolean Algebra and.
Hardware Description Languages: Verilog
Registers and Counters
Introduction to Verilog
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
Lecture 1.3 Hardware Description Languages (HDLs)
Computer Architecture and Design Lecture 6
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN
FSM MODELING MOORE FSM MELAY FSM. Introduction to DIGITAL CIRCUITS MODELING & VERIFICATION using VERILOG [Part-2]
Verilog.
ESE 437: Sensors and Instrumentation
Registers and Counters
332:437 Lecture 8 Verilog and Finite State Machines
Introduction to Verilog
Introduction to Verilog
Introduction to Verilog
Registers and Counters
Registers and Counters
332:437 Lecture 8 Verilog and Finite State Machines
COE 202 Introduction to Verilog
Registers and Counters
Reconfigurable Computing (EN2911X, Fall07)
Presentation transcript:

Introduction to FPGAs Getting Started with Xilinx

Everything is represented in two discrete values: “0” and “1” We use low and high voltages to represent these values Use binary arithmetic and boolean math Digital Design

Converting decimal to binary: 11 / 2 = 5 remainder 1 5 / 2 = 2 remainder 1 2 / 2 = 1 remainder 0 1 / 2 = 0 remainder 1 Read it from bottom to top: 1011 Binary Numbers

Converting from binary to decimal Every digit represents a power of two Note that we start with 2 0 Binary Numbers (1 x 2 3 ) + (0 x 2 2 ) + (1 x 2 1 ) + (1 x 2 0 ) = 11

Field Programmable Gate Array Hardware that can be customized Can be programmed to do just about anything you want them to do. What is an FPGA?

HDL (Hardware Descriptive Language) Allows one to create designs using a text language One “lays out” the design Verilog

Clocks define the time element of a design Clocks alternate between high and low in a square wave Clocks Time

We are only concerned with clock edges usually Edges are simply where a transition takes place Clock Edges Time

We will create a design that counts up on every clock edge Will store the value in a piece of hardware called a “register” (think memory) We will use an 8-bit number, representing 2 8 = 256 different values A Simple Counter

“Black box” – should have inputs and outputs Focus on “what” not “how” A Simple Counter Counter clock counter_value

module counter( clock, counter_value ); input clock; output [3:0] counter_value; reg [3:0] counter; assign counter_value = counter; clock) begin counter = counter + 1; end endmodule The Code

module counter( clock, counter_value ); input clock; output [3:0] counter_value; … endmodule The Code “module” declaration specified what the inputs and outputs are

reg [3:0] counter; The Code “reg” keyword makes a register. We use the bracket notation to specify how big the number is Since we’re using 4 bits, we can represent 2 4 values, meaning we can count from 0 to , 0001, 0010, 0011, 0100, etc.

clock) begin counter = counter + 1; end The Code “always” specifies that we want to do something whenever a change occurs In our case, anytime the clock goes from low to high, increment the counter

Visualizing The Code Concurrency – Everything happens at once Verilog code turns into real hardware

Visualizing The Code module counter( clock, counter_value ); input clock; output [3:0] counter_value; endmodule clock counter value

Visualizing The Code module counter( clock, counter_value ); input clock; output [3:0] counter_value; reg [3:0] counter; endmodule clock counter value countercounter

Visualizing The Code module counter( clock, counter_value ); input clock; output [3:0] counter_value; reg [3:0] counter; assign counter_value = counter; endmodule clock counter value countercounter

Visualizing The Code module counter( clock, counter_value ); input clock; output [3:0] counter_value; reg [3:0] counter; assign counter_value = counter; clock) begin counter end endmodule counter value countercounter clock

Visualizing The Code module counter( clock, counter_value ); input clock; output [3:0] counter_value; reg [3:0] counter; assign counter_value = counter; clock) begin counter = end endmodule clock counter value countercounter

Visualizing The Code module counter( clock, counter_value ); input clock; output [3:0] counter_value; reg [3:0] counter; assign counter_value = counter; clock) begin counter = counter + end endmodule clock counter value countercounter Adder

Visualizing The Code module counter( clock, counter_value ); input clock; output [3:0] counter_value; reg [3:0] counter; assign counter_value = counter; clock) begin counter = counter + 1; end endmodule clock counter value countercounter Adder 1

Tools Of The Trade Xilinx Software – ISE (Integrated Software Environment) Allows us to create designs Does all the grunt work of turning our code into physical hardware We program the chip through ISE

Hands On Next session will be a walkthrough of the hardware We’ll get to program an actual counter