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.

memory address has to be set in the first half of the cycle, while the data from the memory is only<br />

available in the second half of the cycle. Depending on the system, logic delays may not be<br />

balanced around the memory block, in which case the clock’s duty cycle has to be adjusted. Since<br />

the asynchronous emulation mode imposes undesirable constraints on the system, synchronous<br />

memory should be used whenever possible [17]. Using synchronous memory in a design does not<br />

limit the design’s use to Stratix FPGAs only, because most devices that support asynchronous<br />

memory also support the synchronous memory operation [53].<br />

Several versions of UT Nios have been implemented. Initially, a 16-bit processor that<br />

executed all instructions in a single clock cycle (not including fetching the instruction from the<br />

memory) was implemented. This implementation includes an instruction prefetching unit that<br />

communicates instructions to other processor modules through the instruction register (IR).<br />

Therefore, it may be considered a 2-stage pipelined implementation. Critical paths of the<br />

implementation were analyzed, and the results were used to guide the development of a 3-stage<br />

pipelined version, and subsequently a 4-stage pipelined version. Finally, this architecture was<br />

extended to a 32-bit 4-stage pipelined version of UT Nios by increasing the datapath width and<br />

accommodating the differences in the instruction sets of 16- and 32-bit Nios architectures. In the<br />

rest of the thesis we use the term UT Nios for the 4-stage pipelined version of the 32-bit UT Nios.<br />

We focus on the 4-stage pipelined version because of its performance advantage over other<br />

versions. We focus on the 32-bit architecture, because it is more likely to be used in high<br />

performance applications. The organization of the 4-stage pipelined version of the 16-bit UT Nios<br />

is similar to the 32-bit UT Nios described. The development process and the performance of<br />

various UT Nios versions will be discussed in Chapter 6.<br />

UT Nios described in this chapter differs from the 32-bit Nios architecture [23] in the<br />

following ways:<br />

• there is no support for instruction and data cache<br />

• there is no multiplication support in hardware<br />

• there is no support for the OCI debug module and the non-maskable interrupt<br />

• I/O interrupts are not accepted in cycles in which a control-flow instruction is in<br />

stages 3 or 4 of the pipeline<br />

• I/O interrupts are not accepted in a cycle in which SAVE, RESTORE, or WRCTL<br />

instructions are in stage 3 of the pipeline<br />

• a NOP instruction has to be inserted between pairs of the following instructions:<br />

SAVE after SAVE, SAVE after RESTORE, RESTORE after SAVE, and RESTORE<br />

after RESTORE<br />

29

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

Saved successfully!

Ooh no, something went wrong!