diff --git a/INSTRUCTIONS.md b/INSTRUCTIONS.md index 278cbb0..df4014e 100644 --- a/INSTRUCTIONS.md +++ b/INSTRUCTIONS.md @@ -187,16 +187,26 @@ could be implemented with pop/jump ### POP -# Planned to haves +# Planned features - 1-cycle shift and add - 1-cycle intger division -- floating point arithmetic - interrupts +- timers + * watchdog timers - atomic compare-and-swap - atomic load-link/store-conditional - memory management - memory-mapped registers -- sine and cosine functions, see [cordic][1] +- co-processor design and abi + * sine and cosine functions as co-processor, see [cordic][1] + * floating point arithmetic + * cryptographic functions as a co-processor + - AES + - CRC32 + - Parity check + - md5 + - SHA-1 + - SHA-256 [1]: https://en.wikipedia.org/wiki/CORDIC diff --git a/alu.dig b/alu.dig index 4790a7c..0df437c 100644 --- a/alu.dig +++ b/alu.dig @@ -67,7 +67,7 @@ 32 - + In @@ -81,7 +81,7 @@ 32 - + multiply-add.dig @@ -100,7 +100,7 @@ 32 - + Neg @@ -112,16 +112,6 @@ - - Out - - - Label - LZ - - - - Out @@ -130,7 +120,7 @@ Z - + Splitter @@ -218,7 +208,7 @@ 0 - + Out @@ -263,7 +253,7 @@ NetName - s + sel @@ -273,7 +263,7 @@ NetName - s + sel @@ -286,21 +276,7 @@ C_i - - - - In - - - Label - Op - - - Bits - 4 - - - + Splitter @@ -318,7 +294,7 @@ 31,1 - + Splitter @@ -336,55 +312,7 @@ 31,1 - - - - Tunnel - - - NetName - s - - - - - - Splitter - - - Input Splitting - 1*3 - - - Output Splitting - 3 - - - - - - Splitter - - - Input Splitting - 4 - - - Output Splitting - 1*4 - - - - - - And - - - wideShape - true - - - + Splitter @@ -398,23 +326,7 @@ 5 - - - - And - - - wideShape - true - - - inverterConfig - - In_2 - - - - + And @@ -438,7 +350,7 @@ true - + And @@ -448,107 +360,456 @@ true - - - - nor32.dig - nor32.dig - + + + + nor32.dig + + shift32.dig - + + + + Text + + + Description + ALU Opcode + +0000 -> ADD +0001 -> SUB +0010 -> MAD +0011 -> MADS +0100 -> AND +0101 -> OR +0110 -> XOR +0111 -> NEG +1000 -> LSL +1001 -> LSR +1010 -> SCL +1011 -> SCR +1100 -> ROL +1101 -> ROR +1110 -> ASR +1111 -> NOP + + + + + + In + + + Label + OP + + + Bits + 4 + + + + + + Splitter + + + Input Splitting + 4 + + + Output Splitting + 1*4 + + + + + + And + + + inverterConfig + + In_1 + In_2 + + + + Inputs + 4 + + + + + + Tunnel + + + NetName + mad_s + + + + + + Splitter + + + Input Splitting + 1*3 + + + Output Splitting + 3 + + + + + + Tunnel + + + NetName + shift_op + + + + + + Tunnel + + + rotation + + + + NetName + shift_op + + + + + + Tunnel + + + rotation + + + + NetName + mad_s + + + + + + And + + + inverterConfig + + In_1 + In_2 + + + + Inputs + 3 + + + + + + Tunnel + + + NetName + long_z + + + + + + Multiplexer + + + + + Tunnel + + + NetName + long_z + + + + + + And + + + + + And + + + + + Or + + + Inputs + 3 + + + + + + Splitter + + + Input Splitting + 1*3 + + + Output Splitting + 3 + + + + + + And + + + + + And + + + inverterConfig + + In_2 + In_3 + + + + Inputs + 3 + + + + + + And + + + inverterConfig + + In_1 + In_2 + + + + Inputs + 3 + + + + + + Or + + + Inputs + 4 + + + + + + And + + + inverterConfig + + In_1 + In_2 + + + + Inputs + 3 + + + + + + And + + + inverterConfig + + In_1 + In_3 + + + + Inputs + 3 + + + + + + Or + + + Inputs + 3 + + + + + + Tunnel + + + NetName + sel + + + - - + + - - - - - - - - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - - - - - - - - - + - + + + + + + + + + - - + + - - + + - + + + + + - - + + - + + + + + + + + + + + + + + + + + - + @@ -556,55 +817,91 @@ - + + + + + + + + + + + + + - - - - - + - + - + + + + + - - + + + + + + - - + + - - + + - - + + - + + + + + - - + + - + + + + + + + + + + + + + + + + + @@ -612,23 +909,35 @@ - - + + - + + + + + + + + + + + + + + + + + - - - - - + @@ -636,35 +945,51 @@ - - + + - - + + - - + + - - + + - + + + + + + + + + - + - + + + + + + + + + @@ -672,27 +997,31 @@ - - + + - + + + + + - - + + - - + + - + - + @@ -700,31 +1029,55 @@ - + + + + + + + + + - + - - + + - - + + + + + + + + + + + + + + + + + + - + @@ -740,15 +1093,15 @@ - - + + - + @@ -756,79 +1109,115 @@ - - + + - + + + + + + + + + + + + + - + - - + + - + + + + + - - - - - - + + - - + + - + + + + + - - + + - + + + + + + + + + + + + + - + - - - - - + - + + + + + + + + + + + + + @@ -836,57 +1225,141 @@ - - + + - - + + - - + + - - + + - - + + - - + + + + + + - + - + - - + + - + + + + + + + + + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -895,76 +1368,44 @@ - - - - - + - + - - - - - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - + + - + + + + + @@ -976,91 +1417,191 @@ - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - + + - - + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + @@ -1072,61 +1613,73 @@ - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file