Você está na página 1de 1

Linux in Softcore Processor by cawan (cawan[at]ieee.org or chuiyewleong[at]hotmail.

com) on 24/11/2012 Software processor is about the logical implementation of RISC architecture in FPGA. Based on the fundamental unit of LUT, it is possible to construct any type of combinational or sequential logic circuit. In addition, the logic design can be represented in the way of Verilog or VHDL code. In order to implement the digital design, the code will be synthesized into gate level format and later being placed-and-routed as final implementation image. For those who are not familiar to FPGA system design, just assume the synthesis process as code compilation in software. Regarding to the place-and-route process, just assume it as similar to object code linking in generating executable. Well, simple assumption. So, by representing the logic design in HDL code, it is efficient to design high complexity digital circuit, and RISC processor is a very good example. The 2 mainstream FPGA manufacturers, Altera and Xilinx, have their own proprietary softcode processors, which are NIOS and Microblaze, respectively. In earlier generation of those softcore processors, they are just simple 16-bit RISC without MMU support. So, from the angle of embedded system design, uClinux is the only choice. Despite of the limitation of uClinux in supporting open source applications in the community, the availability of custom peripheral and custom instruction are really outstanding to optimize the performance of certain algorithms implementation from hardware point of view. In contemporary generation of softcore processors, they are normally at least 32-bit with MMU as optional feature. Hence, it is possible to let a full linux kernel running in a softcore processor with MMU support under the FPGA environment. For the case of Altera, NIOS2 has superseded the legacy NIOS1 with its new 32-bit architecture with MMU support as optional feature. So, instead of the legacy uClinux running in NIOS1, Altera has proposed the new NIOS2 linux which is a full linux kernel with MMU support to be run in NIOS2 processor. Hence, it is convenient to migrate those familiar open source applications into NIOS2 environment. On the other hand, for the case of Xilinx, the new Microblaze is also in 32-bit architecture with MMU support. However, Xilinx does not provide any linux kernel package to the end customer. Instead, there is a stable version of linux kernel for Microblaze in the market, which is known as petalinux. The performance of petalinux running in Microblaze is pretty good and it is really recommended for embedded system design under FPGA environment. Finally, as an advice to those embedded system designers who are not familiar with FPGA system design, do not simply choose FPGA as your design platform unless you have a very substantial reason such as the requirement of performance optimization with DSP algorithm or something similar which is dealing with custom hardware implementation. Otherwise, it is just a violation to the principle of cost-effectiveness.

Você também pode gostar