Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
Soft-Core Processor Design - CiteSeer
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 4<br />
UT Nios<br />
Architectural research has traditionally been done by using simulators to evaluate the<br />
performance of proposed systems because building a prototype of a processor in an ASIC is<br />
expensive and time consuming. <strong>Soft</strong>-core processors are fully described in software and<br />
implemented in programmable hardware, and thus easy to modify. This means that architectural<br />
research on soft-core processors can be performed on actual hardware, while the architecture<br />
parameters are changed by modifying the software. The UT Nios soft-core processor was<br />
developed to get insight into this process and to explore the performance of the Nios architecture.<br />
UT Nios was implemented using Verilog HDL. Verilog was chosen over VHDL because of its<br />
increasing popularity, and because it is simpler to use and understand. UT Nios is customizable<br />
through the use of define and defparam Verilog statements. Its design is optimized for<br />
implementation in FPGAs in the Stratix device family. Stratix was chosen because of the high<br />
amount of memory it contains, which makes it suitable for soft-core processor implementation.<br />
Another reason for choosing Stratix is the availability of the Nios Development Kit, Stratix<br />
Edition [50]. Although Altera also provides a Cyclone Edition [51] and an Apex Edition [52] of<br />
the Nios Development Kit, Stratix is a newer device family, which is likely to be used in Nios<br />
systems. While we focus on a single FPGA device family, UT Nios can easily be adapted for use<br />
on any system that supports design entry using Verilog.<br />
The choice of Stratix as a target FPGA device family had great influence on the design of UT<br />
Nios. As mentioned previously in section 2.4, all the memory available in Stratix FPGAs is<br />
synchronous. Therefore, any read from the memory will incur a latency of at least one clock<br />
cycle, because the data address cannot be captured before the rising edge of the clock [25].<br />
Although the use of the synchronous memory increases the throughput in pipelined designs, any<br />
design using memory necessarily has to be pipelined. For instance, the Nios architecture has a<br />
large general-purpose register file. Implementing this file in logic is impractical due to the<br />
register file size. Therefore, the register file has to be implemented in the synchronous memory,<br />
and the design has to be pipelined. The Stratix documentation [17] suggests that asynchronous<br />
mode may be emulated by clocking the memory using an inverted clock signal (with respect to<br />
the clock controlling the rest of the logic). Memory data would then be available after a half of<br />
the clock cycle. However, this imposes tight constraints on the timing of the rest of the logic. A<br />
28