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.
Chapter 6<br />
Discussion<br />
In this chapter the UT Nios design process, the issues encountered during the process, and<br />
solutions to these issues are discussed. An analysis of the current UT Nios implementation is<br />
given, and possible improvements are proposed. Finally, some general design and tool<br />
considerations are discussed.<br />
6.1. <strong>Design</strong> Process<br />
<strong>Soft</strong>-core processor design methodology differs from the traditional architectural research. The<br />
results of the particular design optimizations can be verified on actual hardware in relatively short<br />
time if the target is a programmable chip. This characteristic was exploited in developing the UT<br />
Nios. The design process was guided using the feedback obtained using the capabilities of the<br />
available design tools, such as Quartus II Timing Analyzer.<br />
As discussed in section 5.4.1, the performance of a processor is defined through two<br />
parameters: cycle count and the cycle time. Cycle count is dependent on the number of pipeline<br />
stalls resulting from the pipeline hazards, while the cycle time is determined by the design’s Fmax.<br />
Improving one of the parameters often has a negative effect on the other one. The goal of a<br />
processor designer is to balance the two parameters to obtain the maximum overall performance.<br />
During the UT Nios design process, several versions of UT Nios were built. A processor was<br />
improved from one version to the next by analyzing its critical paths and considering ways to<br />
remove the critical paths without introducing additional pipeline stalls. The stalls were only<br />
introduced if the potential performance gain from the increased Fmax outweighed the loss because<br />
of the increased cycle count. The design process is presented in more detail in the following<br />
sections.<br />
6.1.1. Development Progress<br />
The first implementation of the Nios architecture developed as a part of this work was a 16-bit<br />
processor that executed all instructions, except for memory operations, in a single cycle after<br />
being fetched. Although most instructions execute in a single cycle, this implementation has a<br />
prefetch unit similar to the one described in section 4.1.1, so it may be considered a 2-stage<br />
76