12.12.2012 Views

Xcell Journal: The authoritative journal for programmable ... - Xilinx

Xcell Journal: The authoritative journal for programmable ... - Xilinx

Xcell Journal: The authoritative journal for programmable ... - 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.

System Communications<br />

Developing applications to run in FPGAs<br />

has become easier, in part because of the<br />

advances made in design flows, tools, and<br />

general awareness of how to program<br />

FPGAs. Tools such as <strong>Xilinx</strong> ® System<br />

Generator and other high-level implementation<br />

methodologies enable developers to<br />

quickly translate their algorithms from<br />

math-level functions into working FPGA<br />

algorithm blocks.<br />

Once developed, connecting these<br />

algorithm blocks together is a complex<br />

and error-prone task. Even more complex<br />

is the connection of algorithms in multiple<br />

FPGA applications and the communication<br />

with external interfaces and<br />

backplanes.<br />

This interconnectivity inside, the area<br />

outside and between FPGAs is termed “system<br />

communications” and can consume<br />

the vast majority of design time in many<br />

applications, distracting developers from<br />

their key expertise in the application being<br />

implemented. High-level algorithm design<br />

tools do not generally make provisions <strong>for</strong><br />

implementation of system communications,<br />

so although the algorithm implementation<br />

has been made easier, system<br />

communications remains complex, error<br />

prone, and time consuming.<br />

DIMEtalk: <strong>The</strong> Concept<br />

Looking at the needs of FPGA application<br />

developers, we established key requirements<br />

<strong>for</strong> a system communications tool:<br />

• Scalability, catering to designs of all<br />

sizes and designs distributed across<br />

multiple FPGAs<br />

• Flexibility, tailored to the needs of the<br />

application<br />

• Easy algorithm interfacing, complementing<br />

algorithm implementation<br />

• Easy implementation, ideally through a<br />

software tool<br />

• Resource-friendly, minimizing hardware<br />

resource requirements<br />

Looking beyond the FPGA world, the<br />

majority of data communications take<br />

place across some <strong>for</strong>m of data network.<br />

Data networks are appealing because of the<br />

flexibility and scalability they provide.<br />

When we developed the early DIMEtalk<br />

tool at Nallatech, we intended it to be primarily<br />

network-based <strong>for</strong> these reasons.<br />

So in essence, DIMEtalk is networkbased<br />

and meets identified needs by<br />

providing:<br />

• A high-level software tool to enable users<br />

to develop communication networks<br />

• An intelligent packet-based network –<br />

routing tables automatically defined by<br />

software<br />

• Easy user node interfaces – block<br />

RAM, FIFO, memory map<br />

• Automatic FPGA-synthesizable code to<br />

represent the network<br />

• “Small footprint” network elements <strong>for</strong><br />

efficient use of resources within <strong>Xilinx</strong><br />

FPGAs<br />

Physical Communications Infrastructure<br />

We had to define the physical infrastructure<br />

of the tool – the network elements that<br />

would exist within the FPGA. We analyzed<br />

a number of data networking standards to<br />

assess their viability <strong>for</strong> use within FPGAs,<br />

but existing standards lacked the required<br />

flexibility and resource efficiency. For this<br />

reason, we developed a dedicated simplified<br />

network protocol and network infra-<br />

DIMEtalk Router<br />

DIMEtalk PCI Edge<br />

DIMEtalk Memory Node<br />

PCI Express Endpoint<br />

10G Ethernet MAC<br />

1G Ethernet MAC<br />

RapidIO Logical and Transport<br />

RapidIO PHY<br />

FPGA Slice Resource Requirements<br />

structure. <strong>The</strong> network elements used in<br />

DIMEtalk are as follows:<br />

• “Routers” direct data around the<br />

network<br />

• “Nodes” are the user interface to the<br />

network and can be connected to user<br />

application designs<br />

• “Bridges” move data between physical<br />

devices across a defined physical media<br />

(<strong>for</strong> example, between FPGAs)<br />

• “Edges” are used <strong>for</strong> protocol conversion<br />

to another data transfer standard<br />

(such as PCI, VME, or USB on<br />

Nallatech systems)<br />

From a users’ perspective, nodes within<br />

the network are the most important; these<br />

are the points within the network where<br />

you connect your algorithm blocks. <strong>The</strong><br />

available interfaces are block RAM, FIFO,<br />

and memory map-based, which makes<br />

developing compatible interfaces within<br />

algorithm blocks and connecting these to<br />

the network easy.<br />

In runtime, packet-based transfers are<br />

used across the network, enabling the transfer<br />

of data between nodes within FPGAs and<br />

also to backplane interfaces and host systems.<br />

Because of the highly optimized<br />

network protocol and low overhead implementation<br />

used in DIMEtalk, the efficiency<br />

of data transfers is as high as 97%.<br />

0 500 1000 1500 2000 2500 3000 3500 4000 4500<br />

FPGA Slices<br />

Figure 1 – DIMEtalk network element resource usage comparison<br />

Winter 2004 <strong>Xcell</strong> <strong>Journal</strong> 105

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

Saved successfully!

Ooh no, something went wrong!