diff options
| author | Louis Burda <quent.burda@gmail.com> | 2023-12-25 04:13:41 +0100 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2023-12-25 04:13:41 +0100 |
| commit | 8ec5b039472f9fbe24f2eb1c5d8e66a7551a33fd (patch) | |
| tree | 55f8af2371e6f9bd75f48f991984a818de9dbb1b /tpu.c | |
| parent | ee7820e1cfde69c16130a43c8b7e7df1724afb9e (diff) | |
| download | tis100-8ec5b039472f9fbe24f2eb1c5d8e66a7551a33fd.tar.gz tis100-8ec5b039472f9fbe24f2eb1c5d8e66a7551a33fd.zip | |
Fixup more behaviour - add dim idle indicator
Diffstat (limited to 'tpu.c')
| -rw-r--r-- | tpu.c | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -205,7 +205,7 @@ tpu_init(struct tpu *tpu) tpu->disabled = false; tpu->mode = MODE_IDLE; - tpu->idle = true; + tpu->idle = false; tpu->x = 0; tpu->y = 0; @@ -565,6 +565,7 @@ tpu_step(struct tpu *tpu) if (tpu->pc >= tpu->inst_cnt) tpu->pc = 0; } else { tpu->mode = MODE_IDLE; + tpu->idle = true; } } @@ -672,20 +673,27 @@ tis_step(struct tis *tis) bool running; size_t i; - tis_communicate(tis); - for (i = 0; i < TPU_MAP_BUCKETS; i++) { link = tis->tpu_map.buckets[i]; for (; link; link = link->next) tpu_step(link->tpu); } + tis_communicate(tis); + for (i = 0; i < TPU_MAP_BUCKETS; i++) { link = tis->tpu_map.buckets[i]; for (; link; link = link->next) tpu_update(link->tpu); } + for (i = 0; i < TIS_MAX_IO_PORTS; i++) { + if (tis->in_ports[i]) + tpu_port_update(&tis->in_ports[i]->port); + if (tis->out_ports[i]) + tpu_port_update(&tis->out_ports[i]->port); + } + running = false; for (i = 0; i < TPU_MAP_BUCKETS; i++) { link = tis->tpu_map.buckets[i]; @@ -699,13 +707,6 @@ tis_step(struct tis *tis) } } - for (i = 0; i < TIS_MAX_IO_PORTS; i++) { - if (tis->in_ports[i]) - tpu_port_update(&tis->in_ports[i]->port); - if (tis->out_ports[i]) - tpu_port_update(&tis->out_ports[i]->port); - } - tis->steps += 1; return running; |
