mirror of
https://github.com/gomson/TimothyLottes.github.io.git
synced 2026-08-04 14:48:49 +00:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
<html><head><link rel="stylesheet" href="style.css"></head><body><div class="page">
|
||||
<h1>20161017 - Notes from Attempting to Understand FPGA Timing Limits</h1>
|
||||
<br>
|
||||
|
||||
<i>I'm using the table I built below as a quick reference to think though timing while working on design.
|
||||
Reference from last time,
|
||||
<a href="http://www.xilinx.com/support/documentation/data_sheets/ds181_Artix_7_Data_Sheet.pdf">Artix-7 FPGAs Data Sheet: DC and AC Switching Characteristics</a>.
|
||||
Working from the Speed Grade -3 (fastest) numbers in ns below.</i>
|
||||
<br>
|
||||
<br>
|
||||
<pre>
|
||||
==========
|
||||
TIMING
|
||||
==========
|
||||
Simplified drawing below
|
||||
Where phase of stages would in practice be different
|
||||
Where regions are not to scale
|
||||
_______________ _______________
|
||||
\_______________/ \_______________/ \
|
||||
_______________________________
|
||||
(____________STAGE_0____________)_______________________________
|
||||
. (____________STAGE_1____________)
|
||||
. .
|
||||
. .
|
||||
|<- 0.45 ->|<- 0.31 ->| |<- 0.64 ->|
|
||||
setup hold delay
|
||||
|
||||
BRAM address register BRAM registered read stable
|
||||
|
||||
My mental model is that the 'delay' eats against the 'setup' for the next stage
|
||||
Each stage ends in a register (D flip-flop)
|
||||
The cumulative post register, combinatorial, and net 'delay' from any logic on the wire
|
||||
must not violate the 'setup' time for the stage's register
|
||||
The 'hold' effects the limits of the phase of the stage (offset from positive clock edge)
|
||||
|
||||
Timing limits from my (possibly flawed) understanding of the doc,
|
||||
|
||||
term meaning
|
||||
==== =======
|
||||
BRAM block ram
|
||||
CRAM CLB distributed ram
|
||||
|
||||
number meaning
|
||||
======= =======
|
||||
0.07 ns CLB 6:1 LUT setup time
|
||||
0.59 ns CLB complex setup time (larger than 6:1, carry)
|
||||
0.12 ns CLB 6:1 LUT hold time
|
||||
0.08 ns CLB complex hold time
|
||||
------- -------
|
||||
0.47 ns CLB 5:1x2 LUT registered delay (2 reg/LUT)
|
||||
0.40 ns CLB registered delay otherwise (1 reg/LUT)
|
||||
------- -------
|
||||
0.10 ns CLB 6:1 LUT combinatorial delay (no register)
|
||||
0.27 ns CLB 5:1x2 LUT combinatorial delay
|
||||
0.68 ns CLB maximum combinatorial delay for complex (larger than 6:1, carry)
|
||||
------- -------
|
||||
0.26 ns DSP a setup time
|
||||
0.33 ns DSP b setup time
|
||||
0.17 ns DSP c setup time
|
||||
0.12 ns DSP a hold time
|
||||
0.15 ns DSP b hold time
|
||||
0.17 ns DSP c hold time
|
||||
0.33 ns DSP p registered output delay
|
||||
------- -------
|
||||
0.45 ns BRAM address setup time
|
||||
0.31 ns BRAM address hold time
|
||||
0.64 ns BRAM registered read delay before stable time
|
||||
------- -------
|
||||
0.27 ns CRAM address setup time
|
||||
0.69 ns CRAM address setup time with post-load carry or mux usage
|
||||
0.55 ns CRAM address hold time
|
||||
0.18 ns CRAM address hold time with post-load carry or mux usage
|
||||
0.10 ns CRAM read registered output delay (same as 6:1 LUT combinatorial delay)
|
||||
0.98 ns CRAM write registered output delay (CRAM 64-entry or smaller, etc)
|
||||
2.10 ns CRAM minimum clock period for writes (limits to 476 MHz?)
|
||||
</pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div></body></html>
|
||||
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ Below this is active random migration (456 prior posts still to filter through)
|
||||
<b>2016</b><br>
|
||||
<a href="20161022.html">20161022 - Variation on Branching Design - Return Only</a><br>
|
||||
<a href="20161018.html">20161018 - Fixed Point Rounding</a><br>
|
||||
<a href="20161017.html">20161017 - Notes from Attempting to Understand FPGA Timing Limits</a><br>
|
||||
<a href="20160715.html">20160715 - LED Displays</a><br>
|
||||
<a href="20160127.html">20160127 - Temporal AA Neighborhood Clamp</a><br>
|
||||
<br>
|
||||
|
||||
Reference in New Issue
Block a user