17.11.2012 Views

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

Soft-Core Processor Design - CiteSeer

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!