Posted by Michael Posner on March 6th, 2014
I often get asked about enabling early software development and there are a number of technologies that can help here. Of course the earliest way to enable software development is with Virtual Prototyping using tools like Synopsys’ Virtualizer. A virtual prototype has the advantage that it can be done pre-RTL so at any time during the project phase. This is a great approach but the specific question I was asked this week was is there any way to run software against a new RTL design before a processor is integrated into the design. Again, easy answer, Hybrid Prototyping, this is where you typically model the CPU subsystem in the virtual prototype and connect to the FPGA-based prototype via transactors.
Great right!….. Well no, this was not what this specific customer wanted to do. They wanted to create a standalone FPGA-based prototyping setup that would enable early software development and act as a “boxed” customer demonstration. They wanted to be able to connect two of these systems together to show complete end-to-end capabilities. These would also be the sample platforms that they would use for compliance testing and interoperability tests.
<Click pictures to enlarge>
The customer does not have access to the RTL for the 3rd party CPU that they plan to use in the final SoC otherwise I would have suggested just modeling the complete SoC in HAPS.
It just so happens that the ARC Software Development Platforms have just been made available: Synopsys Launches DesignWare® ARC® Software Development Platforms:
These are pre-Verified Hardware and Software Platforms Integrate ARC Processors, Peripherals, Operating Systems and Software Development Tools to Enable Immediate Productivity. You can watch a video of the platform in action from this page. http://www.synopsys.com/dw/ipdir.php?ds=arc-software-development-platform
I showed this to the customer and they immediately stated that while the ARC is great it’s not the embedded processor they are using in their end SoC design. I know that but at a software development application level, C code is just C code right? Silence……. Silence…. Right….. This little ARC software development platform include HAPSTrak connectors designed to enable the board to be connected to HAPS systems. There is a bus routed across this connection enabling the ARC to rapidly integrated into the rest of the system under test.
Here is an example setup like this. In the picture you can see the HAPS-DX connected to the ARC Software Development Platform via standard HAPStrak cables.
The ARC Software Development Platform also supports connection to the higher capacity HAPS-70 systems (it will even connect directly to the HAPS-60 and HAPS-50 systems if you already had those available)
Sorry, picture taken in Fuzz-o-Vision
The software runs on the ARC, in our above example Linux is booted and application software can be developed to manage the design under test. The application written in C code can be made portable so it can be quickly re-compiled for other embedded processors.
Problem solved as easy as 1,2,3! #1 – Prototype RTL in HAPS, #2 – Connect HAPS to ARC Software Development Platform, #3 – Start software development. As this setup is relatively small it’s easy to box it up and use it for demonstrations, compliance testing and highly portable for interoperability and plug fests. The customer pointed out that their might be a couple more steps in the process but as I like to say “Don’t let the technical details get in the way of a good story” Mick(TM). As you can see this little platform is more than just a platform enabling early software development.
What do you think of this solution? Could you utilize something like this?
Finally can you guess what my new home project is from this picture? I should point out that this picture shows a prototype of one of the parts, not the final design.