)]}'
{
  "commit": "7fe6abc6f12cfdc6a8d3f5eea93bca395f03cefc",
  "tree": "c9d1da89516402c052b01b700a7d0772946b9186",
  "parents": [
    "21167d2118874f62091feb8b71926052de0a77a2"
  ],
  "author": {
    "name": "Stefan Wallentowitz",
    "email": "stefan.wallentowitz@gi-de.com",
    "time": "Thu Jun 25 11:05:29 2020 +0200"
  },
  "committer": {
    "name": "Rupert Swarbrick",
    "email": "rswarbrick@gmail.com",
    "time": "Fri Aug 21 16:09:29 2020 +0100"
  },
  "message": "[otbn] Initial OTBN python simulator\n\nThis adds the first iteration of the python instruction set\nsimulator (ISS) for OTBN. Right now it only has RV32I, but it lays the\nfundamental groundwork.\n\nThe base model is an external dependency (\"riscv-model\", which is\nhosted on pypi and will be installed by pip as part of\npython-requirements.txt). The OTBN model is currently a small wrapper\nthat loads up imem and dmem contents, instantiates the base model,\nruns that, and dumps some results to files. This will expand as we add\nsupport for the rest of the OTBN instruction set.\n\nAs well as including a basic ISS, this patch has a C++ wrapper that\ncan be used through DPI to run the ISS inside an RTL simulation. The\nwrapper grabs imem and dmem contents from the simulation and dumps\nthem to files. It then finds the path to the Python simulator (based\non the location of the binary) and runs that. Finally it grabs the\ncontents of dmem after the run, together with the number of cycles\ntaken by the simulation (which it returns).\n\nUse `fusesoc ... --OTBN_MODEL` to use this OTBN model instead of the\nRTL implementation.\n\nSigned-off-by: Stefan Wallentowitz \u003cstefan.wallentowitz@gi-de.com\u003e\nCo-authored-by: Rupert Swarbrick \u003crswarbrick@lowrisc.org\u003e\nCo-authored-by: Philipp Wagner \u003cphw@lowrisc.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4d7ff016fdbb746e20d2bc15f4b7f845f0b56cb9",
      "old_mode": 33188,
      "old_path": "hw/ip/otbn/README.md",
      "new_id": "1aa6c0de24e205d129309b1ad1abbc3a11a200e6",
      "new_mode": 33188,
      "new_path": "hw/ip/otbn/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a13295959913cdf3b518ef501f742f1c582e2b19",
      "new_mode": 33188,
      "new_path": "hw/ip/otbn/dv/model/otbn_core_model.sv"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "244c6df9aa17497040339cae277e7d579d6d9b18",
      "new_mode": 33188,
      "new_path": "hw/ip/otbn/dv/model/otbn_model.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c6dc8f0aa69c0d6bfbb2d2ca5a76578f0a8c9e2",
      "new_mode": 33261,
      "new_path": "hw/ip/otbn/dv/otbnsim/otbnsim.py"
    },
    {
      "type": "modify",
      "old_id": "593d749093797d42b571738bb09101e4b1559f4b",
      "old_mode": 33188,
      "old_path": "hw/ip/otbn/otbn.core",
      "new_id": "287a92ca498cea46fda294895b6e9f0140c30180",
      "new_mode": 33188,
      "new_path": "hw/ip/otbn/otbn.core"
    },
    {
      "type": "modify",
      "old_id": "5062d886801b8f85f124a11857ff1ee788d63c6d",
      "old_mode": 33188,
      "old_path": "hw/ip/otbn/rtl/otbn.sv",
      "new_id": "64f9dd7bc2efbb9bae940d2c24733e1bd4e8190e",
      "new_mode": 33188,
      "new_path": "hw/ip/otbn/rtl/otbn.sv"
    },
    {
      "type": "modify",
      "old_id": "3abef9dc41ab122cf2811b8fcf39ef21325d18d8",
      "old_mode": 33188,
      "old_path": "hw/top_earlgrey/top_earlgrey_verilator.core",
      "new_id": "1e818e24dfc89d1ccbe1bbbf5cffa3da45368c87",
      "new_mode": 33188,
      "new_path": "hw/top_earlgrey/top_earlgrey_verilator.core"
    },
    {
      "type": "modify",
      "old_id": "384bae461da039dfa44be785798dc1ae78e1e507",
      "old_mode": 33188,
      "old_path": "python-requirements.txt",
      "new_id": "055111503fd631a29e6fef134ed37c26191e66e3",
      "new_mode": 33188,
      "new_path": "python-requirements.txt"
    }
  ]
}
