Department of Electrical and Computer Engineering Facebook page


  • DEPARTMENT
    • Overview
    • Computing
    • Facilities
    • Organizations
    • Educational Objectives
    • Student Outcomes
    • Scholarship Awards
    • Employment
    • Advisory Committee
    • Contact
  • ACADEMICS
    • Undergraduate
      • Computer Eng.
      • Electrical Eng.
      • Ambassadors
    • Graduate
      • Information for Prospective Students
      • ECE Graduate Handbook
      • Graduate Forms
      • Ph.D. Qualifying Exam
      • Distance Education
      • Frequently Asked Questions (FAQ)
    • Courses
    • Student Survival kit
    • Distance Learning
  • PEOPLE
    • Faculty
    • Staff
  • PROSPECTIVE STUDENTS
    • Overview
    • FAQ
    • Considering ECE
    • Scholarships
    • PC Requirements
    • Office of Admissions
  • RESEARCH
    • Overview
    • Signal Processing & Communications
    • Digital Systems & Microelectronics
    • Power & High Voltage
    • Research Centers
      • Emerging Materials Research Laboratory
      • High Voltage Laboratory
      • Robotics
    • HPCC
  • ALUMNI
Team Dynamik: - Ece
Personal tools
  • Log in
Views
  • Page
  • Discussion
  • View source
  • History

Team Dynamik:

From Ece

Jump to: navigation, search

 

PROJECT PROPOSAL

 

1.   Team Name and Members

 

Team Name: “Dyanmik”

Team Leader: Roberto Orellana

Team Member: Ranjit Amgai

 

2.   Design Overview

 

2.1 Instruction set

 

Arithmetic: Add, Subtract, Add immediate

Data transfer: Load, store

Logical: And, or, xor, not, shift left logical, shift right logical

Conditional branch: branch on not equal, branch if equal, set if less than,

Unconditional branch: jump

No Operation: nop

 

2.2 Clocking methodology: Rising edge triggered

2.3 Implementation Method: C++

 

2.4 Registers file: 8 ×16-bit register file Numbered 0 to 7.

$v0 = 000

$v1 = 001

$v2 = 010

$v3 = 011

$a0 = 100

$a1 = 101

$t0 = 110

$t1 = 111

 

 

2.5 Pipelining: 5 Stage: IF->ID->EX -> MEM->WB

 

 

 

 

 

 

 

 

 

2.6. Instruction format

 

R-Format:

 

 

 

 

Opcode

Rs

rt

rd

Func

4 bits

3 bits

3 bits

3 bits

3 bits

 

I-Format

 

 

 

Opcode

Rs

rt

Constant or address

4 bits

3 bits

3 bits

6 bits

 

J- Format:

 

Opcode

Adress

4 bits

12 bits

 

 

Name

Mnemonic

Operation

Opcode

Function

Format

add

add

add $s1, $s2, $s3; $s1= $s2 + $s3;

000

001

R

and

and

and $s1,$s2, $s3; $s1= $s2 & $s3

0000

0010

R

Add immediate

addi

addi $s1, $s2, -20; $s1= $s2-20

0001

000

I

Branch if equal

beq

beq $s1, $s2, label; if($s1==$s2) PC= PC+4+BranchAddr

0010

000

I

Branch on not equal

bne

bne $s1, $s2, label; if($s1 != $s2) PC= PC+4+BranchAddr

0011

000

I

Branch if less than

blt

blt $s1, $s2, label; if($s1 < $s2) PC= PC+4+BranchAddr

0100

000

I

Jump

j

j label; PC=JumpAddr

0101

000

J

Load word

lw

lw $s1, (offset)$s2; $s1= Mem[offset+$S2]

0110

000

I

No operation

nop

nop; PC=PC+4

0111

000

I

Or

or

or $s1, $s2, $s3; $s1= $s2 || $s3

0000

011

R

Not

not

not $s1, $s2; $s1= !$s2

0000

100

R

set if less than

slt

slt $s1, $s2, $s3; $s1= ($s2 < $s3)?1:0

0000

101

R

Shift left logical

sll

sll $s1, $s2, ShAmt; $s1= $s2 << ShAmt

1000

000

I

Shift right logical

srl

srl $s1, $s2, ShAmt; $s1= $s2 >> ShAmt

1001

000

I

Store word

sw

sw $s1, (offset)$s2; Mem[$s2+offset]= $s1

1010

000

I

Subtract

sub

sub $s1, $s2, $s3; $s1= $s2- $s3;

0000

110

R

XOR

xor

xor $s1, $s2, $s3; $s1= $s2 ^ $s3

0000

111

R

 

 

2.7. Assembly language and machine code for the test program

//initial values

Instruction

Machine Code

addi $v0, $v0, 0x020

addi $v0, $v0, 0x020 //set v0

addi $v1, $v1, 1

sll $v1, $v1, 12

addi $v1, $v1, 16

addi $v2, $v2, 0xF // set v2

addi $v3, $v3, 1

sll $v3, $v3, 8

addi $v3, $v3, -16

addi $t0, $t0, 0

addi $a0, $a0, 0x10

addi $a1, $a1, 5

//end initial values

Start:

sub $t1, $t1, $t1 //set $t1 to zero

blt $a1, $t1, down //mnemonic if($a1< $t1) jump to down

addi $a1, $a1, -1 //$a1= $a1 – 1;

lw $t0, 0($a0)

 

addi $t1, $t1, 1 //$t1=1

sll $t1, $t1, 8 //$t1=256 ->0x100

 

blt $t0, $t1, else //if($t0 < $t1) jump to else

srl $v0, $v0, 3 //$v0=$v0 /8

or $v1, $v1, $v0 //$v1= $v1 | $v0

 

sub $t1, $t1, $t1 //set t1 to 0

addi $t1, $t1,1 //$t1=1

sll $t1, $t1, 8 //$t1= 256

addi $t1, $t1, -1 //$t1=255

sll $t1, $t1, 8 //$t1=255*256 -> 0xFF00

sw $t1, 0($a0)

j down

else:

sll $v2, $v2,2 //$v2= $v2*4

xor $v3, $v3, $v2

 

sub $t1, $t1, $t1 //$t1=0

addi $t1, $t1, 1 //$t1=1

sll $t1, $t1, 8 //$t1= 256

addi $t1, $t1, -1 //$t1=255 -> 0x00FF

sw $t1, 0($a0)

down:

addi $a0, $a0, 2 //$a0= $a0+2

J Start

 

0x1020

0x1020

0x1241

0x824C

0x1250

0x148F

0x16C1

0x86C8

0x16F0

0x1D80

0x1910

0x1B45

 

 

0x0FFE

 

0x193F

0x6980

 

0x1FC1

0x8FC8

 

 

0x9003

0x004B

 

0x0FFE

0x1FC1

0x8FC8

0x1FFF

0x8FC8

0xA9C0

 

 

0x8482

0x069F

 

0x0FFE

0x1FC1

0x8FC8

0x1FFF

0xA9C0

 

0x1902

 

 

3. Task and Scheduling

Ranjit Amgai:

<img width=794 height=161 src="ControlUnitv2-1_files/image001.gif">

Roberto Orellana:

<img width=712 height=161 src="ControlUnitv2-1_files/image002.gif">

 

 

4. Planned Meetings

The team will meet on the following schedule

Friday Oct 30 2.00 pm to 5.30 pm

Saturday Oct31 2.00 pm to 5.30 pm

Friday Nov 6 2.00 pm to 5.30 pm

Saturday Nov 7 2.00 pm to 5.30 pm

Friday Nov 13 2.00 pm to 5.30 pm

Saturday Nov 14 2.00 pm to 5.30 pm

Friday Nov 20 2.00 pm to 5.30 pm

Saturday Nov 21 2.00 pm to 5.30 pm

Friday Nov 27 2.00 pm to 5.30 pm

Saturday Nov 28 2.00 pm to 5.30 pm

 

Note: Team members may meet more number of times if required.

 

 

5. Team Name

“DYNAMIK”

 

Opcode

Reg-

Dst

ALU-

Src

Mem

toReg

Reg_

Wrt

Mem_

Read

MemWrt

Branch

Jmp

ALU_

op1

ALU_

op2

Add, Sub

1

0

0

1

0

0

0

0

1

0

Load

0

1

1

1

1

0

0

0

0

0

Store

X

1

X

0

0

1

0

0

0

0

Sll

0

1

0

1

0

0

0

0

1

1

Srl

0

1

0

1

0

0

0

0

1

1

Beq

X

0

X

0

0

0

1

0

0

1

Slt

1

0

0

1

0

0

0

0

1

0

And , or, not, xor

1

0

0

1

0

0

0

0

1

0

Blt

X

0

X

0

0

0

1

0

0

1

Addi

0

1

0

1

0

0

0

0

1

1

Jump

X

X

X

X

X

X

X

1

X

x

Nop

0

0

0

0

0

0

0

0

0

0


 

ALU control inputs:

ALUOp1

ALUOp0

F2

F1

F0

Operation

0

0

X

X

X

0010

0

0

X

X

X

0010

0

1

X

X

X

0110

1

0

0

0

1

0010

1

0

1

1

0

0110

1

0

0

1

0

0000

1

0

0

1

1

0001

1

0

1

0

1

0111

 


November 17:

·       All code objects have been defined- That is, everything is represented as objects (ALU, Register, ... ect)

·       Currently working on flow

 

Part of code shown below:

int main(int argc, char

  • argv[])

{

InstructionFetchStage IF_S;

InstructionDecodeStage ID_S;

ExecuteStage EX_S;

//begin execution

while(true)

{

//Instructin Fetch Stage

IF_S.IF_ID.instruction=IF_S.mem.getMemData(IF_S.pc.getPC());

IF_S.IF_ID.adderOut=IF_S.adder.Add16((short)IF_S.pc.getPC(),4);

//Instruction Fetch Stage ends

//Insruction Decode Begins

ID_S.ID_EX.ctrl.setControlLines(IF_S.IF_ID.getOpcode());

ID_S.ID_EX.reg1dat= ID_S.regs.GetRegContent(IF_S.IF_ID.getRS());

ID_S.ID_EX.reg2dat= ID_S.regs.GetRegContent(IF_S.IF_ID.getRT());

ID_S.ID_EX.imediateExteded= ID_S.ext.extend(IF_S.IF_ID.getImidiate());

ID_S.ID_EX.rtreg= IF_S.IF_ID.getRT();

ID_S.ID_EX.rdreg= IF_S.IF_ID.getRD();

//fetch the next instruction :D

IF_S.IF_ID.instruction=IF_S.mem.getMemData(IF_S.pc.getPC());

IF_S.IF_ID.adderOut=IF_S.adder.Add16((short)IF_S.pc.getPC(),4);

//end Instruction fetch stage

}

return 0;

}

 

Final Report:

http://docs.google.com/Doc?docid=0AaH_h-JGAl1sZGQzc3d3bnNfOTFnN2t4dzRkag&hl=en

 

Final Deliverable:  

http://www.ece.msstate.edu/~rao28
Retrieved from "http://www.ece.msstate.edu/wiki/index.php/Team_Dynamik:"
Navigation
  • Main Page
  • Community portal
  • Current events
  • Recent changes
  • Random page
  • Help
SEARCH
TOOLBOX
LANGUAGES
 
Toolbox
  • What links here
  • Related changes
  • Upload file
  • Special pages
  • Printable version
  • Permanent link
Powered by MediaWiki
  • This page was last modified on 1 December 2009, at 02:11.
  • This page has been accessed 1,097 times.
  • Privacy policy
  • About Ece
  • Disclaimers

Mississippi State University Home| PO Box 9571, Mississippi State, MS 39762 | Main Office: 1.662.325.3912

Bagley College of Engineering | Mississippi State University| Legal| Webmaster| Intranet

Page modified: Tue, 23 Sep 2008 15:18:39 CDT