**2.1. Structures and architectures**

Advance digital systems are those in which the core is a standard computational device or a combination of them. **Figure 10** shows two examples of this kind of devices integrated into an electronic design. Nowadays, the more important computational devices that take part in the front line of the embedded design market are the following:


**Figure 10.** Examples of advance digital systems.

**Figure 9.** SoCs features.

(picture courtesy of Xilinx).

130 Field - Programmable Gate Array

**Figure 8.** Architecture of SoCs based on programmable logic part (orange) and processing system such as ARM (blue)

To confront the development of those advance digital systems, two methods can be differentiated. The functionality of the desired application can be reached either by a software or hardware method. However, it is fundamental to have a remarkable understanding of both methodologies in order to obtain the best performance and effectiveness in the designs.

Software method:


Hardware method:


The software method is limited by the sequential flow of the instructions and the particular architecture. While the hardware method is limited by the difficulty that implies the design using the hardware programming languages, the time required for develop specific hardware systems and the high cost of those designs. Currently, in order to overcome the drawbacks of both methods, alternative methods must be determined.

This intermediate option is the most utilized nowadays and is known as integrated system, embedded system, or system on a chip (SoC). A SoC is an integrated circuit that includes a combination of the elements below in one single chip:


Currently, the options that enable to develop an application based on a programmable system on a chip such as the devices shown in **Figure 11**:


The increase in the capacity of integration in the manufacturing of the chips has allowed the development and evolution of the embedded systems. **Figure 12** depicts an example of how the integration capacity has been increased over the time.

Design of Digital Advanced Systems Based on Programmable System on Chip http://dx.doi.org/10.5772/66579 133

**Figure 11.** Examples of SoCs (picture courtesy of Cypress and Xilinx).

To confront the development of those advance digital systems, two methods can be differentiated. The functionality of the desired application can be reached either by a software or hardware method. However, it is fundamental to have a remarkable understanding of both methodologies in order to obtain the best performance and effectiveness in the designs.

• Driven by standard circuit processors (microprocessor, microcontrollers or DSPs).

• Based on hardware circuits customizable by the user (CPLDs, FPGAs, and ASICs).

The software method is limited by the sequential flow of the instructions and the particular architecture. While the hardware method is limited by the difficulty that implies the design using the hardware programming languages, the time required for develop specific hardware systems and the high cost of those designs. Currently, in order to overcome the drawbacks of

This intermediate option is the most utilized nowadays and is known as integrated system, embedded system, or system on a chip (SoC). A SoC is an integrated circuit that includes a

Currently, the options that enable to develop an application based on a programmable system

• Those who are already in the market and integrate a microcontroller, a programmable digital and analogic parts and communication ports: FIPSOC (Sidsa), Fusion (Actel), FPSC

• Those that through a FPGA of high logic capacity permit to integrate a microcontroller and

The increase in the capacity of integration in the manufacturing of the chips has allowed the development and evolution of the embedded systems. **Figure 12** depicts an example of how

• Involves programming languages associated with a fixed set of instructions.

Software method:

132 Field - Programmable Gate Array

Hardware method:

• System flow runs sequentially.

• Involves hardware description languages.

both methods, alternative methods must be determined.

combination of the elements below in one single chip:

• One of the several memory units (RAM/FLASH…).

on a chip such as the devices shown in **Figure 11**:

customizable communication ports: Xilinx and Altera.

the integration capacity has been increased over the time.

• An analog-to-digital converter (ADC).

(Lattice), and PSoC (Cypress).

• One or several operating units (microprocessors/DSPs/FPAs…). • Different standard interface circuits (UART, SPI, I2C, Ethernet…).

• Different specific circuits for the application (audio/graphics/automotive…).

• Implements concurrent processing.

**Figure 12.** Embedded systems evolution in terms of components integration.

In a design of an application using an embedded system, the following factors need to be taken into consideration:


In this section, among the presented embedded systems, we will be addressed in more detail the ones based on FPGAs of Xilinx, also known as systems on a programmable chip (SoPCs).

Xilinx, one of the main manufacturers of FPGAs, provides two alternatives to carry out a SoPC-based design:


For a better understanding of the different architectures of the hardware or software microprocessors involved in SoPC designs, various diagrams are presented in **Figures 13**–**16**. It is always important to take time studying and comprehending the architecture of each microprocessor for being able to choose the most effective solution for the desired application.

**Figure 13.** Architecture of an embedded system "hardware" based on PowerPC.

Concretely, from the previous architecture diagrams, it is relevant to recognize the possibilities, advantages, and disadvantages that offer hardware and software microprocessors.

There is only one possible option when choosing a given hardware microprocessor block:

• Commercial microprocessor core designed to be implemented in FPGAs. Advantages: the alternative of having a commercial microprocessor widely used before in the market (8051, PIC, …). Lower development time.

Disadvantages: higher cost and a fixed architecture of the microprocessor.

Design of Digital Advanced Systems Based on Programmable System on Chip http://dx.doi.org/10.5772/66579 135

**Figure 14.** Architecture of an embedded system "hardware" based on ARM (picture courtesy of Xilinx).

The possible options when choosing a software microprocessor block are:

• Microprocessor core designed and customized by the user.

Advantages: totally customizable architecture depending on the application. The source code of the microprocessor is available to perform modifications. Lower cost and commercialization possibilities.

Disadvantages: limitations in the architecture.

Xilinx, one of the main manufacturers of FPGAs, provides two alternatives to carry out a

• Hardware microprocessor block. PowerPC of 32 bits in FPGAs Virtex 2 pro, Virtex 4 FX,

• Software microprocessor block. Picoblaze of 8 bits in any FPGA. Microblaze of 32 bits in the

For a better understanding of the different architectures of the hardware or software microprocessors involved in SoPC designs, various diagrams are presented in **Figures 13**–**16**. It is always important to take time studying and comprehending the architecture of each microprocessor for being able to choose the most effective solution for the desired application.

Concretely, from the previous architecture diagrams, it is relevant to recognize the possibilities, advantages, and disadvantages that offer hardware and software microprocessors.

• Commercial microprocessor core designed to be implemented in FPGAs. Advantages: the alternative of having a commercial microprocessor widely used before in the market (8051,

There is only one possible option when choosing a given hardware microprocessor block:

Disadvantages: higher cost and a fixed architecture of the microprocessor.

**Figure 13.** Architecture of an embedded system "hardware" based on PowerPC.

PIC, …). Lower development time.

and Virtex 5 FXT ARM Dual-Core Cortex-A9 of 32 bits in Zynq.

families Spartan, Virtex, and the new Artix and Kintex.

SoPC-based design:

134 Field - Programmable Gate Array

• Microprocessor core designed by the manufacturer of the FPGAs.

Advantages: the possibility of having a microprocessor utilized by a high number of users. Exchange of free-distribution programs and peripherals. Lower cost and development time.

Disadvantages: limitations in the architecture.

**Figure 15.** Architecture of an embedded system "software" based on PicoBlaze (picture courtesy of Xilinx).

**Figure 16.** Architecture of an embedded system "software" based on MircoBlaze.

#### **2.2. Codesign hardware/software**

After understanding the embedded system, it is important how to stop and comprehend the design. For those designs that involve a high complexity, it is required to work on the necessary hardware, both for the microprocessor and its peripherals. Accordingly, it is necessary to know what program is going to be executed by the microprocessor and which additional components are involved in the application.

This process is usually known as codesign hardware/software [3] and basically can be defined as: the concurrent design of developers, part of the same team, to complete hardware and software tasks that are involved in an embedded system. Methodologies and tools are utilized which consider hardware/software iteration.

**Figure 17** shows a basic codesign flow diagram in which the next stages are involved.

**Figure 17.** Processors evolution of Xilinx FPGAs (picture courtesy of AVNET).

### Specifications:

Define the features of the system that is going to be developed. Hardware/software partitioning determines which functions are implemented through software routines in the embedded microprocessor and which through specific hardware circuits. In the market, certain commercial tools are available for high cost designed specifically to conduct this function.

Hardware description:


Software description:

**2.2. Codesign hardware/software**

136 Field - Programmable Gate Array

**Figure 16.** Architecture of an embedded system "software" based on MircoBlaze.

After understanding the embedded system, it is important how to stop and comprehend the design. For those designs that involve a high complexity, it is required to work on the

**Figure 15.** Architecture of an embedded system "software" based on PicoBlaze (picture courtesy of Xilinx).

• Development of the application in Assembler/C language. Compilation.

Hardware simulation:

• Through simulation programs that normally are part of the selected development tool.

Software simulation:

• Through simulation programs of the implemented programming language.

Co-simulation hardware/software:

• Tools such as EDK, ChipScope, synthesis, and implementation. The specific tool provided by the FPGA manufactured is employed (ISE).

A basic codesign, for example, the control of a text liquid crystal display (LCD), with two rows and 16 characters is presented in **Figure 18** which show the different options that could be implemented.

**Figure 18.** A basic example of codesign.

Hardware/software partitioning:

The operation slowness of the LCD and the complexity of the required control configuration sequences make the application very appropriate to be managed by a microprocessor. Nevertheless, slow operation time forces the microprocessor to attend and control the display for long periods of time, so it would be suitable release the microprocessor from that task.

First option (software):

Implement the control of the display totally by software, adding the minimum hardware. The software of the microcontroller will be in charge of sending and receiving instructions and data to the LCD (low-level routine) and of sending messages (high-level routine).

Second option (hardware):

Implement the control of the display totally using specific hardware, adding the minimum required software for the LCD. In this scenario, the device is totally managed by the hardware. In this option, a FPGA is needed to control the display, which implies higher costs and a great logic area.

Third option (codesign):

The most critical tasks, above all in time, will be implemented in specific hardware while the rest will be programmed through C in order to be executed by the microprocessor. The hardware acts as a microprocessor. In general, working with advance digital systems is the best strategy. An example of codesign is shown in **Figure 19**.

**Figure 19.** Example of codesign: LCD interface application.

Hardware simulation:

138 Field - Programmable Gate Array

Software simulation:

be implemented.

Co-simulation hardware/software:

Hardware/software partitioning:

**Figure 18.** A basic example of codesign.

First option (software):

Second option (hardware):

a great logic area.

Third option (codesign):

by the FPGA manufactured is employed (ISE).

• Through simulation programs that normally are part of the selected development tool.

• Tools such as EDK, ChipScope, synthesis, and implementation. The specific tool provided

A basic codesign, for example, the control of a text liquid crystal display (LCD), with two rows and 16 characters is presented in **Figure 18** which show the different options that could

The operation slowness of the LCD and the complexity of the required control configuration sequences make the application very appropriate to be managed by a microprocessor. Nevertheless, slow operation time forces the microprocessor to attend and control the display for long periods of time, so it would be suitable release the microprocessor from that task.

Implement the control of the display totally by software, adding the minimum hardware. The software of the microcontroller will be in charge of sending and receiving instructions and data to the LCD (low-level routine) and of sending messages (high-level routine).

Implement the control of the display totally using specific hardware, adding the minimum required software for the LCD. In this scenario, the device is totally managed by the hardware. In this option, a FPGA is needed to control the display, which implies higher costs and

The most critical tasks, above all in time, will be implemented in specific hardware while the rest will be programmed through C in order to be executed by the microprocessor. The hard-

• Through simulation programs of the implemented programming language.
