Project Proposal
From Ece
<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head> <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 12"> <meta name=Originator content="Microsoft Word 12"> <link rel=File-List href="Project%20proposal_files/filelist.xml"> <link rel=themeData href="Project%20proposal_files/themedata.thmx"> <link rel=colorSchemeMapping href="Project%20proposal_files/colorschememapping.xml">
<style> </style>
</head>
<body lang=EN-US link=blue vlink=purple style='tab-interval:36.0pt'>
Project Proposal<o:p></o:p>
<![if !supportLists]>1) <![endif]>Team Name and Members: <o:p></o:p>
Name: Team Chargers<o:p></o:p>
Team Leader: Pavan Kumar Palacharla (pp302@msstate.edu)<o:p></o:p>
Team Member: Ananth Ramchandran (ar564@msstate.edu)<o:p></o:p>
<o:p> </o:p>
<![if !supportLists]>2) <![endif]>Design Overview:<o:p></o:p>
<o:p> </o:p>
Our basic aim is to design the 16 bit pipelined RISC processor which is capable of executing 15 and more instructions. In our initial proposal, we plan to declare the 15 instructions we are using. Clocking Methodology is Falling edge triggered. Numbers of registers in the register file are 8 as the fields rs, rt and rd are of size 3 bits each.<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
2.1 Instruction Formats<o:p></o:p>
<o:p> </o:p>
<o:p></o:p>
R-Format:<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
|
Opcode<o:p></o:p> |
rs<o:p></o:p> |
rt <o:p></o:p> |
rd <o:p></o:p> |
Function<o:p></o:p> |
4 Bits 3 Bits 3 Bits 3 Bits 3 Bits<o:p></o:p>
<o:p> </o:p>
I-Format:<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
|
Opcode<o:p></o:p> |
rs<o:p></o:p> |
rt<o:p></o:p> |
Immediate<o:p></o:p> |
4 Bits 3 Bits 3 Bits 6 Bits<o:p></o:p>
<o:p></o:p>
J-Format:<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
|
Opcode<o:p></o:p> |
Address<o:p></o:p> |
4 Bits 12 Bits<o:p></o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
2.2 Instructions:<o:p></o:p>
<o:p> </o:p>
|
Name<o:p></o:p> |
Mnemonic<o:p></o:p> |
Operation<o:p></o:p> |
Opcode<o:p></o:p> |
Function<o:p></o:p> |
Format<o:p></o:p> |
|
Addition<o:p></o:p> |
Add<o:p></o:p> |
add $s1,$s2,$s3<o:p></o:p> |
0000<o:p></o:p> |
000<o:p></o:p> |
R<o:p></o:p> |
|
Subtraction<o:p></o:p> |
Sub<o:p></o:p> |
sub $s1,$s2,$s3<o:p></o:p> |
0001<o:p></o:p> |
001<o:p></o:p> |
R<o:p></o:p> |
|
Addition Immediate<o:p></o:p> |
Addi<o:p></o:p> |
addi $s1,$s2,30<o:p></o:p> |
0010<o:p></o:p> |
xxx<o:p></o:p> |
I<o:p></o:p> |
|
Load word<o:p></o:p> |
lw<o:p></o:p> |
lw $s1,4($s2)<o:p></o:p> |
0011<o:p></o:p> |
Xxx<o:p></o:p> |
I<o:p></o:p> |
|
Store word <o:p></o:p> |
Sw<o:p></o:p> |
sw $s1,4($s2)<o:p></o:p> |
0100<o:p></o:p> |
xxx<o:p></o:p> |
I<o:p></o:p> |
|
And<o:p></o:p> |
and<o:p></o:p> |
and $s1,$s2,$s3<o:p></o:p> |
0101<o:p></o:p> |
010 <o:p></o:p> |
R<o:p></o:p> |
|
Or<o:p></o:p> |
Or<o:p></o:p> |
or $s1,$s2,$s3<o:p></o:p> |
0110<o:p></o:p> |
011<o:p></o:p> |
R<o:p></o:p> |
|
Nor<o:p></o:p> |
Nor<o:p></o:p> |
nor $s1,$s2,$s3<o:p></o:p> |
0111<o:p></o:p> |
100<o:p></o:p> |
R<o:p></o:p> |
|
Xor<o:p></o:p> |
xor<o:p></o:p> |
xor $s1,$s2,$s3 <o:p></o:p> |
1000<o:p></o:p> |
101<o:p></o:p> |
R<o:p></o:p> |
|
Shift Left <o:p></o:p> Logical <o:p></o:p> |
Sll<o:p></o:p> |
sll $s1,$s2,4<o:p></o:p> |
1001 <o:p></o:p> |
xxx<o:p></o:p> |
I<o:p></o:p> |
|
Shift Right <o:p></o:p> Logical<o:p></o:p> |
Srl<o:p></o:p> |
srl $s1,$s2,4<o:p></o:p> |
1010<o:p></o:p> |
xxx<o:p></o:p> |
I<o:p></o:p> |
|
Branch on Less Than Or Equal To<o:p></o:p> |
Ble<o:p></o:p> |
ble$s1,$s2,10<o:p></o:p> |
1011<o:p></o:p> |
xxx<o:p></o:p> |
I<o:p></o:p> |
|
Branch On Not Equal<o:p></o:p> |
Bne<o:p></o:p> |
bne $s1,$s2,10<o:p></o:p> |
1100<o:p></o:p> |
xxx<o:p></o:p> |
I<o:p></o:p> |
|
Set On Less <o:p></o:p> Than<o:p></o:p> |
Slt<o:p></o:p> |
slt $s1,$s2,$s3<o:p></o:p> |
1101<o:p></o:p> |
110<o:p></o:p> |
R<o:p></o:p> |
|
Jump<o:p></o:p> |
J<o:p></o:p> |
j 10<o:p></o:p> |
1110<o:p></o:p> |
Xxx<o:p></o:p> |
J<o:p></o:p> |
<o:p> </o:p>
2.3 Register Table:<o:p></o:p>
<o:p> </o:p>
|
Registers<o:p></o:p> |
Register Number<o:p></o:p> |
|
$a0<o:p></o:p> |
000<o:p></o:p> |
|
$a1<o:p></o:p> |
001<o:p></o:p> |
|
$t0<o:p></o:p> |
010<o:p></o:p> |
|
$t1<o:p></o:p> |
011<o:p></o:p> |
|
$v0<o:p></o:p> |
100<o:p></o:p> |
|
$v1<o:p></o:p> |
101<o:p></o:p> |
|
$v3<o:p></o:p> |
110<o:p></o:p> |
|
$v4<o:p></o:p> |
111<o:p></o:p> |
<o:p> </o:p>
Pseudo code:<o:p></o:p>
<o:p> </o:p>
while ($a1 > 0) do { <o:p></o:p>
$a1 = $a1 –1; <o:p></o:p>
$t0 = Mem[$a0]; <o:p></o:p>
if ($t0 > 0100hex) then { <o:p></o:p>
$v0 = $v0 ÷ 8; <o:p></o:p>
$v1 = $v1 | $v0; //or <o:p></o:p>
Mem[$a0] = FF00hex; <o:p></o:p>
} <o:p></o:p>
else { <o:p></o:p>
$v2 = $v2 × 4; <o:p></o:p>
$v3 = $v3 ⊕ $v2; //xor <o:p></o:p>
Mem[$a0] = 00FFhex; <o:p></o:p>
} <o:p></o:p>
$a0 = $a0 + 2; <o:p></o:p>
} <o:p></o:p>
return;<o:p></o:p>
Assembly and machine code:<o:p></o:p>
<o:p> </o:p>
|
Assembly <o:p></o:p> |
Machine code<o:p></o:p> |
|
START: sub $t1,$t1,$t1<o:p></o:p> |
0001011011011000 : 16D8<o:p></o:p> |
|
addi $t1, $t1,1<o:p></o:p> |
0010110110000001 : 2D81<o:p></o:p> |
|
slt $t0, $a1,$0<o:p></o:p> |
1010010001000000 : A440<o:p></o:p> |
|
bne $t0,$t1,label<o:p></o:p> |
1100010011Address[label]<o:p></o:p> |
|
RETURN<o:p></o:p> |
<o:p></o:p> |
|
label: Addi $a1,$a1,-1<o:p></o:p> |
0010001001111111 : 227F<o:p></o:p> |
|
lw $t0,0[$a0]<o:p></o:p> |
0011000010000000 : 3080<o:p></o:p> |
|
Sll $t1, $t1,8<o:p></o:p> |
1001011011001000 : 96C8<o:p></o:p> |
|
Ble $t0,$t1,Else<o:p></o:p> |
1011010011Address[Else] <o:p></o:p> |
|
Srl $v0,$v0,3<o:p></o:p> |
1010100100000011 : A903<o:p></o:p> |
|
Or $v1,$v1,$v0<o:p></o:p> |
0110101101100000 : 6B60<o:p></o:p> |
|
Sub $t1,$t1,$t1<o:p></o:p> |
0001011011011001 : 16D9<o:p></o:p> |
|
Sub $t0,$t0,$t0<o:p></o:p> |
0001010010010001 : 1491<o:p></o:p> |
|
Addi $t0, $t0,1<o:p></o:p> |
0010010010000001 : 2481<o:p></o:p> |
|
Sll $t0,$t0,8<o:p></o:p> |
1001010010001000 : 9488<o:p></o:p> |
|
Sub $t1,$t1,$t0<o:p></o:p> |
0001011011010001 : 16D1<o:p></o:p> |
|
Sw $t1,0[$a0]<o:p></o:p> |
0100000011000000 : 40C0<o:p></o:p> |
|
Else: Sll $v2,$v2,2<o:p></o:p> |
1001110110000010 : 9D02<o:p></o:p> |
|
Xor $v3,$v3,$v2<o:p></o:p> |
1000111111110101 : 8FF5<o:p></o:p> |
|
Sll $t1,$t1,8 <o:p></o:p> |
1001011011001000 : 96C4<o:p></o:p> |
|
Addi $t1,$t1,-1<o:p></o:p> |
0010011011111111 : 26FF<o:p></o:p> |
|
Sw $t0, 0[a0]<o:p></o:p> |
0100000010000000 : 4080<o:p></o:p> <o:p></o:p> |
|
Addi $a0,$a0,2<o:p></o:p> <o:p> </o:p> |
0010000000000010 : 2002<o:p></o:p> |
|
Jump START<o:p></o:p> |
1110Address[START]<o:p></o:p> |
<o:p> </o:p>
Tasks and Schedule:<o:p></o:p>
<o:p> </o:p>
|
Name<o:p></o:p> |
Task<o:p></o:p> |
1st week<o:p></o:p> |
2nd week<o:p></o:p> |
3rd week<o:p></o:p> |
4th week<o:p></o:p> |
5th week<o:p></o:p> |
|
Pavan<o:p></o:p> |
Instruction set design, data path design, coding<o:p></o:p> Web update<o:p></o:p> Report<o:p></o:p> |
---------<o:p></o:p> <o:p> </o:p> <o:p> </o:p> |
-------<o:p></o:p> <o:p> </o:p> -------<o:p></o:p> -------<o:p></o:p> |
----------<o:p></o:p> <o:p> </o:p> ----------<o:p></o:p> ----------<o:p></o:p> |
----------<o:p></o:p> <o:p> </o:p> ----------<o:p></o:p> ----------<o:p></o:p> |
<o:p> </o:p> <o:p> </o:p> ----------<o:p></o:p> ----------<o:p></o:p> |
|
Ananth<o:p></o:p> |
Instruction set design, hazard detection unit design, forwarding unit design, coding<o:p></o:p> Web update<o:p></o:p> Report<o:p></o:p> |
<o:p> </o:p> <o:p> </o:p> ------------<o:p></o:p> |
<o:p> </o:p> <o:p> </o:p> -------<o:p></o:p> <o:p> </o:p> -------<o:p></o:p> -------<o:p></o:p> |
<o:p> </o:p> <o:p> </o:p> ----------<o:p></o:p> <o:p> </o:p> ----------<o:p></o:p> ----------<o:p></o:p> |
<o:p> </o:p> <o:p> </o:p> ----------<o:p></o:p> <o:p> </o:p> ----------<o:p></o:p> ----------<o:p></o:p> |
<o:p> </o:p> <o:p> </o:p> <o:p> </o:p> <o:p> </o:p> ----------<o:p></o:p> ----------<o:p></o:p> |
<o:p> </o:p>
Planned Meetings:<o:p></o:p>
We plan to meet on Mondays and Thursdays<o:p></o:p>
Mon-6:30pm to8:00 pm November 2, 9, 16<o:p></o:p>
Thu-6:30pm to8:00 pm October 29, 5, 12, 19<o:p></o:p>
</body>
</html>




