diff options
| author | Julian Blake Kongslie | 2021-07-16 13:22:51 -0700 |
|---|---|---|
| committer | Julian Blake Kongslie | 2021-07-16 13:22:51 -0700 |
| commit | 765420c81d144bb08021a7aa09a9a0692f5d6322 (patch) | |
| tree | 757bee21385f646fe1fedb1eeba627acbb8cdd09 /modules.rb | |
| parent | Reformat modules.rb to be a little easier to read. (diff) | |
| download | breadboarding-765420c81d144bb08021a7aa09a9a0692f5d6322.tar.xz | |
Add counter module and simplify board design for shift instructions.
Diffstat (limited to 'modules.rb')
| -rw-r--r-- | modules.rb | 65 |
1 files changed, 34 insertions, 31 deletions
| @@ -1,39 +1,42 @@ | |||
| 1 | urom :alu, :op, :op_sel0, :op_sel1, :op_sel2, :outaddr, :outdata | 1 | urom :alu, :op, :op_sel0, :op_sel1, :op_sel2, :outaddr, :outdata |
| 2 | urom_alias :alu, :and, :op | 2 | urom_alias :alu, :and, :op |
| 3 | urom_alias :alu, :or, :op, :op_sel0 | 3 | urom_alias :alu, :or, :op, :op_sel0 |
| 4 | urom_alias :alu, :xor, :op, :op_sel1 | 4 | urom_alias :alu, :xor, :op, :op_sel1 |
| 5 | urom_alias :alu, :add, :op, :op_sel0, :op_sel1 | 5 | urom_alias :alu, :add, :op, :op_sel0, :op_sel1 |
| 6 | urom_alias :alu, :sub, :op, :op_sel2 | 6 | urom_alias :alu, :sub, :op, :op_sel2 |
| 7 | urom_alias :alu, :cmp, :op, :op_sel0, :op_sel2 | 7 | urom_alias :alu, :cmp, :op, :op_sel0, :op_sel2 |
| 8 | urom_alias :alu, :lshift, :op, :op_sel1, :op_sel2 | 8 | urom_alias :alu, :lshift, :op, :op_sel1, :op_sel2 |
| 9 | urom_alias :alu, :rshift, :op, :op_sel0, :op_sel1, :op_sel2 | 9 | urom_alias :alu, :rshift, :op, :op_sel0, :op_sel1, :op_sel2 |
| 10 | 10 | ||
| 11 | urom :control, :halt, :set_uip_cond, :nocond, :outaddr, :outdata | 11 | urom :control, :halt, :set_uip_cond, :nocond, :icond, :outaddr, :outdata |
| 12 | urom_alias :control, :set_uip, :set_uip_cond, :nocond | 12 | urom_alias :control, :set_uip, :set_uip_cond, :nocond |
| 13 | urom_alias :control, :set_uip_if_nonzero, :set_uip_cond | 13 | urom_alias :control, :set_uip_if_nonzero, :set_uip_cond |
| 14 | urom_alias :control, :set_uip_if_zero, :set_uip_cond, :icond | ||
| 14 | 15 | ||
| 15 | urom :decode, :clear, :decode, :outaddr, :outaddr_sel0, :outaddr_sel1, :outdata, :outdata_sel0, :outdata_sel1 | 16 | urom :counter, :load, :increment, :decrement, :outdata |
| 16 | urom_alias :decode, :outaddr_a, :outaddr | ||
| 17 | urom_alias :decode, :outaddr_b, :outaddr, :outaddr_sel0 | ||
| 18 | urom_alias :decode, :outaddr_uip, :outaddr, :outaddr_sel1 | ||
| 19 | urom_alias :decode, :outdata_a, :outdata | ||
| 20 | urom_alias :decode, :outdata_b, :outdata, :outdata_sel0 | ||
| 21 | urom_alias :decode, :outdata_needmore, :outdata, :outdata_sel1 | ||
| 22 | 17 | ||
| 23 | urom :memory, :store, :outdata | 18 | urom :decode, :clear, :decode, :outaddr, :outaddr_sel0, :outaddr_sel1, :outdata, :outdata_sel0, :outdata_sel1 |
| 19 | urom_alias :decode, :outaddr_a, :outaddr | ||
| 20 | urom_alias :decode, :outaddr_b, :outaddr, :outaddr_sel0 | ||
| 21 | urom_alias :decode, :outaddr_uip, :outaddr, :outaddr_sel1 | ||
| 22 | urom_alias :decode, :outdata_a, :outdata | ||
| 23 | urom_alias :decode, :outdata_b, :outdata, :outdata_sel0 | ||
| 24 | urom_alias :decode, :outdata_needmore, :outdata, :outdata_sel1 | ||
| 24 | 25 | ||
| 25 | urom :pc, :load, :increment, :outaddr | 26 | urom :memory, :store, :outdata |
| 26 | 27 | ||
| 27 | urom :rf, :store, :reset, :outdata | 28 | urom :pc, :load, :increment, :outaddr |
| 28 | 29 | ||
| 29 | urom :tmp0, :load, :load_sel0, :outaddr, :outdata | 30 | urom :rf, :store, :reset, :outdata |
| 30 | urom_alias :tmp0, :loaddata, :load | ||
| 31 | urom_alias :tmp0, :loadaddr, :load, :load_sel0 | ||
| 32 | 31 | ||
| 33 | urom :tmp1, :load, :load_sel0, :outaddr, :outdata | 32 | urom :tmp0, :load, :load_sel0, :outaddr, :outdata |
| 34 | urom_alias :tmp1, :loaddata, :load | 33 | urom_alias :tmp0, :loaddata, :load |
| 35 | urom_alias :tmp1, :loadaddr, :load, :load_sel0 | 34 | urom_alias :tmp0, :loadaddr, :load, :load_sel0 |
| 36 | 35 | ||
| 37 | urom :uart, :tx, :rx, :outdata, :outdata_sel0 | 36 | urom :tmp1, :load, :load_sel0, :outaddr, :outdata |
| 38 | urom_alias :uart, :outdata_txfull, :outdata | 37 | urom_alias :tmp1, :loaddata, :load |
| 39 | urom_alias :uart, :outdata_rxempty, :outdata, :outdata_sel0 | 38 | urom_alias :tmp1, :loadaddr, :load, :load_sel0 |
| 39 | |||
| 40 | urom :uart, :tx, :rx, :outdata, :outdata_sel0 | ||
| 41 | urom_alias :uart, :outdata_txfull, :outdata | ||
| 42 | urom_alias :uart, :outdata_rxempty, :outdata, :outdata_sel0 | ||
