Introduction to FPGAs Getting Started with Xilinx Digital










![The Code module counter( clock, counter_value ); input clock; output [3: 0] counter_value; reg The Code module counter( clock, counter_value ); input clock; output [3: 0] counter_value; reg](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-11.jpg)




![Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-16.jpg)
![Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-17.jpg)
![Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-18.jpg)
![Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-19.jpg)
![Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-20.jpg)
![Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-21.jpg)
![Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-22.jpg)


- Slides: 24

Introduction to FPGAs Getting Started with Xilinx

Digital Design • 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

Binary Numbers • 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 20 (1 x 23) + (0 x 22) + (1 x 21) + (1 x 20) = 11

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

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

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

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

A Simple Counter • 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 28 = 256 different values

A Simple Counter • “Black box” – should have inputs and outputs • Focus on “what” not “how” Counter clock counter_value
![The Code module counter clock countervalue input clock output 3 0 countervalue reg The Code module counter( clock, counter_value ); input clock; output [3: 0] counter_value; reg](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-11.jpg)
The Code module counter( clock, counter_value ); input clock; output [3: 0] counter_value; reg [3: 0] counter; assign counter_value = counter; always @(posedge clock) begin counter = counter + 1; endmodule

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

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 24 values, meaning we can count from 0 to 15. • 0000, 0001, 0010, 0011, 0100, etc. reg [3: 0] counter;

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 always @(posedge clock) begin counter = counter + 1; end

Visualizing The Code • Concurrency – Everything happens at once • Verilog code turns into real hardware
![Visualizing The Code module counter clock countervalue clock input clock output 3 0 Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-16.jpg)
Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] counter_value; endmodule counter value
![Visualizing The Code module counter clock countervalue clock input clock output 3 0 Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-17.jpg)
Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] counter_value; reg [3: 0] counter; endmodule c o u n t e r counter value
![Visualizing The Code module counter clock countervalue clock input clock output 3 0 Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-18.jpg)
Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] counter_value; reg [3: 0] counter; assign counter_value = counter; endmodule c o u n t e r counter value
![Visualizing The Code module counter clock countervalue clock input clock output 3 0 Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-19.jpg)
Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] counter_value; reg [3: 0] counter; assign counter_value = counter; always @(posedge clock) begin counter endmodule c o u n t e r counter value
![Visualizing The Code module counter clock countervalue clock input clock output 3 0 Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-20.jpg)
Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] counter_value; reg [3: 0] counter; assign counter_value = counter; always @(posedge clock) begin counter = endmodule c o u n t e r counter value
![Visualizing The Code module counter clock countervalue clock input clock output 3 0 Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-21.jpg)
Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] counter_value; reg [3: 0] counter; assign counter_value = counter; always @(posedge clock) begin counter = counter + endmodule c o u n t e r Adder counter value
![Visualizing The Code module counter clock countervalue clock input clock output 3 0 Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0]](https://slidetodoc.com/presentation_image_h/0c9c6f4d7bf0b775907e56d159309b29/image-22.jpg)
Visualizing The Code module counter( clock, counter_value ); clock input clock; output [3: 0] counter_value; reg [3: 0] counter; assign counter_value = counter; always @(posedge clock) begin counter = counter + 1; endmodule c o u n t e r 1 Adder counter value

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
Counter code
The secret of getting ahead is getting started
Getting started with vivado
Unix for bioinformatics
Education splunk
Rancher slack
Getting started with excel
Microsoft outlook 2010 tutorial
Lua getting started
English 7 unit 1 getting started
Local environment getting started
Find these things in unit 1
Linkedin getting started
Getting started with vivado
Dr jeffrey roach
Getting started with ft8
English 9 unit 3
Unit 1 getting started
Poll everywhere register
Android development getting started
Tipos de habilidades del pensamiento
Getting started with eclipse
Hakan kutucu
Embedded microprocessor system design using fpgas
7 series clocking resources