GithubHelp home page GithubHelp logo

moroso / cpu Goto Github PK

View Code? Open in Web Editor NEW
2.0 14.0 2.0 1.66 MB

The CPU for the Moroso project.

Makefile 0.33% Tcl 12.10% Verilog 33.55% SystemVerilog 20.52% C 10.42% C++ 5.74% Mathematica 0.51% Emacs Lisp 14.71% Shell 0.01% Python 0.30% Coq 1.67% Stata 0.02% Rust 0.13%

cpu's Issues

ltc: solve, don't evade, race conditions

33b7f40 has a case of "evade, don't solve": resp_wr_1a is added to delay a cycle, where it shouldn't really be necessary. Either determine why it's microarchitecturally necessary, or fix the condition that leads to its necessity.

cpu_sim: MOV instructions use wrong shift amount?

The value of r1 definitely doesn't seem right after executing this instruction. I assume it's using the wrong shift amount? (There also seems to be a bug in printing the hex value of the shift amount!)

cpu.regs.r = { 1d, a0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }
Packet is d4004000 / d4002020 / c0041042 / e0000000
Packet looks like:
- Instruction (d4004000):
  * [ P3] <ALU_OP> - ADD
  * rs = 0
  * rd = 0
  * rt = 1
  * shiftamt = 0 (81a268)
  * stype = 0
- Instruction (d4002020):
  * [ P3] <ALU_OP> - MOV
  * rs = 0
  * rd = 1
  * rt = 0
  * shiftamt = 0 (81a268)
  * stype = 0
- Instruction (c0041042):
  * [ P3] <ALU_OP> - SUB
  * constant = 1 (1)
  * rs = 2
  * rd = 2
- Instruction (e0000000): NOP
Executing packet...
...done.
cpu.regs.pc is now 0x20
cpu.regs.r = { bd, a0000000, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }

cpu_sim: it would be nice to have a magic break to print the value in r0.

It would be nice to have an easy way to print the value in r0 (say, with a BREAK with a certain magic value). Ideally this would be printed somewhere other than the rest of the output (such as to stderr).

This way, I could test the existing compiler tests pretty easily on the cpu_sim, and verify that the output is what it should be.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.