From Roger's research birthday, embedded systems (SOC)
Embedded Systems (SOC) have been widely used in recent years. Many people have been studying and analyzing this field, however, most of the users are not allowed to join us.
Before using SOC, we must first consider a question: why and why are we building SOC functions, if it is said that it is just a simple task to create a basic positive and negative tool, or a simple batch of independent power grids, the younger brother thinks that this statement can be solved by using a hardware description, and even the problem can be solved by inserting a plug-in the back of the packet board and the IC, if SOC is used, it is very important to determine your needs.
I'm not talking much about our fast introduction to SOC.
The concept of SOC memory name is system on chip. To establish a system on a single chip, it is not possible to deal with it with a simple HDL, let's first think about several issues.
Since it is a system, how is it a system? What kind of objects (or hardware) can be regarded as on chip? The system part is divided into two parts: the hardware part and the software part. The hardware part includes many parts in the SOC.
Let's talk about the architecture of Altera niosii (below)
In the box, an embedded system includes CPU, bus, on-chip memory, and so on. These are all hard parts, that is to say, to establish the most basic SOC, you must start from here.
We can think like this, outside the box is the actual hardware, that is, the chip or hardware that is truly visible (such as led, LCD, etc ), to make them operate, we have to rely on the Controller or driver we have set. However, the design in this regard may vary according to our needs, this is also the biggest feature of niosii.
In addition, let's look at another architecture-arm.
This is a typical arm system. I believe someone should have encountered several problems, first of all, system problems, it seems that the arm system is larger than the niosii architecture and the architecture is larger than the niosii architecture. It is more functional than the niosii architecture, so where is the difference between the two?
The answer to this question is exactly where different SOC systems are located. When the CPU architecture is opened, another difference lies in the bus. The bus of niosii is named aveon bus, arm is AMBA bus, and arm's AMBA is divided into two parts: AHB and APB.
We can see from the above that AHB is mainly in charge of the memory part, and APB is in charge of the hardware Week, which is re-used by the two buses, it is easier to reduce the memory usage of the CPU. It seems that there are a lot of bus colors in this aspect, but you should not forget, the concept of the niosii is that the hardware is customized (custom). That is to say, the niosii can also be used to construct a custom bus architecture, therefore, as long as it is within FPGA, it is not a problem to require compaction.
So is arm missing? The answer is no. Arm's deficiency lies in the adequacy of hard bodies. In the niosii, we can increase the required hardware according to our own needs, however, in arm, hardware design is customized, that is, the bus is divided into two, that is, two, however, we cannot merge the components connected by APB to AHB. Therefore, in terms of limitations, arm's Hardware sensitivity is lower than that of niosii.
Previously, SOC was divided into two parts: hardware and software, which have introduced the hardware of the two platforms, next, we will analyze it from the perspective of experiences.
First, when the hardware frame is set on the niosii, it is necessary to run the software on the hardware of the design, the use of micro-C/OS-II in the system, and the arm above the OS can support a lot, such as uClinux, WinCE, vxwork and so on, this does not mean that the system does not support, it is only because porting is better than portable routing.
In addition, the operating system on the niosii must be self-defined, that is, after we import the basic function of the operating system, at what time should I Configure which task to execute? This setting depends on the setting at the beginning of the hardware, therefore, when operating systems are used, it is a bit difficult. For uClinux, it is a bit like installing Linux, as long as it is hard for your own hardware, specify the corresponding response number.
With the OS, the development of application software on ARM is more convenient than that of niosii. It is like a small PC, however, we only need to install the development software on the PC. However, it is not very easy to create a graphical interface on the nioii. Therefore, in the manual part, arm is slightly different from niosii.
Speaking of this, I believe you should have a basic understanding of SOC. In fact, there are many SOC platforms. Here, we only provide two examples for comparison, however, we can give them a conclusion here. If your design is more hardware-oriented than your own, you can choose niosii. If your design is software-oriented, arm is more convenient than others. I think this is also why the industry prefers to use arm to develop products instead of niosii. However, who is better and who is better, still, the requirement is the main one. This is not correct.
Note that the architecture of the SOC is the same, except that the architecture of the CPU and bus is the core of the SOC, it is also the biggest reason to dominate the SOC performance.
Exam documents:
Niosii processor reference handbook
ARM-based SoC design