fix default vvp, some doc
This commit is contained in:
1 parent
27d71c207c
commit
8b94c5a15f
2 files changed
+28
-3
No files matched your search
@@ -1,2 +1,27 @@
|
||||
# In-Field Testing Using MISR
|
||||
|
||||
## Setup
|
||||
|
||||
After cloning this repository, run:
|
||||
|
||||
```
|
||||
git submodule init
|
||||
git submodule update
|
||||
```
|
||||
|
||||
This project uses [Nix](https://nixos.org) to manage reproducible programming environments.
|
||||
|
||||
Run `nix develop` to enter a shell with all necessary software.
|
||||
|
||||
If `nix` is not installed, follow this [guide](https://librelane.readthedocs.io/en/stable/installation/nix_installation/index.html). No need to clone `librelane` here, but it is good to set up the `extra-substituters` as described in the guide for using LibreLane in the future (for making layouts with SkyWater 130nm technology).
|
||||
|
||||
## Usage
|
||||
|
||||
Compile jpeg decoder core using `iverilog` and run RTL simulation of the jpeg decoder core using `vvp`:
|
||||
|
||||
```
|
||||
nix develop
|
||||
make
|
||||
uv run jpeg_core_tb_run_plasma.py
|
||||
```
|
||||
|
||||
@@ -56,7 +56,6 @@ def run_simulation(jpeg_path, ppm_path, vvp_path):
|
||||
"""
|
||||
Decode jpeg_path into ppm_path with vvp sim.vvp and return the result as a PIL Image.
|
||||
"""
|
||||
assert os.path.exists(vvp_path), "sim.vvp not found — run 'make sim.vvp' first"
|
||||
|
||||
result = subprocess.run(
|
||||
['vvp', vvp_path, f'+infile={jpeg_path}', f'+outfile={ppm_path}'],
|
||||
@@ -112,14 +111,15 @@ def main():
|
||||
help='Plasma coarsest feature size in pixels (default 32)')
|
||||
parser.add_argument('--save-input', metavar='PATH', help='Save generated JPEG to this path')
|
||||
parser.add_argument('--save-output', metavar='PATH', help='Save RTL output PPM to this path')
|
||||
parser.add_argument('--vvp-path', metavar='PATH', default='sim.vvp',
|
||||
help='Path to compiled simulation (default: sim.vvp)')
|
||||
parser.add_argument('--vvp-path', metavar='PATH', default='jpeg_core_tb.vvp',
|
||||
help='Path to compiled simulation (default: jpeg_core_tb.vvp)')
|
||||
args = parser.parse_args()
|
||||
|
||||
mcu, subsampling_str = (16, '4:2:0') if args.subsampling else (8, '4:4:4')
|
||||
|
||||
assert args.width % mcu == 0, f"width {args.width} must be a multiple of {mcu} for {subsampling_str}"
|
||||
assert args.height % mcu == 0, f"height {args.height} must be a multiple of {mcu} for {subsampling_str}"
|
||||
assert os.path.exists(args.vvp_path), f"{args.vvp_path} not found - run 'make' first"
|
||||
|
||||
print(f"input: width={args.width} height={args.height} YCbCr={subsampling_str} q={args.quality} seed={args.seed}")
|
||||
|
||||
Reference in new issue
Block a user