FPGA Data Converter Interfacing Overview

undefined
Interfacing Data Converters with
FPGAs
e2e.ti.com (TI Support Forum)
       
A
g
e
n
d
a
I/O Formats
ADC Parallel data formats
CMOS
LVDS DDR
ADC Serial data formats
1-wire
2-wire
Development Tools available
Debug Tips
I
/
O
 
F
o
r
m
a
t
s
 
C
M
O
S
 
v
s
 
L
V
D
S
CMOS
LVDS
Timing: may be from center or from Voh/Vol
Have to watch the datasheet carefully
Potential Problem: different supply voltage families
 
Ex: Voh from 1.8V logic into Vih of 2.5V logic
Timing is usually crossing to crossing
Logic is supply voltage independent
I
/
O
 
F
o
r
m
a
t
s
 
S
D
R
 
v
s
 
D
D
R
SDR (Single
Data Rate)
DDR (Dual
Data Rate)
Single clock edge used to latch data
But clock toggles at 2x rate of data
Clock rate reduced
(or data rate increased)
Both edges of clock needed
(needs two input flops)
I
/
O
 
F
o
r
m
a
t
s
 
C
l
o
c
k
 
E
d
g
e
 
A
l
i
g
n
m
e
n
t
CLK Centered Aligned
CLK Edge Aligned
Normal case, easy at receive end
Common in ASIC world, needs delay at receive end
I
/
O
 
F
o
r
m
a
t
s
 
P
a
r
a
l
l
e
l
Parallel
Even Odd DDR Format
ADS4249
D0_D1 - bit 0 rising edge
  
   - bit 1 falling edge
I
/
O
 
F
o
r
m
a
t
s
 
S
e
r
i
a
l
 
(
H
y
b
r
i
d
 
S
e
r
i
a
l
-
P
a
r
a
l
l
e
l
)
Serial (hybrid serial-parallel)
Two outputs per device
2-wire mode (ADS6442)
Dx0 contain 8 LSB’s
Dx1 contains 8 MSB’s
I
/
O
 
F
o
r
m
a
t
s
 
T
r
u
e
 
S
e
r
i
a
l
Serial (8b/10b
coded JESD204)
ADS61JB23
P
a
r
a
l
l
e
l
A
D
C
 
t
o
 
F
P
G
A
 
-
 
P
a
r
a
l
l
e
l
Simplest format available
Lowest data rate on the data lines
Skew between clock/data is limiter if the bus needs to go any distance
(such as board to board or board to daughter board)
Most common clocking for LVDS is DDR (Dual Data Rate)
Ensures that toggle rate of clock signal is not 2x that of data
Rising Edge clocks one data bit, Falling Edge the next data bit
Most FPGA families have built-in DDR I/O cells
Sample-wise DDR
One sample on rising edge of clock, next sample falling edge
Number of LVDS drivers = number of bits of sample resolution
Bit wise DDR
Half the data bits on rising edge, other half on falling edge
Reduces number of LVDS pairs by half compared to Sample-wise DDR
X
i
l
i
n
x
 
P
a
r
a
l
l
e
l
 
D
D
R
 
F
o
r
m
a
t
 
E
x
a
m
p
l
e
Uses Input DDR
cell from FPGA
Vendor
Also uses delay
element from
FPGA vendor to
adjust for
different ADC
setup/hold
timings
I
n
p
u
t
 
D
D
R
 
c
e
l
l
One flipflop
catches data on
rising edge
Another flipflop
catches data on
falling edge
Falling edge data
re-registered to
rising edge
Presents two bits
at a time out
F
P
G
A
 
i
n
t
e
r
f
a
c
e
s
Xilinx offers delay elements, Altera/Xilinx offer
PLL/DLL
Different ways of positioning clock edges
Lower cost FPGA families may lack the flexibility
Most FPGAs have PLL-based clock managers
Can use a feedback clock to adjust the phase of the
output clock, effectively making a zero-delay clock buffer
A
l
t
e
r
a
 
F
P
G
A
 
c
l
o
c
k
 
t
i
m
i
n
g
Clock Manager
may have limited
speed range min
to max
Clock Manager
may introduce
clock jitter to
reduce timing
margins
Clock Manager
may take some
initialization, time
to lock
H
y
b
r
i
d
 
S
e
r
i
a
l
-
P
a
r
a
l
l
e
l
A
D
C
 
S
e
r
i
a
l
 
D
a
t
a
 
F
o
r
m
a
t
 
1
-
w
i
r
e
No clock recovery at the receiving end
Clock is provided with data
This is why it is a hybrid serial-parallel format
parallel lines of serial data, must watch skew between signals
Framing information is provided with data
Frame clock – identifies where first and last bit of sample data is
Best to think of Frame Clock as another data pair that has known data
Latch Frame Clock into FPGA using bit clock just like any other data
Frame Clock will have same setup/hold timing as any other data
Bit Clock and Frame Clock may service any number of
channels of data
Duals, Quads, Octals will all have one Bit Clock, one Frame Clock
A
D
C
 
S
e
r
i
a
l
 
D
a
t
a
 
F
o
r
m
a
t
 
1
-
w
i
r
e
14-bit serial format shown
Frame Clock looks like pattern of 7 ‘1’s and 7 ‘0’s
S
e
r
i
a
l
 
D
a
t
a
 
F
o
r
m
a
t
 
2
-
w
i
r
e
Similar to 1-wire format
Serialization rate is cut
in half
Two LVDS pairs are
now needed to carry the
data
Trade off of data rate vs
pin count
X
i
l
i
n
x
 
S
e
r
i
a
l
 
F
o
r
m
a
t
 
E
x
a
m
p
l
e
X
i
l
i
n
x
 
S
e
r
i
a
l
 
F
o
r
m
a
t
 
E
x
a
m
p
l
e
Note that front end of serial format looks just like
logic for parallel format
IDELAY adjusts for timing into IDDR
Because serial format still uses a DDR clock
Frame clock is latched just like any other data line
Look for low to high frame clock to know byte boundaries
Data is deserialized in a chain of flip-flops shift-
register style
Same architecture for 1-wire or 2-wire
N
e
w
 
A
n
a
l
y
s
i
s
 
a
n
d
 
D
e
v
e
l
o
p
m
e
n
t
 
T
o
o
l
s
TSW1400 – ADC capture + DAC Pattern Generator
TSW1405 – Low cost ADC capture card, 16 bit, 64K  
 
 
            samples
TSW1406 – Low cost pattern generator card, 16 bit 64K 
 
  
 samples
JESD204B Translation card – Converts ADC & DAC          
 
  
JESD204B serial data to parallel LVDS data
TSW14J00 (in debug phase) – JESD204B ADC capture + 
 
  
 DAC Pattern Generation
TSW1456  (in design phase) – Low cost ADC capture and 
 
 
           pattern generator card, 16 bit 64K samples
O
l
d
e
r
 
A
n
a
l
y
s
i
s
 
a
n
d
 
D
e
v
e
l
o
p
m
e
n
t
 
T
o
o
l
s
TSW1200 – ADC capture hardware + User Interface
TSW3100 – DAC pattern generation + User Interface
TSW1200, 3100 are analysis tools meant for evaluation of TI ADCs,
DACs, rather than development of new FPGA designs. 
Adapter bridges orderable online
Adapter bridge to Xilinx Development Platform
Adapter bridge to Altera Development Platform
Adapter bridge to Lattice Development Platform
Available from Lattice
A
n
a
l
y
s
i
s
 
T
o
o
l
s
TSW1406 Pattern Generator Card
TSW1405 Capture Card
A
d
a
p
t
e
r
 
B
o
a
r
d
s
D
e
b
u
g
 
S
u
g
g
e
s
t
i
o
n
s
D
e
b
u
g
 
S
u
g
g
e
s
t
i
o
n
s
Have a way to capture and output a buffer of sample data
Either using FPGA debug tools or output sample data to a test
header and capture using a logic analyzer
Many ADCs have known fixed test pattern outputs
Toggle, arithmetic count, custom fixed pattern
If no pattern available, input *very* slow sine wave
Can get a ‘slow’ sine wave by sampling an IF that is very near sampling
frequency
Example, if 100MHz sample rate, set IF to 100.01MHz for 10KHz sine
Logic analyzer view of raw samples can reveal many bugs
Misplaced bit order
Timing errors
Improper deserialization boundary
D
e
b
u
g
 
t
i
p
s
 
 
A
r
i
t
h
m
e
t
i
c
 
c
o
u
n
t
 
p
a
t
t
e
r
n
Arithmetic count pattern (ramp) can quickly identify that bits are in the right position
D
e
b
u
g
 
T
i
p
s
 
 
S
l
o
w
 
i
n
p
u
t
 
s
i
n
e
 
w
a
v
e
If Ramp is not available, very slow sine wave may work almost as well
Or, use custom pattern to walk a single ‘1’ through all possible bit positions
D
e
b
u
g
 
T
i
p
s
 
 
s
e
t
u
p
/
h
o
l
d
 
e
r
r
o
r
s
Setup/hold errors (sometimes called sparkle) show as deviations from expected
D
e
b
u
g
 
T
i
p
s
 
 
b
i
t
 
o
r
d
e
r
i
n
g
,
 
p
i
p
e
l
i
n
i
n
g
Actual example of a timing bug – note bit 9 is seen one cycle early using ramp pattern
E
n
d
Slide Note
Embed
Share

Explore various I/O formats for interfacing data converters with FPGAs, including ADC parallel and serial formats like CMOS, LVDS, DDR. Learn about clock edge alignment, parallel, and true serial formats. Understand the differences between SDR and DDR, as well as considerations for clocking and data rates. Dive into the specifics of interfacing ADCs with FPGAs using parallel connections with insights on skew, clocking schemes, and LVDS drivers.


Uploaded on Sep 30, 2024 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

E N D

Presentation Transcript


  1. Interfacing Data Converters with FPGAs e2e.ti.com (TI Support Forum)

  2. Agenda I/O Formats ADC Parallel data formats CMOS LVDS DDR ADC Serial data formats 1-wire 2-wire Development Tools available Debug Tips

  3. I/O Formats CMOS vs LVDS CMOS Timing: may be from center or from Voh/Vol Have to watch the datasheet carefully Potential Problem: different supply voltage families Ex: Voh from 1.8V logic into Vih of 2.5V logic LVDS Timing is usually crossing to crossing Logic is supply voltage independent

  4. I/O Formats SDR vs DDR SDR (Single Data Rate) Single clock edge used to latch data But clock toggles at 2x rate of data DDR (Dual Data Rate) Clock rate reduced (or data rate increased) Both edges of clock needed (needs two input flops)

  5. I/O Formats Clock Edge Alignment CLK Centered Aligned Normal case, easy at receive end CLK Edge Aligned Common in ASIC world, needs delay at receive end

  6. I/O Formats Parallel Parallel Even Odd DDR Format ADS4249 D0_D1 - bit 0 rising edge - bit 1 falling edge

  7. I/O Formats Serial (Hybrid Serial-Parallel) Serial (hybrid serial-parallel) Two outputs per device 2-wire mode (ADS6442) Dx0 contain 8 LSB s Dx1 contains 8 MSB s

  8. I/O Formats True Serial Serial (8b/10b coded JESD204) ADS61JB23

  9. Parallel

  10. ADC to FPGA - Parallel Simplest format available Lowest data rate on the data lines Skew between clock/data is limiter if the bus needs to go any distance (such as board to board or board to daughter board) Most common clocking for LVDS is DDR (Dual Data Rate) Ensures that toggle rate of clock signal is not 2x that of data Rising Edge clocks one data bit, Falling Edge the next data bit Most FPGA families have built-in DDR I/O cells Sample-wise DDR One sample on rising edge of clock, next sample falling edge Number of LVDS drivers = number of bits of sample resolution Bit wise DDR Half the data bits on rising edge, other half on falling edge Reduces number of LVDS pairs by half compared to Sample-wise DDR

  11. Xilinx Parallel DDR Format Example Uses Input DDR cell from FPGA Vendor Also uses delay element from FPGA vendor to adjust for different ADC setup/hold timings

  12. Input DDR cell One flipflop catches data on rising edge Another flipflop catches data on falling edge Falling edge data re-registered to rising edge Presents two bits at a time out

  13. FPGA interfaces Xilinx offers delay elements, Altera/Xilinx offer PLL/DLL Different ways of positioning clock edges Lower cost FPGA families may lack the flexibility Most FPGAs have PLL-based clock managers Can use a feedback clock to adjust the phase of the output clock, effectively making a zero-delay clock buffer

  14. Altera FPGA clock timing Clock Manager may have limited speed range min to max Clock Manager may introduce clock jitter to reduce timing margins Clock Manager may take some initialization, time to lock

  15. Hybrid Serial-Parallel

  16. ADC Serial Data Format 1-wire No clock recovery at the receiving end Clock is provided with data This is why it is a hybrid serial-parallel format parallel lines of serial data, must watch skew between signals Framing information is provided with data Frame clock identifies where first and last bit of sample data is Best to think of Frame Clock as another data pair that has known data Latch Frame Clock into FPGA using bit clock just like any other data Frame Clock will have same setup/hold timing as any other data Bit Clock and Frame Clock may service any number of channels of data Duals, Quads, Octals will all have one Bit Clock, one Frame Clock

  17. ADC Serial Data Format 1-wire 14-bit serial format shown Frame Clock looks like pattern of 7 1 s and 7 0 s

  18. Serial Data Format 2-wire Similar to 1-wire format Serialization rate is cut in half Two LVDS pairs are now needed to carry the data Trade off of data rate vs pin count

  19. Xilinx Serial Format Example

  20. Xilinx Serial Format Example Note that front end of serial format looks just like logic for parallel format IDELAY adjusts for timing into IDDR Because serial format still uses a DDR clock Frame clock is latched just like any other data line Look for low to high frame clock to know byte boundaries Data is deserialized in a chain of flip-flops shift- register style Same architecture for 1-wire or 2-wire

  21. New Analysis and Development Tools

  22. TSW1400 ADC capture + DAC Pattern Generator TSW1405 Low cost ADC capture card, 16 bit, 64K samples TSW1406 Low cost pattern generator card, 16 bit 64K samples JESD204B Translation card Converts ADC & DAC JESD204B serial data to parallel LVDS data TSW14J00 (in debug phase) JESD204B ADC capture + DAC Pattern Generation TSW1456 (in design phase) Low cost ADC capture and pattern generator card, 16 bit 64K samples

  23. Older Analysis and Development Tools TSW1200 ADC capture hardware + User Interface TSW3100 DAC pattern generation + User Interface TSW1200, 3100 are analysis tools meant for evaluation of TI ADCs, DACs, rather than development of new FPGA designs. Adapter bridges orderable online Adapter bridge to Xilinx Development Platform Adapter bridge to Altera Development Platform Adapter bridge to Lattice Development Platform Available from Lattice

  24. Analysis Tools TSW1406 Pattern Generator Card TSW1405 Capture Card

  25. Adapter Boards

  26. Debug Suggestions

  27. Debug Suggestions Have a way to capture and output a buffer of sample data Either using FPGA debug tools or output sample data to a test header and capture using a logic analyzer Many ADCs have known fixed test pattern outputs Toggle, arithmetic count, custom fixed pattern If no pattern available, input *very* slow sine wave Can get a slow sine wave by sampling an IF that is very near sampling frequency Example, if 100MHz sample rate, set IF to 100.01MHz for 10KHz sine Logic analyzer view of raw samples can reveal many bugs Misplaced bit order Timing errors Improper deserialization boundary

  28. Debug tips Arithmetic count pattern Arithmetic count pattern (ramp) can quickly identify that bits are in the right position

  29. Debug Tips Slow input sine wave If Ramp is not available, very slow sine wave may work almost as well Or, use custom pattern to walk a single 1 through all possible bit positions

  30. Debug Tips setup/hold errors Setup/hold errors (sometimes called sparkle) show as deviations from expected

  31. Debug Tips bit ordering, pipelining Actual example of a timing bug note bit 9 is seen one cycle early using ramp pattern

  32. End

Related


More Related Content

giItT1WQy@!-/#giItT1WQy@!-/#