05.03.2013 Views

Automotive Innovators Hit High Gear in - Xilinx

Automotive Innovators Hit High Gear in - Xilinx

Automotive Innovators Hit High Gear in - Xilinx

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!