cli: remove JSON loader, add test for instantiation generation

This commit is contained in:
Fischer Moseley 2024-08-06 07:08:59 -07:00
parent fa80a49145
commit ecfbdaa86b
3 changed files with 14 additions and 12 deletions

View File

@ -78,13 +78,13 @@ def inst(config_path):
ports = manta.get_top_level_ports() ports = manta.get_top_level_ports()
hdl = ",\n ".join([f".{p.name}({p.name})" for p in ports]) hdl = ",\n ".join([f".{p.name}({p.name})" for p in ports])
foo = """ header = """
manta manta_inst( manta manta_inst(
.clk(clk), .clk(clk),
.rst(rst), .rst(rst),
""" """
print(foo + hdl + ");\n") return header + hdl + ");\n"
def capture(config_path, logic_analyzer_name, export_paths): def capture(config_path, logic_analyzer_name, export_paths):
@ -139,7 +139,7 @@ def main():
if len(argv) != 3: if len(argv) != 3:
wrong_args() wrong_args()
inst(argv[2]) print(inst(argv[2]))
elif argv[1] == "capture": elif argv[1] == "capture":
if len(argv) < 5: if len(argv) < 5:

View File

@ -6,7 +6,6 @@ from manta.memory_core import MemoryCore
from manta.logic_analyzer import LogicAnalyzerCore from manta.logic_analyzer import LogicAnalyzerCore
from manta.utils import * from manta.utils import *
import yaml import yaml
import json
class Manta(Elaboratable): class Manta(Elaboratable):
@ -30,19 +29,15 @@ class Manta(Elaboratable):
@classmethod @classmethod
def from_config(cls, config_path): def from_config(cls, config_path):
# Load config from either YAML or JSON # Load config from YAML
extension = config_path.split(".")[-1] extension = config_path.split(".")[-1]
if extension not in ["yaml", "yml", "json"]: if extension not in ["yaml", "yml"]:
raise ValueError( raise ValueError(
f"Configuration file {config_path} has unrecognized file type." f"Configuration file {config_path} has unrecognized file type."
) )
with open(config_path, "r") as f: with open(config_path, "r") as f:
if extension in ["yaml", "yml"]: config = yaml.safe_load(f)
config = yaml.safe_load(f)
elif extension in ["json"]:
config = json.load(f)
# Validate config # Validate config
if "cores" not in config: if "cores" not in config:

View File

@ -1,4 +1,4 @@
from manta.cli import gen from manta.cli import gen, inst
import tempfile import tempfile
import os import os
@ -11,3 +11,10 @@ def test_verilog_gen():
if not os.path.isfile(tmp_dir + "/manta.v"): if not os.path.isfile(tmp_dir + "/manta.v"):
raise ValueError("No Verilog file generated!") raise ValueError("No Verilog file generated!")
def test_inst_gen():
inst_string = inst("test/test_verilog_gen.yaml")
if not inst_string:
raise ValueError("No Verilog instantiation generated!")