26 lines
687 B
Python
26 lines
687 B
Python
|
import machine
|
||
|
from mmio import *
|
||
|
|
||
|
def read_file(filename):
|
||
|
with open(filename, 'rb') as f:
|
||
|
return f.read()
|
||
|
|
||
|
def run_program(prog, cl_I):
|
||
|
# Reset PicoRV32
|
||
|
machine.mem32[picorv32_enable] = 0
|
||
|
machine.mem32[picorv32_ram_iface_master_select] = 0
|
||
|
|
||
|
offset = picorv32_ram
|
||
|
for b in prog:
|
||
|
machine.mem8[offset] = b
|
||
|
offset += 1
|
||
|
|
||
|
for i in range(len(prog)):
|
||
|
assert machine.mem8[picorv32_ram + i] == prog[i]
|
||
|
|
||
|
machine.mem32[picorv32_ram_iface_master_select] = 1
|
||
|
assert machine.mem8[picorv32_ram] == 0
|
||
|
machine.mem32[picorv32_params_cl_I] = cl_I
|
||
|
machine.mem32[picorv32_enable] = 1
|
||
|
return machine.mem32[picorv32_params_zset]
|