In case you missed it, the FPGA Prototyping for SoCs webinar happened last week. I did the opening ceremonies which I will run through briefly here or you can go straight to the replay HERE.
FPGA prototyping is one of the fastest growing market segments we track on SemiWiki which brings us to the topic at hand: FPGA Prototyping for SoCs presented by S2C. Founded in San Jose, California, S2C has been successfully delivering rapid prototyping solutions since 2003.
Joining me today is Richard Chang, Vice President of Engineering at S2C. Richard has a Masters degree in Electrical engineering from the University at Buffalo and more than 20 years experience designing chips, including two US patents.
FPGA prototyping is a method to create a prototype of an SoC, ASIC, or System for the purpose of logic verification as well as early software development. FPGA prototyping today is used in all different types of applications such as consumer electronics, communications, networking, IOT, data center, autonomous driving, and artificial intelligence. FPGA prototyping can run at or close to real system speed in the ranges of tens of MHz and thus able to boot OS, run applications, and find deeply embedded bugs – significantly shortening the design validation time. FPGA prototypes are also affordable and therefore a large number of systems can be deployed to increase test coverage, shorten design validation time, and reduce the project risk.
With the advancement of software tools available around FPGA prototyping, FPGA prototypes today can be used throughout most design stages. Many commercial FPGA prototypes can link with the simulation environment through a transaction link such as AXI bus. This allows designers to start prototyping their idea on FPGAs early in the design cycle with part of their designs and test benches still in C/C++. FPGA prototypes are also ideal for block level and IP level verification.
It’s always a good practice to make sure each of your design blocks work before you put them together. In addition, many IP blocks today come from 3[SUP]rd[/SUP] party vendors or different design groups in your company. Prototyping with FPGAs first allows you to understand the behavior of these IP blocks at the system-level, easing system integration.
The next step is naturally integrating the entire system on FPGA prototypes. It will usually involve 2 things: multiple FPGAs and daughter cards. Most SoC designs will easily require 2, 4 or an even larger number of FPGAs to fit, and thus requires partitioning the designs as well as doing pin-multiplexing between the FPGAs as usually the interconnects between FPGAs after partitions are much larger than the available physical pins. This process can now be easily managed by partition tools such as Player Pro from S2C. You would also need daughter cards to hook up to real systems such as cameras, displays, memories or network connections. So, the ideal FPGA prototyping system needs to have good I/O expansion capability and a large library of daughter cards.
Finally, FPGA prototypes are used for early software development before the real silicon is available. Again, this is possible because FPGA prototypes run at or close to the real system speed and they are cost-efficient. Here’s a quick summary of FPGA prototyping benefits:
- FPGA Prototyping can run at tens to hundreds of MHz while simulations are in range of tens of Hz and emulation in the range of hundreds of KHz.
- FPGA Prototyping is much faster and therefore enables software development while other technologies may require hours to boot just the SoC OS.
- FPGA prototyping can hook up to real system targets such as video inputs and outputs, network traffic, and test equipment. Other technologies would need speed bridges or a virtual traffic generator which may add complexity and not mimic the real world environment.
- FPGA prototyping systems are usually small and portable allowing testing in real world environments or you can even do customer demonstrations.
- With all the benefits above, FPGA prototyping systems are meant to catch those really hard to find bugs that need lots of data and lots of runs.
- Finally, the cost of FPGA prototyping is a small fraction of Emulation and therefore allows a large number of systems to be deployed for concurrent development thus shortening your product development schedule.Headquartered in San Jose, CA, S2C is a worldwide leader in providing both hardware and software solutions for FPGA prototyping. S2C has a team of more than 60 people that is dedicated to delivering FPGA prototyping solutions serving more than 400 customers worldwide over the past 15 years.
The S2C Prodigy Complete Prototyping Platform consists of 6 key components which are illustrated here:
- Prodigy Logic Modules are the main FPGA boards and they come in different configurations: Single, Dual and Quad. Xilinx and Intel Altera FPGAs.
- Prototype Ready IP are available through off-the-shelf daughter cards and S2C has more than 80 different types such as: USB, PCIe, Ethernet, HDMI, and different types of memories. Most daughter cards are shipped with test designs so you can ensure they work out-of-box.
- ProtoBridge is an AXI transaction link over PCIe and allows FPGA prototypes to communicate with simulation environments in workstations.
- PlayerPro provides runtime control of your FPGA prototyping hardware remotely as well as the partitioning of your designs.
- The MDM Multi-Debug Module allows concurrent capture of waveforms from multiple FPGAs on an external memory for very deep debugging.
- Finally, multiple Prodigy Logic Modules can be linked together (in different configurations) and can be hosted in a Cloud Cube chassis.”With that I will turn it over to Richard for a more detailed discussion on FPGA prototyping for Socs”
Richard then goes into more detail of how you FPGA Prototype an SoC finishing with a video of an HDMI interface. The Q and A section was very good, here are the questions we had time for:
- How do people decide between Xilinx and Intel FPGAs for prototyping?
- I am familiar with Xilinx FPGAs, if I switch to an Intel FPGA platform, will it be difficult to convert my design?
- The PlayerPro software sounds interesting, what more can you tell me about it?
- How many FPGAs can your Multi-Debug Module support concurrent capture of waveforms?
- How fast can we really run our design using FPGA prototyping?
- I have daughter cards based on FMC-HPC mezzanine interface. Can I connect them to S2C prototyping boards?
- Do you any tools to support pre-loading data file into BRAM (block memory) and DDR3/DDR4 memory? And how fast are these – bandwidth?
- Our legacy daughter cards have 3.3 and 5 volts. But I see that most modern FPGAs support up to 1.8V. Do you provide any voltage level shift capability?For more information check the REPLAY. You can also download our book Prototypical HERE.