cours/digital logic sim computer.md
oscar.plaisant@icloud.com a2ee0fa5ca from github to this gitea
2023-10-23 23:09:51 +02:00

2.3 KiB

up:: Logique séquentielle #informatique #maths/logique

ALU binary operators

bin operator
000 COMParison
001 zero
010 OR
011 AND
100 ADD (+)
101 SUB (-)
110 COPY A
111 COPY B

How to operate

op exec

op exec is the component that gathers the ALU and the data registers. It can :

  • perform operations with the ALU
  • read data : register to ALU inputs
  • write data : ALU output to registers
  • take input : 8 bit bus to ALU inputs
  • give output : ALU output or registers to 8 bit bus

[!info] Writing data to a register It is not possible to write data directly from the 8 bit bus to the registers. If you want to register some data, you have to do the following :

  • write the data to the ALU inputs (input A for example)
  • set the ALU operation to copy (copy A in our example, that is 110)
  • write from the alu to the register (give the register address in the 8 bit bus, and set the from ALU and to register bits)

Binary code

The binary code of the CPU. They are stored in 2 octets.

binary code action
0000 0000 0000 0000 NOOP
SET ALU OPERATIONS
XXX0 0000 0000 0001 set X as ALU op
0000 0000 0000 0001 COMParison
0001 0000 0000 0001 ZERO
0010 0000 0000 0001 OR
0011 0000 0000 0001 AND
0100 0000 0000 0001 A+B
0101 0000 0000 0001 A-B
0110 0000 0000 0001 BYPASS A
0111 0000 0000 0001 BYPASS B
READ / WRITE
XXXX XXXX 0000 0010 X --> ALU A
XXXX XXXX 0000 0011 X --> ALU B
XXXX XXXX 0000 0110 reg X --> ALU A
XXXX XXXX 0000 0111 reg X --> ALU B
0000 0000 0000 1000 ALU --> reg

!digital logic sim computer 2023-07-18 09.57.52.excalidraw

bin operator
000 COMParison
001 zero
010 OR
011 AND
100 ADD (+)
101 SUB (-)
110 COPY A
111 COPY B

10 + 10

write 10 to A -> 0001010 00000100 write 11 to B -> 0001011 00001000 write 100 to op 00000100 00010000