<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: PCI express from a Xilinx/Altera FPGA to a Linux machine: Making it easy</title>
	<atom:link href="http://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/feed/" rel="self" type="application/rss+xml" />
	<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/</link>
	<description>Anything I found worthy to write down.</description>
	<lastBuildDate>Thu, 26 Mar 2026 13:15:15 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: eli</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-776</link>
		<dc:creator>eli</dc:creator>
		<pubDate>Wed, 25 Apr 2012 06:58:37 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-776</guid>
		<description>&lt;strong&gt;Questions &amp; Comments&lt;/strong&gt;

Since the comment section of similar posts tend to turn into a Q &amp; A session, I’ve taken that to a separate place. So if you’d like to discuss something with me, please post questions and comments &lt;a href=&quot;http://xillybus.com/forum/posting.php?mode=post&amp;f=4&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot;&gt;here&lt;/a&gt; instead. No registration is required.

&lt;strong&gt;This comment section is closed.&lt;/strong&gt;</description>
		<content:encoded><![CDATA[<p><strong>Questions &#038; Comments</strong></p>
<p>Since the comment section of similar posts tend to turn into a Q &#038; A session, I’ve taken that to a separate place. So if you’d like to discuss something with me, please post questions and comments <a href="http://xillybus.com/forum/posting.php?mode=post&#038;f=4" target="_blank" rel="nofollow">here</a> instead. No registration is required.</p>
<p><strong>This comment section is closed.</strong></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eli</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-750</link>
		<dc:creator>eli</dc:creator>
		<pubDate>Thu, 22 Mar 2012 15:09:43 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-750</guid>
		<description>If we&#039;ll take the SPI as an example, the FPGA logic will need to serialize/deserialize the data and then connect it with a standard FIFO. This is not completely trivial if you&#039;re not experienced with FPGA design, but this logic has to be there this way or another.

As for the Linux side, there is no work at all. Xillybus gives you the data directly through a device file interface.</description>
		<content:encoded><![CDATA[<p>If we&#8217;ll take the SPI as an example, the FPGA logic will need to serialize/deserialize the data and then connect it with a standard FIFO. This is not completely trivial if you&#8217;re not experienced with FPGA design, but this logic has to be there this way or another.</p>
<p>As for the Linux side, there is no work at all. Xillybus gives you the data directly through a device file interface.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Diego</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-749</link>
		<dc:creator>Diego</dc:creator>
		<pubDate>Thu, 22 Mar 2012 13:43:05 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-749</guid>
		<description>Hi there!

First of all, I&#039;m not a FPGA guy. I&#039;m a linux device drivers developer.

I&#039;m working in a project which has some communication (i2c,spi and MDIO) will be performed by the FPGA. The CPU will access these buses via PCI Express.
What has to be done in FPGA and PICe linux device driver to allow kernel to see the communication interfaces?</description>
		<content:encoded><![CDATA[<p>Hi there!</p>
<p>First of all, I&#8217;m not a FPGA guy. I&#8217;m a linux device drivers developer.</p>
<p>I&#8217;m working in a project which has some communication (i2c,spi and MDIO) will be performed by the FPGA. The CPU will access these buses via PCI Express.<br />
What has to be done in FPGA and PICe linux device driver to allow kernel to see the communication interfaces?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eli</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-730</link>
		<dc:creator>eli</dc:creator>
		<pubDate>Wed, 29 Feb 2012 09:28:47 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-730</guid>
		<description>Regarding where the data can be &quot;found&quot; when you don&#039;t use Xillybus: The data isn&#039;t stored anywhere. It arrives as packets which you need to handle one by one with a state machine you develop. On the PC side, yes, you need to develop or adopt some kind of driver.

As for the throughput: All data transfers are initiated by the FPGA (&quot;Initiator&quot;). There is no exact meaning to packet size and transfer size when working with Xillybus, because the system presents a stream interface. So basically, I just ran a program that reads or writes to a file descriptor as fast as possible (typically a few GBs), and divided the amount of data with the time elapsed.</description>
		<content:encoded><![CDATA[<p>Regarding where the data can be &#8220;found&#8221; when you don&#8217;t use Xillybus: The data isn&#8217;t stored anywhere. It arrives as packets which you need to handle one by one with a state machine you develop. On the PC side, yes, you need to develop or adopt some kind of driver.</p>
<p>As for the throughput: All data transfers are initiated by the FPGA (&#8220;Initiator&#8221;). There is no exact meaning to packet size and transfer size when working with Xillybus, because the system presents a stream interface. So basically, I just ran a program that reads or writes to a file descriptor as fast as possible (typically a few GBs), and divided the amount of data with the time elapsed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Smith</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-728</link>
		<dc:creator>Smith</dc:creator>
		<pubDate>Wed, 29 Feb 2012 06:42:35 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-728</guid>
		<description>Thanks Eli for the response on Xillybus throughput. Below are my definition on Initiator &amp; Target.

Initiator (or Master): FPGA has DMA type functionality and can transfer the data from FPGA to Host without requiring Memory Read packets from the Host.

Target: This is more like Slave where the Host initiates all write/read transactions and FPGA just responds to Memory Writes and Memory read packets.

What packet size and transfer size did you use for throughput calculations?</description>
		<content:encoded><![CDATA[<p>Thanks Eli for the response on Xillybus throughput. Below are my definition on Initiator &amp; Target.</p>
<p>Initiator (or Master): FPGA has DMA type functionality and can transfer the data from FPGA to Host without requiring Memory Read packets from the Host.</p>
<p>Target: This is more like Slave where the Host initiates all write/read transactions and FPGA just responds to Memory Writes and Memory read packets.</p>
<p>What packet size and transfer size did you use for throughput calculations?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: harini</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-727</link>
		<dc:creator>harini</dc:creator>
		<pubDate>Wed, 29 Feb 2012 06:29:56 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-727</guid>
		<description>i am new to fpga and pcie so without using xillybus cant we know the exact location of where the data is stored in fpga by pcie and also when pcie is connected to the linux should we have a kernal module to transfer the data from pc????</description>
		<content:encoded><![CDATA[<p>i am new to fpga and pcie so without using xillybus cant we know the exact location of where the data is stored in fpga by pcie and also when pcie is connected to the linux should we have a kernal module to transfer the data from pc????</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eli</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-724</link>
		<dc:creator>eli</dc:creator>
		<pubDate>Tue, 28 Feb 2012 09:45:58 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-724</guid>
		<description>In the FPGA, you&#039;ll fetch the data from a standard FIFO. This is explained in Xillybus&#039; site.</description>
		<content:encoded><![CDATA[<p>In the FPGA, you&#8217;ll fetch the data from a standard FIFO. This is explained in Xillybus&#8217; site.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: harini</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-723</link>
		<dc:creator>harini</dc:creator>
		<pubDate>Tue, 28 Feb 2012 07:36:20 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-723</guid>
		<description>hi,i am working on a project where i need to send the data from the pc to fpga(virtex6) through pcie on linux.and i need to know where the data is storing on the fpga so that i can retrive it and again process it and send it to mac layer.</description>
		<content:encoded><![CDATA[<p>hi,i am working on a project where i need to send the data from the pc to fpga(virtex6) through pcie on linux.and i need to know where the data is storing on the fpga so that i can retrive it and again process it and send it to mac layer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: eli</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-722</link>
		<dc:creator>eli</dc:creator>
		<pubDate>Mon, 27 Feb 2012 15:34:02 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-722</guid>
		<description>I&#039;m not 100% sure I understood your question, so I&#039;ll try the best I can.

Throughput: The upstream (from FPGA) direction offers 200 MB/s. Downstream gives slightly lower than 100 MB/s for a single stream, but two independent streams can run in parallel and reach a total of nearly 200 MB/s.
All this holds for a 1x connection as offered by Spartan-6T. Virtex-6 goes higher.

Flow control: FPGA logic interfaces with a FIFO&#039;s empty or full lines. The rest of the flow control is handled by Xillybus&#039; logic and drivers transparently, much by sensing the FIFO&#039;s control signals on the other side.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not 100% sure I understood your question, so I&#8217;ll try the best I can.</p>
<p>Throughput: The upstream (from FPGA) direction offers 200 MB/s. Downstream gives slightly lower than 100 MB/s for a single stream, but two independent streams can run in parallel and reach a total of nearly 200 MB/s.<br />
All this holds for a 1x connection as offered by Spartan-6T. Virtex-6 goes higher.</p>
<p>Flow control: FPGA logic interfaces with a FIFO&#8217;s empty or full lines. The rest of the flow control is handled by Xillybus&#8217; logic and drivers transparently, much by sensing the FIFO&#8217;s control signals on the other side.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Smith</title>
		<link>https://billauer.se/blog/2011/04/pcie-pci-express-tlp-xilinx-fpga-linux-pc-embedded-x86-arm-spartan/comment-page-1/#comment-721</link>
		<dc:creator>Smith</dc:creator>
		<pubDate>Mon, 27 Feb 2012 15:15:28 +0000</pubDate>
		<guid isPermaLink="false">https://billauer.se/blog/?p=1059#comment-721</guid>
		<description>Does Xillybus IP has both PCIe Initiator &amp; Target functionality in FPGA? What is the achieved PCIe throughput in Spartan-6 with Linux/Windows driver assuming the user interface does not apply any back pressure/flow control?

I am looking at an application which needs 100MB/sec in each direction.

Thanks</description>
		<content:encoded><![CDATA[<p>Does Xillybus IP has both PCIe Initiator &amp; Target functionality in FPGA? What is the achieved PCIe throughput in Spartan-6 with Linux/Windows driver assuming the user interface does not apply any back pressure/flow control?</p>
<p>I am looking at an application which needs 100MB/sec in each direction.</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
</channel>
</rss>
