For application in real time embedded system we described
the design of a 16-bit micro-processor in this project. In a single machine
cycle the processor executes most of the instruction that provides high speed.
Using VHDL the processor is designed as well as it can also be implemented on
an FPGA. We discuss the major component of micro-processor such as Arithmetic
logic unit (ALU), comparator, shift register, control unit (CU), as well as
registered are implemented along with design. Aim of the project is to design the
16-bit processors by using the VHDL with the implementations with its components
of FPGA. Design and the simulations of the ALU is shown in this report.
It is basically an electronic device that consists of ALU
(arithmetic logic unit) as well as the control circuitry that is required to
function as computer’s CPU. Integrated circuit is known as the microprocessor
in this case that interprets as well as executes the instruction of program and
also intelligently behave. At a speed of the internal clock the processor
operates as well as the number of pulse per second is depend on the speed of
clock. The processor perform the function that is related to the instruction,
with each pulse of clock.
Figure1: Aim and Objective of report
The
basic modules that is used together to make the16 bit microprocessor. (Gupta, 2014) Through different
sections the processor uses 16 bit bus to data communicate such as general
purpose registers, ALU, Control unit (CU), Memory, Comparator, counter program,
register address, instruction & shift registers. (Vaman & k, 2012).In integrated circuit
with the advancement of technology the processor power is increased enormously.
In the embedded sector the microprocessor is widely used and depend on purpose
of general
application.
Using behavioral coding, in instruments microprocessor are used to make it
intelligent. In VHDL, in the design all the modules are coded, with its
concepts it is a very useful tool to cope with the parallelism concurrency of
digital hardware. (D.B.Rane & G, 2014).
The main purpose of this project is that to write the
VHDL behavioral model. For this we also build the test bench and simulate the
behavior. On FPGA platform same as implement to validate the functionality.
Using Xilinx ISE synthesizing it. Using the Spartan family of FPGA we used in
this project.
i.
Arithmetic
Logic Unit (ALU)
ii.
Comparator
iii.
Control
Unit (CU)
iv.
Register
v.
Register
Array
vi.
Shift
Register
vii.
Triregister
viii.
Programme
Counter (PC)
It is commonly known as programmable device which accepts
digital data inputs, according to the instruction process it stored in its
memory and as output provide the results. As a programmable logic device it can
be viewed that to control the processes it could be used or else off the
devices. As a data processing unit the microprocessor could be viewed or also
computing unit of the computer. In a wide range of product microprocessor is
used now a days called as a product based on microprocessor. Our objective is
to design a 16 bit microprocessor by using VHDL language. This project is very
informative. This language is also used for general purpose and this language
has several features. To design a small CPU our main goal of this project is to
tie all of these features together, verify the functionality which could be
synthesized.
Figure2: Processor Block Diagram
The figure shows the block diagram of
the processor of 16 bit microprocessor. A number of basic pieces are hold by
the processor. In 16 bit registers there is a register array of eight, a
shifter, there is an arithmetic as well as logic unit, a program counter, an IR
(instruction register) , comparator, an AR (address register), as well as a
control unit. Through a common 16 bit tristate data all of these blocks connected(Kaliamurthy & Sowmmiya).
In the ALU there are the two kinds of the operations the
first one is 16-bit Arithmetic operations like the subtraction, addition, multiplications
and the divisions. And the second is related to the Gate results like the OR, AND,
XOR, NAND, which is refereed to logic unit. FPGA design and implementation is
based on the ALU, in the importance of the digital technologies where the integral
part of CPU.ALU is capable to operate a wide variety of operations, like the arithmetic
and the logic. (Sharma & et.al, 2016)
The block diagram of ALU is shown in below
figure 3; in this diagram the blocks of ALU contains the Arithmetic operations;
logic; shifter; and the multiplier. ALU is the fundamental block of processors.
And the code of the Arithmetic operations is shown as below appendix 1. (Fpga4student.com, 2018)
Figure4: Block Diagram of ALU
Flowchart of Arithmetic logic unit is as follow
Comparison among two values, and returns the 1 and 0 according
to their types. Comparison of the values is selected through its input is sel. Input
a and b are equal then applied to the port sel, where a and b have the same values,
then the output ports returns the 1. And if a and b are not equal then the
outputs returns to 0.
The below table 1 display the types of comparisons with values,
where the operations works as the inputs values plus return the single bit output.
During Simple Processor the flow of operations is controlled by using the bit as
compare to executing the instruction. If the test conditions is true then the
output return the value “1” that is assigned; otherwise “0”, as the every statement
occurred after 1 nanosecond.
Sell-Input Value
|
Output
|
EQ
|
1 when a=b
|
NEQ
|
1 when a /
=b
|
GT
|
1 when a >
=b
|
GTE
|
1 when
a<b
|
LT
|
1 when
a<=b
|
Now the VHDL
Code of the 16-bit Comparator is shown in the appendix 2 with the test bench
and the waveform.
For the operations
of the computer control unit generates timing along with control signals. With
arithmetic logic unit along with main memory the control unit communicates. The
transmission among processor also control, the various peripherals as well as
memory. ALU also instructs data that operations has to be performed. There is the two method to design a control
unit that we describe below; (Studytonight.com, 2018)
Hardwired control unit:
With the help
of gates, flip flop decoders it is implemented in the hardware. The instruction
register, flags, timing signals are the inputs of control unit. If we have to
make the large control unit then this organization might be complicated. If we
try to modify the design for this we have to change the all logic combinational
circuits that is a very difficult task.
Figure5: Hardwired control unit
Micro programmed control unit:
Programming approach is another techniques for
implementation. During the execution of program there are number of micro
operation are carried that consists on the micro instructions. By updating the
micro program in control memory via programmer in this organization any
modification or changes could be done.
Registers of Simple Processor
When the designing
of Simple processor is working, then there are various types of register is used;
like the
·
Array
register
·
Instruction
Register
·
Shift
Register
·
Triregister
The block of register is used to address the register plus
for the instruction register, and these register are used to capture the data
for the clock input and drive the output for the captured data. The rising edge
register have the three ports, port 1 is
the input port , and the port 2 is output port , and the third port is clk (clock)port
which control the data for the stored register as the entity. At the input
clock where the rising edge occur then the value of inputs is assigned to
output q. Its takes the nanoseconds for the delay to remove the delta during
simulations
Segment of the array registers is sued for the set of registers
in the processors which is used to store the intermediate values in instructions.
In array register write the location to set the input sel (select) for the
written locations, in the input data, to assign the rising edge for the input
clk.
To store the instruction which is being fetched from a memory,
the instruction register is used. For a current situations the, the PC (Programme
Counter) holds the address of the memory. When the instructions is completed, then
the PC move for the instructions. Then the PC is loaded, if the branch of instruction,
is addressed by the next instructions, then the value of the PC is copied by a
control unit; to address the register. (Gupta & et.al, Analysis of 16
Bit Microprocessor Architecture on FPGA Using VHDL, 2014)
Source: https://www.researchgate.net/publication/228639753_MIB-16_FPGA_Based_Design_and_Implementation_of_a_16-Bit_Microprocessor_for_Educational_Use
Figure6: Register Structure
Instruction
is being executed by keeping the counter program. Mostly counter program holds
the address of next instruction that might be executed. When the first execution
is started then it is incremented one by one to the next state. As a result,
program counter is always made to execute the next instruction in an order.
This is a special purpose register. For the microprocessor a functional level
block diagram of the program counter is designed below.
Figure7: block diagram of PC
Here in the diagram we explain the attributes of the 8-bit processor,
8-bit address of an output, resets to zero, as well as when the value exceeded
from the 256 then an overflow flag is produced. Through an external pin when
the device is reset, by the PLA the reset to zero pin is pulled low within the
PC (program counter) set to 00h. By the PLA the program counter is measured for
1 clock cycle by pulling the increment pin low. Over flow flag pin will be
driven high if the PC is incremented past its 256 address words. Now the VHDL
Code is shown in Appendix 3;
Mass storage device are known as
simple microprocessor. From the computers they are advanced. We also called
them the simple microcomputers. In different application the availability of
low cost, small weight as well as low power, computing capability makes it is
useful. 8 bit simple processor is less power performance than the 16 bit
processor have high performance as well as the lower power consumption in 32
bit processor. As we talk about the VHDL language it is a very description
language. We have designed a 16 bit simple processor in our report. We also
want to implement this on FPGA kit but we couldn’t successful due to some
problem in the hardware.
References of Simple Processor
D.B.Rane, & G, P.
P. (2014). “Design and performance analysis of 16-bit RISC processor”. ISSN.
Fpga4student.com.
(2018). 16-bit ALU Design in VHDL. Retrieved from
https://www.fpga4student.com/2017/07/16-bit-alu-design-in-vhdl.html
Gupta, N. (2014).
“Analysis of 16 bit microprocessor architecture on Fpga using VHDL”. Advanced
Research in Electrical.
Gupta, N., &
et.al. (2014, April). Analysis of 16 Bit Microprocessor Architecture on FPGA
Using VHDL. International Journal of Advanced Research in Electrical,
Electronics and Instrumentation Engineering, 3(4), 8979-8986.
Kaliamurthy, &
Sowmmiya, U. (n.d.). VHDL design of FPGA arithmetic processor. Global
journal of researches in engineering, 11(5), 2249-4596.
Sharma, P., &
et.al. (2016, August). A Review: Design of 16 bit Arithmetic and Logical unit
using Vivado 14.7 and Implementation on Basys 3 FPGA Board. International
Journal for Research in Applied Science & Engineering Technology (IJRASET),
4(VIII), 453-460. Retrieved from https://www.ijraset.com/fileserve.php?FID=5343
Studytonight.com.
(2018). Design of Control Unit. Retrieved from
https://www.studytonight.com/computer-architecture/design-of-control-unit
Vaman, S., & k,
S. (2012). “Design of FPGA based 16 bit pipelined RISC controller IP core using
VHDL". ISBN.