The fast advance of computer technology, in the last years, created the opportunity for us to implement more and more complicated systems in FPGA-s. The system-on-chip is a full computer, or electronic system, built in a single chip. This can contain digital, or analog or mixed signals, and often radio frequency functions. A typical application is in the area of embedded systems. The contrast with microcontrollers is one of degree. Microcontrollers typically have less than 100K of memory (often just a few kBytes) and often really are single-chip-systems. Development of these systems in FPGA environment is very convenient, because, this way, we can connect any peripherals on the way we like, or we can create new peripherals easily. This flexible system gives us the opportunity for example, that if a software algorithm is too complicated, we can replace it with a dedicated hardware unit, or coprocessor which performs this task. The number of components, used in manufacture, is reduced as well as the substantial cost of manufacturing, and the testing also got easier.
Unfortunately in exchange we have to spend more time on planning the systems.
The implementation in FPGA-s significantly reduces the runtime, mainly because we don’t have to bring the wiring outside the enclosure. One of the essential parts of the SoC architecture is the bus system. There is many types of these systems and exists many standards for them. When planning a complex system, one should use one of these standards.