

Basilisc-2816 v0.1 is a small 2-bit serial 2/8/16 bit processor that fits into one Tiny Tapeout tile. It has been designed around the constraints of
Features:
op reg, src and op src, reg instruction formsmov, swapbinop: add/adc/sub/sbc/and/or/xor/cmp/test
neg/negc/revsub/revsbc/and_not/
or_not/xor_not/not,shl/shr/sar/rol/ror with variable or immediate shift count,mul: 8x8 and 8x16 bit multiply instructions, producing 2 result bits per cycle like everything else,branch cc, offset: relative branch
jump/call: absolut direct/indirect jump/call,ret = jump [pop][imm7] / [imm7*2]: zero page[r16 + imm2][r16 + r8][r16] with postincrement/predecrement[push] / [pop] / [top-of-stack] depending on whether the operand is written/read/modified[imm16]imm16 / [imm16] operands supported using extra instruction wordBasilisc-2816 v0.1 has been taped out in three variants for Tiny Tapeout 7:
mul Prefetch Hardened Uses Mux
instruction queue size with latches address
v0.1a yes 2 OpenLane 1 no 967
v0.1b no 3 OpenLane 2 no 202
v0.1c yes 4 OpenLane 2 yes 72
successively more experimental. Longer prefetch queue should help contribute to better performance, especially with long memory access latencies.
This is the 0.1c version. For more details, see https://github.com/toivoh/tt07-basilisc-2816-cpu/blob/main/docs/info.md or the documentation for Basilisc-2816 v0.1a CPU [967].
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | rx_in[0] | tx_out[0] | |
| 1 | rx_in[1] | tx_out[1] | |
| 2 | tx_fetch | ||
| 3 | tx_jump | ||
| 4 | |||
| 5 | |||
| 6 | |||
| 7 |