Implementation of 32 Bit Mips Processor With Cisc Multiplication Operation IJERTV4IS110636 2
Implementation of 32 Bit Mips Processor With Cisc Multiplication Operation IJERTV4IS110636 2
Architecture
Abstract—MIPS architecture is one of the first commercially Instruction Set architecture (ISA). Along with this 32-bit
available RISC processor. MIPS stands for ‘Microprocessor RISC processor, a CISC operation - multiplication have been
without Interlocked Pipeline Stages’. In a normal MIPS RISC incorporated, with normal ALU operation.
architecture, for 32-bit multiply operation it can hold the
processor for more than 32 clock cycles, which affects the RISC processors typically support fewer and much
processor performance. In order to avoid this problem, here we simpler instructions. RISC architecture has a simpler
have implemented 32-bit MIPS processor with one CISC hardware compared to CISC. The CISC operation adds more
operation for multiplication which is realized using a Booth hardware to the design. Even if it increases hardware
multiplier. Processor is tested in Xilinx Nexsys Spartan3 board, complexity, it reduces number of cycles required to execute a
using a 177MHz clock frequency. multiplication operation.
Keywords—MIPS, ISA, Pipeline, booth multiplier The ISA has 32-bit instructions, with 5-bit opcode, 5-bit
each for registers and rest of the bits are for shift amount and
function value in the case of R-type instructions, 16-bit data
I. INTRODUCTION in the case of I-type instructions, and Jump address for J-type
The Arithmetic and Logic Unit is the most important part instructions.
of a processor, which executes all the arithmetic and logical
operations. To make a processor with lighter hardware, the The instruction execution in a processor can be split into a
Arithmetic and Logic Unit(ALU) should be simple. But the number of stages. As shown in Fig.1, in a MIPS processor
instructions like multiply and divide takes many clock cycles there are 5 stages:
with normal ALU. So it is better to implement those 1. The Instruction Fetch stage fetches the next instruction
instructions separately with a dedicated hardware. from memory using the address in the Program
This paper implements a 32-bit 5-stage RISC Processor, Counter (PC) register and stores this instruction in the
with one CISC operation, which is implemented using Booth Instruction Register (IR).
Multiplication Algorithm. This algorithm uses less number of 2. The Instruction Decode stage decodes the instruction
cycles for execution than normal multipliers. A dedicated in the IR, calculates the next PC, and reads any
ALU is designed, for realizing the booth multiplier. The operands required from the register file.
normal ALU does all other operations except multiplication. 3. The Execute stage executes the above decoded
instruction. ALU units are there in the execute stage.
Processor is designed using Verilog (IEEE 1364) 4. The Memory Access stage performs any memory
Hardware Description Language (HDL) language. The design access required by the current instruction. For load
is synthesized in Xilinx ISE design suite 12.4. For instruction, it is to load an operand from the memory.
implementing the processor, Xilinx Nexsys Spartan-3E board For store instruction, it is to store an operand into
with FG320 package has been used. memory.
5. For instructions that have a result which have to be
The paper is organized as follows: Section II gives an
written into a register, the Write Back writes this
Introduction to MIPS processor; Section III explains MIPS
result back to the register file.
pipeline architecture and Instruction Set Architecture. In
Section IV CISC Operation-multiplication algorithm is given.
Section V deals with the FPGA Implementation of the
proposed design. Section VI gives Simulation results and
Section VII: conclusion and future scope.
16: data = {6’d0, `Reg5, `Reg4, `Reg6, 5'd0, 6'd1}; 4 input LUT 502 9312 5%
20: data = {6’d0, `Reg5, `Reg6, `Reg7, 5'd0, 6'd1}; Bounded IOBs 98 232 42%
24: data = {6’d0, `Reg6, `Reg7, `Reg5, 5'd0, 6'd1}; VII. CONCLUSION AND FUTURE SCOPE
28: data = {6’d0, `Reg5, `Reg7, `Reg1, 5'd0, 6'd1}; In this paper we presented a 32-bit MIPS Processor with a
32: data = {6’d0, `Reg1, `Reg5, `Reg4, 5'd0, 6'd1}; CISC operation- multiplication. Typically a MIPS processor
follows RISC architecture. Here we implemented the
36: data = {6’d0, `Reg1, `Reg4, `Reg5, 5'd0, 6'd1}; Multiplication operation using a 32-bit booth multiplier,
which completes multiplication in 4 processor cycles. This
In the above code 0, 4, 8… 36 are PC values. The output greatly enhances the processor speed, whenever we need to
obtained will be 1, 2, 3, 5, 8, 13, 21, 34, and 55. The initial execute a multiply instruction. But the disadvantage with this
values that are loaded into the Reg0 and Reg1 are 0 and 1 CISC operation is it increases the hardware complexity of the
respectively. Fig. 8 shows the simulation waveform obtained processor.
for Fibonacci series test. Fig. 9 shows a multiplication
We implemented the processor design in Verilog
instruction output which was implemented using a Booth
Hardware Description Language (HDL) and verified the
multiplier.
results in Xilinx Nexsys Spartan3E board. The design is
The 32-bit MIPS processor with one CISC operation is verified at a maximum clock speed of 177MHz.
verified using appropriate test cases. For this we did
functional verification and then FPGA emulation, for each Usually in a processor design, the scope of parallelism is
testcases. limited due to some data and control hazards. These data
hazards are Read after Write (RAW), Write after Read
The FPGA hardware utilized by the processor design are (WAR) and Write after Write (WAW). These data hazards
given in Table.IV. can be solved using Dynamic Scheduling algorithm. So it is
always better to incorporate Dynamic Scheduling with a 32-
bit processor, so that overall speed of the processor will be
A. Authors and Affiliations enhanced.
REFERENCES