Automotive Innovators Hit High Gear in - Xilinx
Automotive Innovators Hit High Gear in - Xilinx
Automotive Innovators Hit High Gear in - Xilinx
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Tim<strong>in</strong>g Parameter M<strong>in</strong> (ns) Max (ns) Description<br />
Tclk 6.6 – Clock period<br />
ts_p (Setup Time) 0.5 1 Input Setup time for pos-edge of clock<br />
with respect to posedge<br />
ts_p (Setup Time) -1.5 -2.0 Input Setup time for neg-edge of clock<br />
with respect to posedge<br />
th (Hold Time) 0.5 – Input Hold time<br />
tv (Data Valid W<strong>in</strong>dow) 1 1.5 Data Valid w<strong>in</strong>dow<br />
shift. Table 1 shows the external <strong>in</strong>terface<br />
<strong>in</strong>put tim<strong>in</strong>g details.<br />
The follow<strong>in</strong>g are constra<strong>in</strong>ts we applied<br />
for m<strong>in</strong>imum tim<strong>in</strong>g values <strong>in</strong> UCF:<br />
// Def<strong>in</strong>e Clock Net<br />
NET “i_video_ch1_clk”<br />
TNM_NET = “VIDEO_CH1_CLK”<br />
TIMESPEC “VIDEO_CH1_CLK”<br />
= PERIOD 6.8 ns HIGH 50%<br />
INPUT_JITTER 0.1 ns<br />
// Def<strong>in</strong>e Time Group for Ris<strong>in</strong>g and<br />
Fall<strong>in</strong>g (In case of DDR Inputs)<br />
TIMEGRP “VIDEO_CH1_CLK_R”<br />
= “VIDEO_CH1_CLK” RISING;<br />
TIMEGRP “VIDEO_CH1_CLK_F”<br />
= “VIDEO_CH1_CLK” FALLING;<br />
// Def<strong>in</strong>e Input Constra<strong>in</strong>ts.<br />
OFFSET = IN 0.5 ns VALID 1ns BEFORE<br />
“VIDEO_CH1_CLK” TIMEGRP<br />
“VIDEO_CH1_CLK_R”<br />
OFFSET = IN -1.5 ns VALID 1ns BEFORE<br />
“VIDEO_CH1_CLK” TIMEGRP<br />
“VIDEO_CH1_CLK_F”<br />
For tim<strong>in</strong>g constra<strong>in</strong>ts on the PCI<br />
Express and Gigabit Ethernet MAC cores,<br />
we applied all tim<strong>in</strong>g and placement constra<strong>in</strong>ts<br />
for block RAM and PLL/DCM as<br />
def<strong>in</strong>ed <strong>in</strong> the CORE Generator example.<br />
We def<strong>in</strong>ed the output tim<strong>in</strong>gs with<br />
respect to <strong>in</strong>put clock or PLL-generated<br />
clocks <strong>in</strong> a UCF.<br />
// Def<strong>in</strong>e OFFSET OUT with respect<br />
to clock.<br />
Table 1 – External Interface Input Tim<strong>in</strong>g Details<br />
NET “video_data_p0” OFFSET = OUT 3<br />
ns AFTER “i_clk_video_<strong>in</strong>”;<br />
// Def<strong>in</strong>e MAXDELAY from Flip Flop to<br />
pad to be m<strong>in</strong>imum (Say 0.1 ns to<br />
0.2 ns),<br />
NET “video_data_p0_to_pad” MAXDELAY<br />
= 0.1 ns<br />
The OFFSET OUT doesn’t confirm<br />
that all outputs on all data and clock signals<br />
are exactly at 3 ns. The tool tries to meet<br />
tim<strong>in</strong>gs with zero or positive slack (that is,<br />
less than 3 ns).<br />
S<strong>in</strong>ce many Virtex-5 designs use multiple<br />
asynchronous clocks, we then had to def<strong>in</strong>e<br />
the false paths <strong>in</strong> the design so those clocks<br />
would not be affected. We did this with the<br />
follow<strong>in</strong>g constra<strong>in</strong>ts sett<strong>in</strong>gs <strong>in</strong> a UCF.<br />
// Def<strong>in</strong>e False Path.<br />
NET “video_data_p0”<br />
TNM_NET = “VIDEO_CH1_TIMGRP”;<br />
NET “core_clk_0”<br />
TNM_NET = “CORE_CLK”;<br />
TIMESPEC TS_FROM_VIDEO_CH0_TO_CORE =<br />
FROM FFS (“VIDEO_CH1_TIMGRP”) TO FFS<br />
(“CORE_CLK”) TIG<br />
Post-P&R Tim<strong>in</strong>g Analysis and Tim<strong>in</strong>g Fix<br />
After plac<strong>in</strong>g and rout<strong>in</strong>g our design, we<br />
ran static tim<strong>in</strong>g analysis (STA) and tim<strong>in</strong>g<br />
simulation to see if we had any further tim<strong>in</strong>g<br />
errors. For STA, we ensured that the<br />
tim<strong>in</strong>g report covered all the constra<strong>in</strong>ed<br />
and unconstra<strong>in</strong>ed paths. By us<strong>in</strong>g an STA<br />
report, we can validate <strong>in</strong>put/output tim-<br />
XCELLENCE IN NEW APPLICATIONS<br />
<strong>in</strong>g and <strong>in</strong>ternal system tim<strong>in</strong>gs. To fix the<br />
<strong>in</strong>put tim<strong>in</strong>g violations (setup and hold),<br />
we use IDELAY with the appropriate tap<br />
value to meet tim<strong>in</strong>g requirements. To fix<br />
output tim<strong>in</strong>g violations, we made sure the<br />
respective signal flip-flop was <strong>in</strong> IOB. To<br />
fix the <strong>in</strong>ternal logic tim<strong>in</strong>g, we used an<br />
FPGA editor to make changes to the floor<br />
plan and the design’s RTL code.<br />
We then ran tim<strong>in</strong>g simulation to catch<br />
errors that we didn’t detect dur<strong>in</strong>g static<br />
tim<strong>in</strong>g analysis. The process <strong>in</strong>volved generat<strong>in</strong>g<br />
a netlist compatible with the simulator<br />
we used dur<strong>in</strong>g RTL simulation, and<br />
add<strong>in</strong>g it to the Xil<strong>in</strong>x library path <strong>in</strong> tim<strong>in</strong>g<br />
simulation script.<br />
Tim<strong>in</strong>g simulation will catch errors that<br />
STA doesn’t. One critical example is an<br />
address collision <strong>in</strong> dual-port RAM that<br />
occurs when two logic blocks generate two<br />
asynchronous clock doma<strong>in</strong>s and addresses.<br />
Tim<strong>in</strong>g simulation also helps identify<br />
slow-chang<strong>in</strong>g signal or multicycle paths<br />
and multiclock doma<strong>in</strong> paths <strong>in</strong> a design,<br />
thereby prompt<strong>in</strong>g designers to apply better<br />
tim<strong>in</strong>g constra<strong>in</strong>ts. That also helps fix<br />
tim<strong>in</strong>g issues <strong>in</strong> STA.<br />
The Virtex-5-based FPGA proved wellsuited<br />
for our video monitor<strong>in</strong>g system<br />
requirements. The regional clock buffer<br />
and I/O clock buffers (with pre-bit deskew<br />
at IOB level us<strong>in</strong>g IODELAY) allowed us<br />
to support multichannel source-synchronous<br />
audio/video <strong>in</strong>puts. Moreover, the<br />
device’s PCI Express and Gigabit Ethernet<br />
MAC hard macros gave us global connectivity<br />
for remote monitor<strong>in</strong>g.<br />
The end result was a cost-effective solution<br />
for our A/V remote-monitor<strong>in</strong>g application.<br />
A bit of work at the early stage of<br />
design made it easy to meet tim<strong>in</strong>g closure.<br />
In our future design work, we will rely on<br />
early-stage plann<strong>in</strong>g to ensure the effective<br />
usage of the available resources of specific<br />
FPGAs. Def<strong>in</strong><strong>in</strong>g global and regional clocks<br />
<strong>in</strong> detail and perform<strong>in</strong>g clock-requirement<br />
analysis and <strong>in</strong>itial floor plann<strong>in</strong>g will make<br />
our flow more efficient, enabl<strong>in</strong>g us to rapidly<br />
design value-added products.<br />
For more <strong>in</strong>formation, contact eInfochips<br />
at sales@e<strong>in</strong>fochips.com.<br />
Fourth Quarter 2008 Xcell Journal 39