Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
code) is provided [47]. Both printf routines use the system UART to send data to the terminal<br />
program.<br />
Many other software routines providing system-level services and C runtime support are also<br />
included in the SDK. System level service routines include a simple interrupt handler routine<br />
installer and a time delay routine. C runtime support routines include start, exit, read, write and<br />
memory allocation routines. The start routine performs the steps necessary for successful<br />
execution of the compiled C program. These steps include setting the stack pointer value, setting<br />
the starting heap address, zeroing the bss segment, and finally calling the program’s main routine.<br />
The exit routine performs a jump to a predefined address, usually the reset address, which<br />
effectively restarts the execution of the program. A memory allocation routine allocates more<br />
heap space, while read and write routines receive or send a single character using the UART.<br />
Detailed description of software routines can be found in [47].<br />
The SDK also provides a simple monitor program (GERMS) running on a Nios system to<br />
provide a simple interface for downloading and running the compiled programs. GERMS is a<br />
mnemonic for the minimal set of the monitor commands (Go, Erase flash, Relocate, Memory,<br />
Send S-record).<br />
The SOPC Builder can be used to build all the software for the system at design time. It builds<br />
customized libraries and user software using a set of tools included in the GNUPro Toolkit for the<br />
Altera Nios [48]. The GNUPro is a commercial software development tool suite built around the<br />
open source GNU standard [49]. The tools can also be used independently of the SOPC builder to<br />
modify the existing or develop new software. GNUPro toolkit includes C/C++ compiler, linker,<br />
assembler, disassembler, debugger, profiler, simple terminal program, and other auxiliary tools.<br />
The documentation [48] provided with GNUPro Toolkit gives reference to the “built-in<br />
simulator” that could be used for debugging programs without actually downloading them to the<br />
hardware. However, the files associated with that simulator could not be found in the specified<br />
folder, or anywhere on the hard drive or the installation disk. Probable reason is that the<br />
information in [48] is outdated, since no other more recent document references this feature.<br />
In this chapter we have presented the Altera Nios architecture, and the system design flow for<br />
systems that use the Nios soft-core processor. The next chapter presents the UT Nios, which is a<br />
Nios implementation developed as a part of this work.<br />
27