The Core

The Core is the main Memory were the programs fight themselves. (As opposed to each-others, as nothing prevent you to hurt yourself.)


As we can see, the Core is split into RAM modules that each of them store a logical part of the Instructions. there are exactly 6 of them. One for each part:

  1. OpCode
  2. Modifier
  3. AMode
  4. ANumber
  5. BMode
  6. BNumber



Control Signals

  • pc
  • Wofs
  • din
  • ROfs
  • we

Synchronous signals

  • clk
  • rst_n


  • maxSize: the depth of each internal RAM


As every good memory, we only have one output port being the data at the ROfs address.

  • dout


The Core has one main combinatorial subprocess that just split the incoming Instruction in chuncks for the RAM modules, and join back the chunks from the RAM modules into one Instruction for the others Modules.

internal Signals

Internal signals are only intercommunication signals between the sub-modules.



See The RAM.

The basic component of the Core is a RAM with both a read and a write address bus. This will allow us to make asynchronous read, while making synchronous write.


See Fold.

The Fold module just care about the fact that all our Read/Write are relative to the current Instruction Pointer. The Core itself, through this module takes offset as Input and translate those Offset as Absolute Addresses.