In the rhea package there are numerous functions, ~~modules~~ blocks, and objects that are used to develop a core. The following is a list of the most commonly used.

Core development

class rhea.system.Global(clock=None, reset=None, frequency=1)
class rhea.system.Clock(val, frequency=1)
class rhea.system.Reset(val, active, isasync)
rhea.system.Signals(sigtype, num_sigs)

Create a list of signals :param sigtype: The type to create a Signal from. :type sigtype: bool, intbv :param num_sigs: The number of signals to create in the list :type num_sigs: int

Returns:a list of signals all of type sigtype
Return type:sigs

Creating multiple signals of the same type is common, this function helps facilitate the creation of multiple signals of the same type.

The following example creates two signals of bool
>>> enable, timeout = Signals(bool(0), 2)
The following creates a list-of-signals of 8-bit types
>>> mem = Signals(intbv(0)[8:], 256)
class rhea.system.ControlStatusBase

Memory-mapped interfaces

Streaming interfaces

rhea.cores.misc.assign()

assign a = b

rhea.cores.misc.syncro()

signal synchronizer

Parameters:
  • sigin – signal input.
  • sigout – synchronized signal output.
  • posedge – a positive edge in the sync
  • negedge – a negitive edge in the sync
  • num_sync_ff – the number of sync stages.

Test Development