from migen import * class Mem(Module): def __init__(self): # Initialize the beginning of the memory with integers # from 0 to 19. self.specials.mem = Memory(16, 2**12, init=list(range(20))) def do_simulation(self, selfp): # Read the memory. Use the cycle counter as address. value = selfp.mem[selfp.simulator.cycle_counter] # Print the result. Output is: # 0 # 1 # 2 # ... print(value) # Raising StopSimulation disables the current (and here, only one) # simulation function. Simulator stops when all functions are disabled. if value == 10: raise StopSimulation if __name__ == "__main__": run_simulation(Mem())