30 lines
653 B
Python
30 lines
653 B
Python
import os
|
|
import subprocess
|
|
import shutil
|
|
|
|
from .base import Synthesizer
|
|
|
|
class Vivado(Synthesizer):
|
|
name = "vivado"
|
|
|
|
@classmethod
|
|
def is_installed(cls) -> bool:
|
|
return shutil.which("vivado") is not None
|
|
|
|
def run(self) -> None:
|
|
script = os.path.join(
|
|
os.path.dirname(__file__),
|
|
"vivado_scripts/run.tcl"
|
|
)
|
|
|
|
cmd = [
|
|
"vivado", "-nojournal", "-notrace",
|
|
"-mode", "batch",
|
|
"-log", "out.log",
|
|
"-source", script,
|
|
"-tclargs"
|
|
]
|
|
cmd.extend(self.testcase._get_synth_files())
|
|
|
|
subprocess.run(cmd, check=True)
|