/* MUSE board */ %i "muse16.sfl" circuit_class r65536_24 { input adrs<16>; /* adress */ input din<24>; /* input */ output dout<24>; /* output */ instrin read; /* memory read */ instrin write; /* memory write */ mem cell[65536]<24>; /* memory */ instruct_arg read(adrs); instruct_arg write(adrs,din); instruct read dout = cell[adrs]; instruct write cell[adrs] := din; } circuit_class r65536_16 { input adrs<16>; /* adress */ input din<16>; /* input */ output dout<16>; /* output */ instrin read; /* memory read */ instrin write; /* memory write */ mem cell[65536]<16>; /* memory */ instruct_arg read(adrs); instruct_arg write(adrs,din); instruct read dout = cell[adrs]; instruct write cell[adrs] := din; } module board { muse16 cpu; r65536_24 imem; r65536_16 dmem; instruct cpu.imem_rd cpu.din = imem.read(cpu.ia).dout; instruct cpu.dmem_rd cpu.din = 0x00 || dmem.read(cpu.da).dout; instruct cpu.dmem_wr dmem.write(cpu.da,cpu.dout); }