X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fexperiment%2Fscore6600.py;h=2132a358bf6e23a1a42867e37de0b04c99f194de;hb=1bfd510f5fbd5abf2118ec0fe7516331523df732;hp=3d360956d88ae8e64137b7b38564c8a435cb551b;hpb=5e09d63785cafd8d35e710d7f17bd15a9b715c26;p=soc.git diff --git a/src/experiment/score6600.py b/src/experiment/score6600.py index 3d360956..2132a358 100644 --- a/src/experiment/score6600.py +++ b/src/experiment/score6600.py @@ -9,14 +9,55 @@ from scoreboard.global_pending import GlobalPending from scoreboard.group_picker import GroupPicker from scoreboard.issue_unit import IssueUnitGroup, IssueUnitArray, RegDecode from scoreboard.shadow import ShadowMatrix, BranchSpeculationRecord +from scoreboard.instruction_q import Instruction, InstructionQ from compalu import ComputationUnitNoDelay from alu_hier import ALU, BranchALU from nmutil.latch import SRLatch +from nmutil.nmoperator import eq from random import randint, seed from copy import deepcopy +from math import log + + +class Memory(Elaboratable): + def __init__(self, regwid, addrw): + self.ddepth = regwid/8 + depth = (1<>self.ddepth] + + def st(self, addr, data): + self.mem[addr>>self.ddepth] = data & ((1<