0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

5bit CPU 1命令、2命令、3命令、4命令(2種類)、5命令(2種類)

Last updated at Posted at 2025-07-02

5bit CPU 符号なし1命令 加算

plantuml
@startuml
skinparam shadowing false

state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111

state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算

@enduml

2命令

5bit CPU 符号なし2命令 加算+NOP

plantuml
@startuml
skinparam shadowing false

state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111

state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算

state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
@enduml

符号なし3命令 加算、減算、NOP

plantuml
@startuml
skinparam shadowing false

state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111

state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算

state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00011 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算

state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP
@enduml

符号なし4命令 加算、減産、NOP 右シフト0埋め

plantuml
@startuml
skinparam shadowing false

state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111

state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算

state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算

state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP

state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state01000 : 右シフト
state10001 --> state01000 : 右シフト
state10010 --> state01001 : 右シフト
state10011 --> state01001 : 右シフト
state10100 --> state01010 : 右シフト
state10101 --> state01010 : 右シフト
state10110 --> state01011 : 右シフト
state10111 --> state01011 : 右シフト
state11000 --> state01100 : 右シフト
state11001 --> state01100 : 右シフト
state11010 --> state01101 : 右シフト
state11011 --> state01101 : 右シフト
state11100 --> state01101 : 右シフト
state11101 --> state01110 : 右シフト
state11110 --> state01111 : 右シフト
state11111 --> state01111 : 右シフト

@enduml

符号なし4命令 加算、減産、NOP 右シフト最左辺値埋め

@startuml
skinparam shadowing false

state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111

state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算

state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算

state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP

state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state11000 : 右シフト
state10001 --> state11000 : 右シフト
state10010 --> state11001 : 右シフト
state10011 --> state11001 : 右シフト
state10100 --> state11010 : 右シフト
state10101 --> state11010 : 右シフト
state10110 --> state11011 : 右シフト
state10111 --> state11011 : 右シフト
state11000 --> state11100 : 右シフト
state11001 --> state11100 : 右シフト
state11010 --> state11101 : 右シフト
state11011 --> state11101 : 右シフト
state11100 --> state11101 : 右シフト
state11101 --> state11110 : 右シフト
state11110 --> state11111 : 右シフト
state11111 --> state11111 : 右シフト
@enduml

符号なし5命令 加算、減算、NOP、右シフト、左シフト

plantuml
@startuml
skinparam shadowing false

state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111

state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算

state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算

state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP

state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state01000 : 右シフト
state10001 --> state01000 : 右シフト
state10010 --> state01001 : 右シフト
state10011 --> state01001 : 右シフト
state10100 --> state01010 : 右シフト
state10101 --> state01010 : 右シフト
state10110 --> state01011 : 右シフト
state10111 --> state01011 : 右シフト
state11000 --> state01100 : 右シフト
state11001 --> state01100 : 右シフト
state11010 --> state01101 : 右シフト
state11011 --> state01101 : 右シフト
state11100 --> state01101 : 右シフト
state11101 --> state01110 : 右シフト
state11110 --> state01111 : 右シフト
state11111 --> state01111 : 右シフト

state00000 --> state00000 : 左シフト
state00001 --> state00010 : 左シフト
state00010 --> state00100 : 左シフト
state00011 --> state00110 : 左シフト
state00100 --> state01000 : 左シフト
state00101 --> state01010 : 左シフト
state00110 --> state01100 : 左シフト
state00111 --> state01110 : 左シフト
state01000 --> state10000 : 左シフト
state01001 --> state10010 : 左シフト
state01010 --> state10100 : 左シフト
state01011 --> state10110 : 左シフト
state01100 --> state11000 : 左シフト
state01101 --> state11010 : 左シフト
state01110 --> state11100 : 左シフト
state01111 --> state11110 : 左シフト
state10000 --> state00000 : 左シフト
state10001 --> state00010 : 左シフト
state10010 --> state00100 : 左シフト
state10011 --> state00110 : 左シフト
state10100 --> state01000 : 左シフト
state10101 --> state01010 : 左シフト
state10110 --> state01100 : 左シフト
state10111 --> state01110 : 左シフト
state11000 --> state10000 : 左シフト
state11001 --> state10010 : 左シフト
state11010 --> state10100 : 左シフト
state11011 --> state10110 : 左シフト
state11100 --> state11100 : 左シフト
state11101 --> state11010 : 左シフト
state11110 --> state11100 : 左シフト
state11111 --> state11110 : 左シフト
@endum

符号なし4命令 加算、減産、NOP 右シフト最左辺値埋め、左シフト際右辺値埋め

plantuml
@startuml
skinparam shadowing false

state00000: 00000
state00001: 00001
state00010: 00010
state00011: 00011
state00100: 00100
state00101: 00101
state00110: 00110
state00111: 00111
state01000: 01000
state01001: 01001
state01010: 01010
state01011: 01011
state01100: 01100
state01101: 01101
state01110: 01110
state01111: 01111
state10000: 10000
state10001: 10001
state10010: 10010
state10011: 10011
state10100: 10100
state10101: 10101
state10110: 10110
state10111: 10111
state11000: 11000
state11001: 11001
state11010: 11010
state11011: 11011
state11100: 11100
state11101: 11101
state11110: 11110
state11111: 11111

state00000 --> state00001 : 加算
state00001 --> state00010 : 加算
state00010 --> state00011 : 加算
state00011 --> state00100 : 加算
state00100 --> state00101 : 加算
state00101 --> state00110 : 加算
state00110 --> state00111 : 加算
state00111 --> state01000 : 加算
state01000 --> state01001 : 加算
state01001 --> state01010 : 加算
state01010 --> state01011 : 加算
state01011 --> state01100 : 加算
state01100 --> state01101 : 加算
state01101 --> state01110 : 加算
state01110 --> state01111 : 加算
state01111 --> state10000 : 加算
state10000 --> state10001 : 加算
state10001 --> state10010 : 加算
state10010 --> state10011 : 加算
state10011 --> state10100 : 加算
state10100 --> state10101 : 加算
state10101 --> state10110 : 加算
state10110 --> state10111 : 加算
state10111 --> state11000 : 加算
state11000 --> state11001 : 加算
state11001 --> state11010 : 加算
state11010 --> state11011 : 加算
state11011 --> state11100 : 加算
state11100 --> state11101 : 加算
state11101 --> state11110 : 加算
state11110 --> state11111 : 加算
state11111 --> state00000 : 加算

state00000 --> state11111 : 減算
state00001 --> state00000 : 減算
state00010 --> state00001 : 減算
state00011 --> state00010 : 減算
state00100 --> state00021 : 減算
state00101 --> state00100 : 減算
state00110 --> state00101 : 減算
state00111 --> state00110 : 減算
state01000 --> state00111 : 減算
state01001 --> state01000 : 減算
state01010 --> state01001 : 減算
state01011 --> state01010 : 減算
state01100 --> state01011 : 減算
state01101 --> state01100 : 減算
state01110 --> state01101 : 減算
state01111 --> state01110 : 減算
state10000 --> state01111 : 減算
state10001 --> state10000 : 減算
state10010 --> state10001 : 減算
state10011 --> state10010 : 減算
state10100 --> state10011 : 減算
state10101 --> state10100 : 減算
state10110 --> state10101 : 減算
state10111 --> state10110 : 減算
state11000 --> state10111 : 減算
state11001 --> state11000 : 減算
state11010 --> state11001 : 減算
state11011 --> state11010 : 減算
state11100 --> state11011 : 減算
state11101 --> state11100 : 減算
state11110 --> state11101 : 減算
state11111 --> state11110 : 減算

state00000 --> state00000 : NOP
state00001 --> state00001 : NOP
state00010 --> state00010 : NOP
state00011 --> state00011 : NOP
state00100 --> state00100 : NOP
state00101 --> state00101 : NOP
state00110 --> state00110 : NOP
state00111 --> state00111 : NOP
state01000 --> state01000 : NOP
state01001 --> state01001 : NOP
state01010 --> state01010 : NOP
state01011 --> state01011 : NOP
state01100 --> state01100 : NOP
state01101 --> state01101 : NOP
state01110 --> state01110 : NOP
state01111 --> state01111 : NOP
state10000 --> state10000 : NOP
state10001 --> state10001 : NOP
state10010 --> state10010 : NOP
state10011 --> state10011 : NOP
state10100 --> state10100 : NOP
state10101 --> state10101 : NOP
state10110 --> state10110 : NOP
state10111 --> state10111 : NOP
state11000 --> state11000 : NOP
state11001 --> state11001 : NOP
state11010 --> state11010 : NOP
state11011 --> state11011 : NOP
state11100 --> state11100 : NOP
state11101 --> state11101 : NOP
state11110 --> state11110 : NOP
state11111 --> state11111 : NOP

state00000 --> state00000 : 右シフト
state00001 --> state00000 : 右シフト
state00010 --> state00001 : 右シフト
state00011 --> state00001 : 右シフト
state00100 --> state00010 : 右シフト
state00101 --> state00010 : 右シフト
state00110 --> state00011 : 右シフト
state00111 --> state00011 : 右シフト
state01000 --> state00100 : 右シフト
state01001 --> state00100 : 右シフト
state01010 --> state00101 : 右シフト
state01011 --> state00101 : 右シフト
state01100 --> state00110 : 右シフト
state01101 --> state00110 : 右シフト
state01110 --> state00111 : 右シフト
state01111 --> state00111 : 右シフト
state10000 --> state11000 : 右シフト
state10001 --> state11000 : 右シフト
state10010 --> state11001 : 右シフト
state10011 --> state11001 : 右シフト
state10100 --> state11010 : 右シフト
state10101 --> state11010 : 右シフト
state10110 --> state11011 : 右シフト
state10111 --> state11011 : 右シフト
state11000 --> state11100 : 右シフト
state11001 --> state11100 : 右シフト
state11010 --> state11101 : 右シフト
state11011 --> state11101 : 右シフト
state11100 --> state11101 : 右シフト
state11101 --> state11110 : 右シフト
state11110 --> state11111 : 右シフト
state11111 --> state11111 : 右シフト

state00000 --> state00000 : 左シフト
state00001 --> state00011 : 左シフト
state00010 --> state00100 : 左シフト
state00011 --> state00111 : 左シフト
state00100 --> state01000 : 左シフト
state00101 --> state01011 : 左シフト
state00110 --> state01100 : 左シフト
state00111 --> state01111 : 左シフト
state01000 --> state10000 : 左シフト
state01001 --> state10011 : 左シフト
state01010 --> state10100 : 左シフト
state01011 --> state10111 : 左シフト
state01100 --> state11000 : 左シフト
state01101 --> state11011 : 左シフト
state01110 --> state11100 : 左シフト
state01111 --> state11111 : 左シフト
state10000 --> state00000 : 左シフト
state10001 --> state00011 : 左シフト
state10010 --> state00100 : 左シフト
state10011 --> state00111 : 左シフト
state10100 --> state01000 : 左シフト
state10101 --> state01011 : 左シフト
state10110 --> state01100 : 左シフト
state10111 --> state01111 : 左シフト
state11000 --> state10000 : 左シフト
state11001 --> state10011 : 左シフト
state11010 --> state10100 : 左シフト
state11011 --> state10111 : 左シフト
state11100 --> state11100 : 左シフト
state11101 --> state11011 : 左シフト
state11110 --> state11100 : 左シフト
state11111 --> state11111 : 左シフト

@enduml

programで、PlantUMLのソースを生成。
6bit CPUは、自動生成でやってみる。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?