Xilinx FPGA - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Xilinx FPGA

Description:

What if we were using a font that's 10 high, but 2 of the rows are always blank? ... synthesis attribute CLKDV_DIVIDE of dll is 8 //synopsys translate_off ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 26
Provided by: anselmo9
Category:
Tags: fpga | attribute | xilinx

less

Transcript and Presenter's Notes

Title: Xilinx FPGA


1
Xilinx FPGA
  • Anselmo Lastra

2
Topics
  • FPGA internals
  • Clock management
  • Chipscope
  • State Machines
  • Design
  • What if we were using a font thats 10 high, but
    2 of the rows are always blank?
  • How about a given number of fixed-size sprites
    anywhere on the screen?

3
Xilinx FPGA Internals
4
Spartan2
  • 4K bit RAM blocks
  • Large amt of logic
  • Program stored in SRAM

5
Switch Matrix
6
Pass Transistor
7
Mux Controlled by Memory
8
Logic Lookup Table
  • Instead of gates
  • So doesnt matter much how you specify your logic
  • Ends up truth table

9
Xilinx CLB
10
Spartan 2
  • At right two logic cells (LC)
  • Two (four LCs) in CLB
  • LUT is small RAM
  • Can be used as RAM

11
CLB
  • Muxes can make full 6-input function
  • Can generate some functions w/ up to 19 inputs
  • Each LC can be 1 bit of an adder

12
Xilinx IOB
13
Spartan 2 IOB
14
RAM
  • Ours has 10 blocks for a total of 40Kbits SRAM

15
Delay Lock Loops
  • Circuitry to
  • Synchronize internal clock to external clock
  • Divide the clock
  • Instead of how you were counting it
  • Run the clock over low skew lines
  • Double the clock frequency
  • There are four on our chips

16
Clock Synchronization
  • Set internal to one cycle behind external
  • Effectively clock edges are aligned

17
Clock Division and Sync
  • //synthesis attribute CLKDV_DIVIDE of dll is 8
  • //synopsys translate_off
  • defparam dll.CLKDV_DIVIDE 8
  • //synopsys translate_on
  • CLKDLL dll (.CLKIN(CLKIN), .CLKFB(CLK0),
    .RST(RESET), .CLK0(CLK0), .CLK90(), .CLK180(),
    .CLK270(), .CLK2X(), .CLKDV(DIV),
    .LOCKED(LOCKED))
  • ----------
  • CLKIn is input clock
  • CLK0 is locked (indicated by LOCKED)
  • DIV is divided by the CLKDV_DIVIDE factor

18
Clock Division Example
  • Here was set to divide-by-4

19
Practical Matters
  • Have found that clock DLL divisor only works
    reliably if you initialize it with reset

20
Our Device Specs
  • See http//direct.xilinx.com/bvdocs/publications/d
    s001_2.pdf

21
Spartan 3
22
Virtex-II
23
Virtex-II Pro
24
Links
  • Link page on course web
  • Hardware documentation
  • Application notes on Xilinx web page
  • Info on DLL
  • http//www.xilinx.com/bvdocs/appnotes/xapp174.pdf
  • http//www.xilinx.com/bvdocs/appnotes/xapp132.pdf

25
Next
  • Chipscope
  • State Machines
  • Design
  • What if we were using a font thats 10 high, but
    2 of the rows are always blank?
  • How about a given number of fixed-size sprites
    anywhere on the screen?
Write a Comment
User Comments (0)
About PowerShow.com