Commit Graph

104 Commits (e30ea40a8bb44cb29c4834878af07bc455f39e71)
 

Author SHA1 Message Date
Jean-François Nguyen 951ca2cdfb cores/microwatt: add checks for add/subtract instructions.
Jean-François Nguyen f06c8000b0 checks.insn: add checks for add/subtract instructions.
Jean-François Nguyen baaac86be1 cores/microwatt: add checks for MTSPR and MFSPR instructions.
Jean-François Nguyen 8cf56ab5dc checks.insn: add checks for MTSPR and MFSPR instructions.
Jean-François Nguyen 21be78c4f8 cores/microwatt: add checks for compare instructions.
Jean-François Nguyen 692e8ec7c4 checks.insn: add checks for compare instructions.
Jean-François Nguyen a413025fcb Update SPR interface and split consistency check.
* Use bitmasks to describe SPR accesses at the field granularity.

* Use separate checks for each SPR, instead of covering them all at
  once. Users may run them in the same batch, and know which SPR passes
  or fails its check.
Jean-François Nguyen e3f4bf6e24 cores/microwatt: add check for MCRF instruction.
Jean-François Nguyen 2ffff6196b checks.insn: add check for MCRF instruction.
Jean-François Nguyen 4c16035a70 checks.insn._cr: fix order of spec_cr_w_data bits.
Jean-François Nguyen 010c383ed7 tb: remove testbench start trigger.
We don't use it currently; we just assume the sync domain is under
reset at the beginning of the BMC.

Also, fix a regression in the cycle counter introduced by 9ea58a47.
Jean-François Nguyen 2c0b22b96c cores/microwatt: add checks for CR logical instructions.
Jean-François Nguyen fee59d2257 checks.insn: add checks for CR logical instructions.
Jean-François Nguyen bc06e67fe8 checks.insn._branch: add missing PowerFVCheck name.
Jean-François Nguyen 9ea58a47a9 Refactor to facilitate integration with CLIs and config files.
* Checks are now split in two modules: checks.cons for consistency
  checks, checks.insn for instructions.

* Checks are derived from PowerFVCheck and have a shorthand (e.g.
  "insn_b"). PowerFVCheck holds a mapping between its subclasses and
  their shorthands.

* Instruction checks definitions have been simplified to one-liners,
  and grouped into a single file.

* A Trigger class has been added to define testbench triggers.
Jean-François Nguyen 5c097b9474 checks._branch: fix branches to LR/CTR/TAR.
- remove check for undefined mnemonics (afaiu, their BO value isn't illegal).
- add check for illegal bcctr/bcctrl forms (with BO(2) = 0).
- fix target offset for branches to LR/CTR/TAR.
- use MSR.SF to check the upper bits of target addresses.
Jean-François Nguyen 5649f60c78 checks.insn_bcctrl: fix typo.
Jean-François Nguyen e9d7a91e01 utils: add helper to mask addresses according to MSR.SF.
Jean-François Nguyen d9ed524cb3 powerv.insn: fix width of XO width for XL-form insns.
Jean-François Nguyen 0ca97a8d6a checks.{cr,gpr}: add support for interrupts.
Also, rephrase gpr.Check docstring.
Jean-François Nguyen 25500cd680 checks.spr: refactor.
Jean-François Nguyen bc13b27212 cores/microwatt: expose MSR and SRR0/SRR1.
Jean-François Nguyen c6a74333e8 pfv: add MSR and SRR0/SRR1 SPRs.
Jean-François Nguyen 58bef1a741 checks: add checks for branch instructions.
Jean-François Nguyen 5c9bc3e68c cores/microwatt: add support for concurrent execution of formal checks.
Jean-François Nguyen 6ae4978f0c pfv: expose CR as a flat 32-bit value.
Jean-François Nguyen ed2122d940 cores/microwatt: add support for SPRCheck.
Jean-François Nguyen 2988ffc617 checks.spr: add SPRCheck.
Jean-François Nguyen ca66e3a45e cores/microwatt: add support for CRCheck.
Jean-François Nguyen e7e9bb08f0 checks.cr: add CRCheck.
Jean-François Nguyen 5076bdb9eb cores/microwatt: add support for GPRCheck.
Jean-François Nguyen b84a23877a checks.gpr: add GPRCheck.
Jean-François Nguyen 6b5536eb0f tb: fix error message.
Jean-François Nguyen 6922b4bd53 cores/microwatt: add support for IAForwardCheck.
Also, use non-default cache sizes for faster verification.
Jean-François Nguyen e0e434204b checks.ia_fwd: add check.
Jean-François Nguyen bfd1f3135e cores/microwatt: remove outdated patch.
The demo README provides an URL to a fork with experimental support for
PowerFV.
Jean-François Nguyen 935110411f cores/microwatt: update demo.
Jean-François Nguyen bc222162b8 build.plat: add SBY mode as .build() parameter.
Jean-François Nguyen fc9feb58cb checks.unique: add check.
Jean-François Nguyen 7114ed807e pfv: add ports for IA,GPRs,CR,SPRs and storage.
Jean-François Nguyen 0cf05e305e cores/microwatt: update proof-of-concept.
Jean-François Nguyen 3c10a0427b build.plat: fix testbench validation.
Jean-François Nguyen ea98ca49df tb: fix timer reset; cosmetic fixes.
Jean-François Nguyen 28a239724e build.plat: sby mode override; cosmetic fixes.
Jean-François Nguyen 96bbd85e83 __init__: do not export sub-packages by default.
Also, rename dut.py to pfv.py.
Jean-François Nguyen 776ec784ff Add very basic README.
Jean-François Nguyen 7051f8db60 Add license.
Jean-François Nguyen 1e93621f95 Use poetry to manage python dependencies.
Jean-François Nguyen cce0fa0729 Add Microwatt proof-of-concept.
Jean-François Nguyen b60aaae27b build.plat: add SymbiYosysPlatform.