heron_sqrt/bericht/rt_folgen.txt
2015-01-14 10:40:58 +01:00

146 lines
4.1 KiB
Plaintext

#
#Busse
#
#- BUS_A (Ad)
#- BUS_B
#- BUS_C
#
#- EDB (Externer Datenbus)
#- EAB (Externer Adressbus)
#
#Register
#
#- I (Schleifenzähler)
#
#- ADR (Adressregister)
#- DIN (Data In)
#- DO (Data out)
#
#Rechenwerke
#
#ALU -> ALU_A, ALU_B
#DIV -> DIV_A, DIV_B
|--+-------------------|
| | NA |
| | X-X |
| | BC: |
| | -> Load=0: IDLE |
| | -> Load=1: LD_N_1 |
| | Idle |
|--+-------------------|
|-------------------+-----------|
| 0 -> BUS_A -> ADR | DR |
| EDB -> DIN | N/A - N/A |
| | LD_N_2 |
| | LD_N_1 |
|-------------------+-----------|
|-----------------------+--------------|
| | NA |
| DIN -> BUS_B -> ALU_B | ADD - Z: SET |
| 0 -> BUS_A -> ALU_A | N/A - N/A |
| | I_GT_ZERO |
| | LD_N_2 |
|-----------------------+--------------|
|-----------------------+------------------|
| ALU_RES -> BUS_A -> I | NA |
| | N/A - N/A |
| | BC: |
| | -> Z = 0: LD_S_1 |
| | -> Z = 1: IDLE |
| | I_GT_ZERO |
|-----------------------+------------------|
|-------------------+-----------|
| I -> BUS_A -> ADR | DR |
| EDB -> DIN | N/A - N/A |
| | LD_S_2 |
| | LD_S_1 |
|-------------------+-----------|
|-----------------------+--------------|
| DIN -> BUS_A -> S | N/A |
| DIN -> BUS_A -> ALU_A | SUB - S: SET |
| 1 -> BUS_B -> ALU_B | - Z: SET |
| | S_GT_ONE |
| | LD_S_2 |
|-----------------------+--------------|
|--+------------------------|
| | N/A |
| | N/A |
| | BC: |
| | -> S=0 and Z=0: X_1 |
| | -> S=1 or Z=1: STORE_X |
| | S_GT_ONE |
|--+------------------------|
|-------------------------------+-------|
| S_{shift 1} -> BUS_A -> DIV_A | N/A |
| S_{shift 1} -> BUS_A -> X | N/A |
| S_{shift 1} -> BUS_A -> OLD_X | DIV_2 |
| S -> BUS_B -> DIV_B | X_1 |
|-------------------------------+-------|
|---------------------+-------|
| X -> BUS_A -> DIV_A | N/A |
| S -> BUS_B -> DIV_B | N/A |
| | DIV_2 |
| | DIV_1 |
|---------------------+-------|
|--+-------|
| | N/A |
| | N/A |
| | DIV_3 |
| | DIV_2 |
|--+-------|
|--+-------|
| | N/A |
| | N/A |
| | DIV_4 |
| | DIV_3 |
|--+-------|
|---------------------------------+---------------|
| X_{shift 1} -> BUS_A -> ALU_A | N/A |
| DIV_{shift 1} -> BUS_B -> ALU_B | ADD - N/A |
| | OLD_X_LTE_X_1 |
| | DIV_4 |
|---------------------------------+---------------|
|---------------------------+----------------------|
| ALU_RES -> BUS_A -> X | N/A |
| ALU_RES -> BUS_A -> ALU_A | SUB - C: SET, Z: SET |
| OLD_X -> BUS_B -> ALU_B | OLD_X_LTE_X_2 |
| | OLD_X_LTE_X_1 | :
|---------------------------+----------------------|
|---------------------+------------------------|
| X -> BUS_A -> OLD_X | N/A |
| | N/A |
| | BC: |
| | -> C=1 or Z=1: STORE_X |
| | -> C=0: DIV_1 |
| | OLD_X_LTE_X_2 |
|---------------------+------------------------|
|----------------------------+---------|
| X (shifted) -> BUS_A -> DO | DW |
| | N/A |
| | DEC_I |
| | STORE_X |
|----------------------------+---------|
|---------------------+--------------|
| I -> BUS_A -> ALU_A | N/A |
| 1 -> BUS_B -> ALU_B | SUB - Z: SET |
| | I_GT_ZERO |
| | DEC_I |
|---------------------+--------------|