You are on page 1of 28

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

"

$%

1. Introduction
%

!
#

&

) !

*+

1#

&'
,--.

%&

# (

# */

!
2

31

#
*

#
6

&

&
'535(

# *

# ,

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

&

9999

,,,,

$#

99991

&

535#
5# !

!
!

!1

1!

#
$%#
'

$#

(1

#
$#
#

4
; < '

$#

7
; <= <, '

(
!

!
4

$#

$#

!
!

#
!

# 1

# 1

# 0' (

# 0?

# *

>

*
#

#
# *1

/
$#

!
!

>

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005
#

#
4

&

&
'535(
3

&

'

4 (

#
#

&

'?

# (

#
#

"

2. Instructions
#

$# 1

,A

!!

No Operation (NOP=0000)
B 7

!!
#

Addition (ADD=0001)
!

1
!

/
3

.0

#
; <.1

?
;><.

etienne.sicard@insa-toulouse.fr

3
!

;>1

D
07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

Subtraction (SUB=0010)
!

Get Input (In=0011)


!

Give Output (OUT=0100)


!
*

8
/E

Load Instruction (LDA=0101)


6

! /

',99,

0?

3. Program Memory
5#
5#

# 3

!1

/>01

5
!

/,01

1
#

@
#

# !

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

# $%

>

&

$%

>

9,9, H99,9

93D>

99,9 H999,

93>,

74

9,99 H9999

93$9

B7&

9999 H9999

9399

'

!
#

//"01

'

()

*
#

&

%
*) # , *

* -# #

./ "

#203

!$

(,(

+ &

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

4. Executing the instructions


Introducing the micro-instructions
!

#
!

!!

#
/6

91,1>

&

3
!

&

&

>

&

!
!

1
*

&

&

*
#

4
$*

#%
# ,

>0

/6

'

$*

!
>0

>

3
*

3
%

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

&

&

>

&

&

&

&
'535(

'535(
3

. #

&

&

>

No Operation (NOP=0000)
?

'

'6

;,(

, '?

D(

JB 7

'&

>1

1
1

;,(1

$(

!!
!

7 #

. #

8
3

$
&

6 203

# ,

'

203

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

Addition (ADD=0001)
!

$%#

#
!

'&

# *

$(1

$1

#
!

A
#
&

#
&

$
. #

4
## 9
$ //&

&

&

&

&
'535(

'535(
3

&

&

7 #
. #
1*#
3

. #:

. #
3

$
&

'

.0 /

* #

etienne.sicard@insa-toulouse.fr

//

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

Subtraction (SUB=0010)
3

!!

#0

91

/ #

Get Input (In=0011)


!

. '?

A(

$1

#
&

#
&

&

&

&

&
'535(

'535(
3
3

&

&

7 #
. #

1*#
3

. #
3

&

'

* #

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

Give Output (OUT=0100)


!

.
*

$
#
&

#
&

&

&

&

&
'535(

'535(
3

&

&

* #

01

Load Instruction (LDA=0101)


!
3

1
!

$%#

-',99,

6
!

?
(

!
#

,99,

#
&

#
&

&

&

&

&
'535(

'535(
3

&

10

G1

&

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

7 #
. #

1*#
3

. #
3

$
&

<

' ,

'

.0 /

# *

+/

%"

-+

5. Basic Block design


@

#%# * !

Accumulator A
#
9
#
/

.!
/

4
#
8

@
!

#
'C

1 * #

#
%

11

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

=
$

+ &

Accumulator B
!

#
!

9
'C

.!

1 * #

4
%

/
!

:&+

12

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

Add/subtract Block
#

!
!

#%

!L7

/4 0

,>

## $

$%#

## + &

! %

,.

' %

! %

>I

3
#

,
'

13

1 #%

0@

2
(1

#0;,

/ 02
1/

# !

91

#0;9

#
!

1
!

!=

etienne.sicard@insa-toulouse.fr

1
1

!
'

1
#

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

'

!*

//

# 1: *

1 + &

!
2

,$

* #

!
%

# :
1

9'

(1

' ;91 ;9( B


#

/=

0 ,

* #
!

/ 01!

*/6

*/6

* #
!

/ 01!

<

>
/

#0

14

0 ,

>

#
/

/D01

etienne.sicard@insa-toulouse.fr

!
#

91
0 9

,$

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

":
$

)7

7 :

//

# 1:

+8>&

The input register


! .%
#

15

# !! 1

,D

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

) 7

+8>&

The output Register


#

!
!

8
!

*1

! 1 B B

*1
*

.1
*

,A

01
#

'

01
$*

16

4
&

01

,
$*

4
&

etienne.sicard@insa-toulouse.fr

'

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

)0 7

+8>&

A manual microprocessor
1

1 1

!
'

'
#

'

(1

* #

'D

7 (

,5

!1

!
#

*1

!
!

# '

/
#

01
3

#
3

# /

0(

,51

!!

!
1

/ *01

/ 0B

17

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

( : #

<

!)

)7

7 :

+8>&

0 +8>&

The Phase Generator


!

#
!

18

?
&

&

.1

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR


#

L7

JANUARY 2005
/

>9

)7

*
@

$
'

)7

%+ &

(1

%+ &
2

Program Counter 0 to 15

!
1
19

'?

>>(
1

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

&

&
'535(
3

**

1#

,D

##

#
#

!
> !
2

'

*
$

20

)8

,1

+8

!#

"

5+8>&

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

The Instruction Register


!
!

5%#

!1
#

#
!

#
1

&

>

$%

21

$ **

#
%

&

! # *
#

>.1

! #

# $%

&

!!

:
!

# !
#

&$

# *

$.

7 +8>&

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

The MicroInstruction Controler


J
J

# I

I !

!
B

!1

B7&

#
!

9999
9

!
1

, !

1 *

The Complete Microprocessor


#%
#
C

#
1

22

#%# *
!

#
>A

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

>A1

9,9, H999,

93D,

>

99,9 H99,9

93>>

9,99 H9999

93$9

74
5

'>(

'.(

'$( ?

*
'A(
#

',(

'5( 7
#

'D(

'G(

#!

+8>&
:

*'>(
!

# *

*1 #

!!

,1

>1

9 '.(

>1
'$(1

',(

/6

'9,9,(0

23

'D(
!

! 2

# 'A(

1
/74 0

* #
1

etienne.sicard@insa-toulouse.fr

'G(
'5(
07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

##

* *

5$

' 7

+8>&

Memory Move
7

B7

#
!

!
#

7
!

1
#

# 1

24

!
!

.1
#
!
!

!
!!

>5

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

&

&

&
4

4
$&

&
3
$ &/
*

&

&
'535(

'535(
$'&
##

: 7

(1

&

: 7

#!

$%#

# #

8 #
#

# '@

Physical Implementation
Description of the design flow
#

#
#

!
!

# $

>- @

25

7@ B
67E

3!

"
!

7@ B 1

C1

"
67E

%&%1

7@ B 1

# $

"

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

C.

'

!(

'

%&%(

7@ B

'

< 8

'(

"

7 .0@

VERILOG translation
#

.,>

#
%

67E

'= A
# ##

26

7 .0@

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

'

JANUARY 2005

7 .0@ #

%)

$- )

+8>&

!
3

#
!

- !

%#

!535

.9

# J@

'

535#

*
#

I 'B,(

'.

$- )

+ &

5#

27

etienne.sicard@insa-toulouse.fr

07/01/05

A VERY SIMPLE MICROPROCESSOR

JANUARY 2005

Conclusion
1

$%#
!
3

#
! #

#
3

1
!

References
),+

&

1N

01

1E

B 9%9>%

599D-$%D1,-->14

28

etienne.sicard@insa-toulouse.fr

07/01/05

You might also like