Global Sources
EE Times-India
EE Times-India > EDA/IP

Flow is shaky for programmable SoCs

Posted: 01 Mar 2001     Print Version  Bookmark and Share

Keywords:fpga  cpld  soc  xtensa  voip 

There is a significant trend happening in SoC design: They are going programmable. Programmable in this context means SoC designs implemented on complex programmable logic devices (CPLDs) and FPGAs. This has become possible only recently, thanks to the greater density of today's programmable devices and the availability of new, small, efficient microprocessors that form the heart of SoC designs. Unfortunately, the CAD flows for programmable SoC designs are far from mature or robust.

To illustrate that point, it is useful to examine in detail all aspects of a typical FPGA SoC design flow: processor selection and design, verification, synthesis, floor planning, routing and debugging. We use as an example an actual design of a voice-over-Internet-protocol (VoIP) phone with a Web-based gui for control. The target clock frequency was 25MHz.

The design uses an Altera Apex20K400 as the programmable platform because it is the largest FPGA at present. In addition to the microprocessor, the system also included some peripherals and an interconnecting bus. The microprocessor was, by far, the most complex part of the system to implement.

Processor selection

It is extremely important to thoroughly research your processor and FPGA selection up front. The advantages offered when configuring your own application-specific processor are very powerful. However, this capability can also seem somewhat overwhelming, especially if you lack experience with microprocessor architecture and design. Fortunately, there are alternatives that allow engineers to tailor their processor without the headaches of a "from-scratch" design. These alternatives are offered by processor IP companies, which make tools that abstract processor architecture from the underlying design. Once your processor is configured, these tools automatically deliver a fully designed and verified processor within approximately two hours. The VoIP design example discussed here uses a similar tailored processor scheme, based on the Tensilica's Xtensa processor.

After the selection and configuration of a processor, the rest of the system design is relatively straightforward. The next step is to select a bus, a memory architecture, peripherals and I/O. With the system architecture completed, it is time to move on to the implementation phase of the project. In the VoIP design example, Verilog was chosen as the RTL. Once assembly of the system RTL was complete, the next step was to verify correct operation in simulation before programming the FPGA. Many FPGA designers skip this verification step since there is very little risk in programming an FPGA. That approach works in smaller systems, but is often unworkable when trying to debug large SoC designs.

The first step in verification is to construct a system-level testbench. This testbench includes the portion of the design contained within the FPGA as well as any peripherals or memories outside the core. The inclusion of memories external to the FPGA is especially critical if the processor fetches program or data from these memories, as is often the case.

After synthesis, Altera's Quartus software was used to route the design in less than two hours. The routed design reached the performance goals of 25MHz and 45 percent utilization. Key to this effort was the floor-planning tools of the vendor, the ability to group logic. Although 25MHz may not seem fast, it was more than adequate for this design. The reason was processor efficiency. Because the processor was custom tailored to the application, it did not need a clock rate as high as might be required by a conventional processor. The application was able to run an OS with a full TCP/IP stack, G.711 vocoder and GUI Web server with cycles to spare for future enhancements. That is impressive processing power for a 25MHz clock rate.

After the layout phase, the designers proceeded to program and boot the design. It was soon discovered that in a device with hundreds of thousands of gates, a low-level approach was not practical. Using the Xtensa on-chip debug (OCD) module that the designers added to the processor during configuration gave them all of the capabilities of an in-circuit emulator.

In the end, the example design resulted in a VoIP telephone on a single FPGA within three weeks. The design ran at the targeted 25MHz and was able to support the desired Web-based GUI and full TCP/IP protocol stack. The parts of the flow that worked well were floorplanning and routing of the FPGA.

Leo Petropoulos

Director of Applications Engineering

Tensilica Inc.

Comment on "Flow is shaky for programmable SoCs"
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top