Jump to content
  • 0

Nexys video Artix-7 board - PCIe Ethernet FMC high throuput and low latency connections/applications


QuantAI-go

Question

Hello,

I am a beginner in FPGA development. I would like to design applications in Financial Technology, Quantitative Risk Management/Simulation, High Frequency / Low Latency Algorithmic Trading, AI / Machine Learning and Digital Signal Processing.

I am planning to buy the Nexys video Artix-7 to start developing the core FPGA design skills and progressively prototype benchmark/ Proof-of-Concept (PoC) demo applications using the full computational capacity of the Artix-7 XC7A200T. 

Could you please advise what would be the best data/peripheral connection options to achieve high throughput and low latency on this board?

Is it possible to extend the board with PCIe?

To get the full Ethernet capacity, could you please advise if purchasing a TEMAC IP license is advised and at what price?

What are the alternative options and industry standards?

Many thanks

YM

 

 

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

You're in Luck! Here at Quick-draw Bill's University of Cosmetology, Neuro-Surgical, and Electrical Engineering Arts we equip people for the multi-dimensional skills required by tomorrow's workplace. Sorry... just kidding... haven't finished my morning cup of coffee.

So while I can wrap my head around what most of the things you mention might entail I'm still having difficulty figuring out how all them are connected. Fortunately, I'm awake enough to figure out where to start the interrogation. You didn't think that you could come here and get help without an interrogation did you?

To me the obvious place to start is by side-stepping the complicated questions and getting straight to business. Why did you decide that a Nexys Video is the ideal board for completing your project portfolio? Is there a lot of video involved? If so I'd recommend spending the extra money on a Genesis2 as the FPGA is much more capable. But really that question is intended only to get you focused on a basic issue. Let's put aside what the FPGA device requirements might be since there's no detail on which to make such an assessment. You obviously want the most performance that you can afford in terms of selecting an FPGA device and will have to settle for designing an application that fits its capabilities. Evidently, you've already determined that and Artix 200T is sufficient for your needs. Perhaps telling us how you made that determination might help you get a helpful answer.

As for selecting an FPGA board platform for learning FPGA development or some generic Verilog or VHDL experimentation this is a bit more solvable. First, you need to decide what features your platform requires. Does it need external memory? Does it need Ethernet connectivity? Does it need to be extensible (work with specific add-on boards)? Clearly, you want Ethernet connectivity. I know a little about what's involved in high-speed, low latency trading applications and I can tell you that they don't involve a MicroBlaze and proprietary MAC IP. There are no FPGA boards available for you to buy that are suitable for this actual application. That doesn't mean that you can't do 'deep packet inspection' and try and emulate 'low latency' whatever that means for your demonstration project. It does mean that you should be doing everything in an HDL, that you code by yourself. This implies that you have a very good understanding about all of the layers that make up Ethernet. You should know that what you can do in a particular FPGA device using only logic narrowly crafted for a particular purpose in VHDL or Verilog is very different than what you can do using vendor provided IP with a MicroBlaze. This design flow will use up significant resources of your FPGA device that you might need for actual working logic. In fact, MicroBlaze and low latency are headed in opposite directions.

You ask: "what would be the best data/peripheral connection options to achieve high throughput and low latency on this board? Is it possible to extend the board with PCIe?". This implies that moving data between your FPGA platform and a PC is a critical specification. Notice that I left of the part about 'for this board' because I don't think that you're ready to make that call yet. A board with a 1Ge port, DDR memory, PCIe and HSMC connectors for extensibility could be the Cyclone V GT Devlopment board. There is even a possibility for developing applications using that PCIe and I'm betting that you are fairly clueless as to what that entails. That wasn't an insult. That means that there are a lot of things that you need to understand before you  decide that an interface is what you want to use. Of course nobody doing high-speed trading is thinking about 1Ge Ethernet except possibly as a debug port, so perhaps 10/100 is adequate for your project demonstration.

 

2 hours ago, QuantAI-go said:

full computational capacity of the Artix-7 XC7A200T

You'll need to explain yourself a bit clearer here because your choice of words is telling me that you aren't quite grasping what it is that an FPGA does. This is a big problem. You don;t want to start designing your projects to work on a platform that doesn't support its requirements.

Rule 1 of selecting an FPGA development platform: Don't choose a board that you hope will meet your needs. Figure out what your project requires and choose a board that supports it. This implies that the first step is defining a project. Specifying the project requirements in terms of hardware. Lastly, looking around for the best fit within your budget.

Edited by zygot
Link to comment
Share on other sites

  • 0

Hi,

I don't know if this applies to you but there is a very common pitfall, that is first doing isolated, abstract hardware / platform research and then only learning FPGA development. I am not certain with this statement - maybe it will work out for you. But I see a very high risk that it will not, even for bright people ... it's a bit like "buy a guitar, learn to play, form a band, become a rock star". For the vast majority, this plan does not succeed, and especially those who get stuck on the "buy a guitar" part.

 

Link to comment
Share on other sites

  • 0

BTW, now that Altera pops up (BTW, please read the above "Bill's University" post carefully), there are boards that seem quite specifically made for your requirements list, since you're probably not the first one to use an FPGA for trading. You might search around what they use in network research.

From my own past, I remember Terasic DE-4 (by now a very old board) and it does have 4x onboard ethernet, PCI, DRAM, even ships with jumper cables to cascade several boards via high-speed serial. But as said, selecting hardware should be the least of your worries (possibly pick one ethernet chip early if you intend to do spin your own high-performance drivers and TCP/IP stack).

Digilent will probably have something similar if you search a little.

Edited by xc6lx45
Link to comment
Share on other sites

  • 0
1 hour ago, xc6lx45 said:

Digilent will probably have something similar if you search a little.

Just when I was about to complement @xc6lx45on posting a more succinct reply by focusing on the most glaring problem with your question he interrupts my train-wreck of thought with a second post.

A sure way of de-railing ( notice how I can keep to a theme? ) a project is to under-estimate the requirements or complexity involved. If you anticipate that learning how to do useful FPGA development is a trivial step toward completing an FPGA-centric application then you are in for some unpleasant surprises. I've know people who were brilliant enough to seemingly side-step all of the preliminary preparatory work and experience that mere mortals like myself would need in order to accomplish something remarkable but this is truly a rare individual. Even if you know everything that need to be known about the topics and theory of a project there's another couple of levels of complexity involved with tools, IP, licensing etc to trip you up. Lot's and lots of levels of details waiting to complicate your intentions.

Possibly the best question for @QuantAI-goto deal with is: "Why do you believe that an FPGA is necessary or even appropriate for your particular efforts?"

For anyone other than the original questioner reading this I need to make a comment about FPGA vendors. I've used the tools of every FPGA vendor out there and a few who've gone the way of the Moa. Anyone out there remember WARP?  It's not unusual for me to be doing a project involving both Intel and Xilinx tools and devices and involve  more than one board with an FPGA on it. Assuming that you are already competent in an HDL you have to be very careful about hidden costs and issues that might force a rethinking about how you might implement a particular interface. Intel is especially scrouge-like in terms of allowing potential customers to evaluate a part for a project. You can't create a bitstream for all Cyclone devices these days without purchasing a 1-year license for the tools.  Want to use a Cyclone10 LP? Fine, you can use the free tools. Want transceivers or something akin to older Cyclone parts like Cyclone V? Too bad you need to buy license for a version of Quartus that only lets you create a bitstream for the Cyclone10 GX devices. Want to try out a higher end part? Too bad, you need to buy a license for yet another version of Quartus that lets you target any device, except of course those Cyclone10 GX parts. Think that a Quartus license is cheap? Go find out. In my experience some projects can be easily done using Intel devices and their supporting hardware ecosystem but might be way too expensive for other projects. There's much less overlap between what you can do, in a limited budget, between the Intel universe and Xilinx universe than you might hope for. It's mostly due to different marketing strategies. Both companies use a heavy hand in controlling their ecosystems and the low end ( in terms of revenue ) get serviced. Do your homework and choose wisely before spending money.

Edited by zygot
Link to comment
Share on other sites

  • 0

Thank you both for your informative posts and support to the FPGA community. Please find below more background on my questions.

I have no experience in FPGA design and development. My primary objective is to buy my first FPGA board to learn the basics through examples in Verilog/VHDL. The board is not meant to meet all the requirements of the business/production applications mentioned. My objective is more to invest in a board that will allow me to progress for some time and ideally design small projects/applications. The wide range of potential learning projects applications mentioned is coming from my education background in ECE (digital signal processing, communications/networking and machine learning) and my professional experience in quantitative finance and financial markets.

Of course, the choice of the Nexys video is not definitive and your expert recommendations are very much appreciated. From the reviews on different forums, the Nexys 4 seemed to be a good FPGA educational board. I thought that the Nexys video would give me enough capabilities to design small experimentation projects/applications in my areas of specialization. The purpose of my novice technical questions were also to assess the potential limitations/scalability of this kind of board and more generally the IP, licensing and hidden costs.

Answering your question: "Why do you believe that an FPGA is necessary or even appropriate for your particular efforts?" I am not sure if the FPGA will be appropriate for my efforts. What I do know is that most of the algorithms, simulations, models and classifiers I have designed or worked on are running on FPGAs now with significant acceleration/latency improvements. Of course, ultimately if I decide to develop business applications on FPGAs, I will make sure to assess the requirements and I might certainly not do the design myself.

Link to comment
Share on other sites

  • 0

One question you should answer for yourself (after deciding on Xilinx, which is more or less implied by the nature of the forum) is whether you want to go for plain FPGA or Zynq with embedded ARM processor. Reading between the lines of your post, I suspect strongly that your vision will map better to a conventional CPU-centric architecture with some FPGA accelerators than 100 % RTL (or even worse, a softcore CPU added as an afterthought after you've hit the wall and start to do some simple math on HOW MUCH EXACTLY will it cost to have every line of your code mapped to LUTs that wait most of the time for that particular line of code to get executed). Now my Zynq advice is a double-edged sword - the edge facing your way is more of a bludgeon (complexity) but it hurts nonetheless. Somewhat less so if you hire Zynq developers from the start but doing that without serious hands-on experience... opens up a can of worms or maybe a barrel.

Link to comment
Share on other sites

  • 0

 

4 hours ago, QuantAI-go said:

Nexys 4 seemed to be a good FPGA educational board. I thought that the Nexys video would give me enough capabilities to design small experimentation projects/applications in my areas of specialization.

So, for someone with no background in digital design or FPGA development the cheapest board will do. You don't have to think about external interfaces and advanced IO features. You will be concentrating on learning basic concepts and the tools. The tools are complex enough. There are a number of options under $150. The Arty A7 is a fine way to get started. Once you start getting a feel for how this FPGA stuff works and have started fleshing out the specifics of some of your eventual project goals then you'll know what peripheral interfaces are most important and will be in a position to make a better decision. I would encourage you to resist the idea of growing into a more expensive board that is designed to provide capabilities that you don't need. The Nexys Video is a fine board. I use one myself. As the name implies it's primarily for video applications though I use it mostly for other things. As for hidden costs you should be aware that Digilent doesn't really provide support for all of the features of all of its boards but relies on Xilinx IP and puts the burden on the user to figure out how to use them. The Nexys Video is a good example of this. Unfortunately, this is common among such vendors. It's a good idea to 'test drive' a board that you think that you are interested in to see what you are getting into. A good way to do this is to install Vivado and then download every demo provided by the board vendor and see if you can create a bitstream for it on your own. You will learn about required licenses and issues like tool version compatibility in short order. You can also see the level of support that you''ll get from the board vendor or the tools vendor. There's no scalability; if you need more external memory or FPGA resources or capability you need to buy a new board. Some boards so have a measure of extensibility like an FMC connector. The Nexys Video is one of them. Don't assume that you will find an FMC mezzanine card with the features you want and expect it to work with a particular FPGA carrier board though.

I've done plenty of DSP design work in VHDL using devices less capable than a Artix 35T which is near the low end of Digilent's portfolio. You don't need to use vendor IP either.

I highly encourage you to adopt the Verilog or VHDL design flow even though, up front, the board design flow using vendor IP seems easy. This is especially true for Ethernet; particularly if you want to do something unusual with it.

As for ZYNQ I'd advise this as an unnecessary complexity and distraction for people learning an HDL flow. Understand how to design logic and verify it first. When you have designed your experiment and can partition some elements as being processor efficient verses other elements being logic efficient then you can decide if this is appropriate. Don't get distracted by non-essential frills, especially before you get your 'sea legs'.

I would suggest that you stick to boards with a 14-pin JTAG header for a number of reasons.

[edit] You mention machine learning. Intel is big into this. Terasic has a few inexpensive OpenVino boards for this. The GT version of the C5P is designed to be an machine learning 'accelerator' , though on the low end. I use one myself for other applications. You can use the free tools for this board. Xilinx doesn't have anything comparable to this at an affordable price. At least look around. Both Intel and Xilinx are big into this arena but only for the well heeled. You need to do a lot of homework to figure out where the gotcha are though. in general, the more layers of tools there are the more nasty surprises are waiting for the uninformed.

Edited by zygot
Link to comment
Share on other sites

  • 0

Fun post, on opposite poles of advice .. Zygot (with his good work)  a purist  , XC  a pragmatist  ..  Zygot forgets his lament on broken build tools , and how much time is spent in workarounds     A miserable fact of this industry, esp in PGA  ,  unless U buy a Data I/O ( i think obsolete)   Why invite a nightmare to a newby when alternatives abound

 AS to hiring a programmer,  XC gave better advice when costs were only mildly affected. Zynq / ARM combo.  Better to buy a PCIe Dev Board for $1200 than years wrestling with protocols used in trading on unsupported EVM (& look at Exchange industry and what it offers ( like tick real time price data & volume)  IF that's your business target.

Why buy TEMAC IP license $1000 to $4500 for cores  when functionality is built into a Dev board  free.  Are u going to emulate a NIC  or work in AI with Exchange data ?

YEs  zygot will recommend coding a NIC in VHDL, FIFO s , handlers, buffers , Packet inspection , Firewall rules, threaded event loops, a full stack, then Array processing

 Sounds like fun.  The wheel comes infinitely shaped in this age of revelation.  Note u changed course from Wall St challenge to a job at the hub factory. Very educational

 And u may invent a new type of wheel.  Tho with right inclination you may create a intuitive PGA macro library to allow smoother work in a block diagram flowchart.

That would be worth an adventure providing you gained sufficient background in related art  along the way.  

 

tho if u find yourself back in the original pursuit of high frequency / low latency then get the 8K5   KU115  board for $3860 from Alpha Data when u can afford tools.

https://www.xilinx.com/products/boards-and-kits/1-dw5yg1.html  as the best hardware  or develop modular,  ask Z to port this to Octave (not sure it has simulink) 

https://www.xilinx.com/products/design-tools/vivado/integration/addon-matlab-simulink.html   ..  Unless u think to create your own macro library from scratch.

there u have 2 alternate industry standards.  good luck with the guitar

Link to comment
Share on other sites

  • 0

@RTalis,

I've enjoyed reading your 2 posts; interesting insights.

3 hours ago, RTalis said:

Zygot forgets his lament on broken build tools

Actually, he's constantly battling wits with one or two witless FPGA vendor's tools ( if you don't count each version as a separate tool...) all the time, so he didn't forget.  He just tries to restrict commentary to encompass the minimum , except when he gets off on a tangent. I figure that if you are going to jump into FPGA development from a completely different experiential plane of existence you're already expecting to make the commitment to  do it right. The elephant in the room is the question of whether or not you believe that the FPGA tool vendors will hand you everything that you need to create any application you want using their IP and GUI based tools.

Given the intended sphere of experimentation noted in the questioner's post, I still think that the Cyclone V GT board is the best bet, in terms of initial cost and available support. Yes, you have a lot of work to do with the Ethernet PHY but you can use the Terasic OpenVino PCIe Centos 7 or Windows driver and provided API to do the software application with whatever language tools your pefer to use. The emphasis for getting to something useful is 'lots of work'. One ( of the many ) problem with FPGA vendor support for PCIe. Yes, the tools support the hard PCIe blocks, but good luck with using the board in a PC and connecting it to your software application. One alternative is using cores from Xillybus ( if it supports your platform ) and you can stand communicating to it as a device. The Terasic OpenVino boards are, as far as I know, the cheapest platform available as an entry to experimenting with AI and the like.

I happen to really like Kintex family, especially the UltraScale versions, but Xilinx seems to have lost interest. Avent, at one point had an interesting, and affordable, board based on an UltraScale Kintex but I couldn't buy it from Avnet USA even though the same distributor in Europe has a few in stock. Avent claimed that they couldn't ship one internally to sell to me. I'm thinking that interest in setting up fab schedules to produce a few thousand Kintex Ultrascale devices isn't worth the cost. Could it be that the bill for going fab-less is now due?  Anyway, it seems to me that Xilinx has decided that pushing Kintex is not in its current marketing plan.

So, my takeaway points are: Don't forget about the software drive component of PCIe based applications, and don't forget about device licenses, unless you are flush with enough cash to buy tool licenses every year. At over $3000 per vendor ( or more it you want to use multiple Intel device families ) few of us can ignore the 'hidden' costs.

Edited by zygot
Link to comment
Share on other sites

  • 0

 yes .. target tools are giving way to fresh thinking modular solutions, let alone cross platform tools , let alone Exchange tools ( FAST protocol for eg )

 Full points to Xilinx for getting this far .. even tho leaving many shipwrecks behind,  that's a practical outcome of development.

Personally lost half million, fiddling on WIN  25 years  (without time counted, just Servers , 3rd party tools that promise the earth & cards..PHI for eg

Now gentoo kernel re-builds tops  list of things to do.  U can keep (not)  Kubernetes on WIN, under the hood as a nightmare.  Keep systemD .. memory abstraction.. etc

Get a minimum kernel compiled,  ( that in itself is an ongoing battle )  esp with PGA toolsets that interoperate with the OS.   (The kernal is the OS .. going that way )

Yet Xilinx  offer a practical tool set & PCIe  solution for our original Q  .. giving flexibility for HLS  on Alveo , & migration to optimization  on the Desktop !!

https://www.xilinx.com/publications/solution-briefs/xilinx-algorithmic-trading-solution-brief.pdf

What do u think ?      pushing the flip from hard core FIN  to  low level tinkering ..  one can still tinker with Vitis  on ALVEO, thats great !

also a choice of package .. that must weigh in favor to Al-go obviously well chosen career path (Fintech)  thats on fire, and cannot be deprecated in advice to lowly starter packs ( OK to get feet wet, but also a potential turnoff  to a career path ) Advice : All or nothing

 https://www.xilinx.com/products/app-store/alveo/reference-apps.html?resultsTablePreSelect=xlnxacceleratedworkloads:Financial Computing

with career path in mind , certainly time to save / borrow / parent loan into a serious platform able to tap into the market data stream, otherwise inaccessible

Much better to have VITIS than more powerful 8K5 board  with KU115 , based on interface to critical runtimes already developed ( the Wheel ) & supported

Until u fiddle  with  em..  in  HLS  ( my Q on that.. is it even possible to modify layer 0 / 1 drivers as supplied in this kit ? )  they would be binaries  or  Source ?

 

Edited by RTalis
Link to comment
Share on other sites

  • 0
16 hours ago, RTalis said:

even tho leaving many shipwrecks behind,  that's a practical outcome of development.

Personally lost half million, fiddling on WIN  25 years

There are shipwrecks caused by foolishness and shipwrecks caused by misfortune and shipwrecks caused by guile and noncompetitive practices. The Gates fortune was built on the graveyard of , not only competitors ( worthy and unworthy ) but also 3rd party Windows dev. foolish enough the believe that they would be given a fair shot at financial success investing in the early Windows tools and and the personal desktop juggernaut that was the early days of Microsoft.  For the mainframe tycoons.. good riddance as far as most of us are concerned. For the benefit of the whole low cost computing revolution and all of it's paying customers I don't believe that any untold billions of $$$ of personally selected gifting will atone for what was potentially lost in the possibility of a better today. This goes far beyond technology as every successful tycoon spawns thousands of would be imitators. Well, it's all history... or not as our current and future lives are molded by the past... unless we have the will and power to change society.

BTW I looked at the website of the Kintex vendor that you mentioned and didn't see anything about the board you refer to.

16 hours ago, RTalis said:

Yet Xilinx  offer a practical tool set & PCIe  solution for our original Q  .. giving flexibility for HLS  on Alveo

Well, if you have a large budget then those expensive desktop FPGA accelerator cards from Xilinx and Intel might be great. A large budget isn't available to very many users of the Digilent Forums. So, perhaps I'm missing something. Where are those PCIe drivers for random Xilinx FPGA boards? Every Series 7 device seems to have some sort of PCIe hard controller but I haven't run into those pesky drivers.

Edited by zygot
Link to comment
Share on other sites

  • 0

Hello,

If readers of this thread want to have a technical discussion specifically about FPGA/SoC hardware or the associated software tools in general, I encourage them to post in either the Off Topic or the Technical Based Off Topic Discussions subforums.

Unless there are some further posts that can be made to specifically help the original asker (from what I can see though, most of the relevant advice that is applicable has already been given), there will not be a need to make additional posts to this thread.

Please feel free to message me or make a post in one of the above-mentioned forums if you have any questions about this.

Thank you,
JColvin

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...