build/generic_toolchain: Rename constraints methods to build_io_constraints/build_timing_constraints.

This commit is contained in:
Florent Kermarrec 2022-06-24 10:12:36 +02:00
parent 08cc384a0c
commit 1ecb9cec0a
4 changed files with 21 additions and 23 deletions

View File

@ -31,10 +31,9 @@ class AlteraQuartusToolchain(GenericToolchain):
self.cst = []
def build(self, platform, fragment, **kwargs):
return self._build(platform, fragment, **kwargs)
# IO/Placement Constraints (.qsf) ------------------------------------------------------------------
# IO/Placement Constraints (.qsf) --------------------------------------------------------------
def _format_constraint(self, c, signame, fmt_r):
# IO location constraints
@ -71,7 +70,7 @@ class AlteraQuartusToolchain(GenericToolchain):
"altera_reserved_tdo",
)
def build_constr_file(self, named_sc, named_pc):
def build_io_constraints(self, named_sc, named_pc):
for sig, pins, others, resname in named_sc:
if len(pins) > 1:
for i, p in enumerate(pins):
@ -85,9 +84,9 @@ class AlteraQuartusToolchain(GenericToolchain):
if named_pc:
self.cst.append("\n\n".join(named_pc))
# Timing Constraints (.sdc) ------------------------------------------------------------------------
# Timing Constraints (.sdc) --------------------------------------------------------------------
def build_timing_constr(self, vns, clocks):
def build_timing_constraints(self, vns, clocks):
sdc = []
# Clock constraints
@ -117,7 +116,7 @@ class AlteraQuartusToolchain(GenericToolchain):
# Generate .sdc
tools.write_to_file("{}.sdc".format(self._build_name), "\n".join(sdc))
# Project (.qsf) -----------------------------------------------------------------------------------
# Project (.qsf) -------------------------------------------------------------------------------
def build_project(self):
qsf = []
@ -164,7 +163,7 @@ class AlteraQuartusToolchain(GenericToolchain):
# Generate .qsf
tools.write_to_file("{}.qsf".format(self._build_name), "\n".join(qsf))
# Script -------------------------------------------------------------------------------------------
# Script ---------------------------------------------------------------------------------------
def build_script(self):
build_name = self._build_name

View File

@ -22,10 +22,10 @@ class GenericToolchain:
self.named_pc = []
self.named_sc = []
def build_constr_file(self, named_sc, named_pc):
raise NotImplementedError("GenericToolchain.build_constr_file must be overloaded.")
def build_io_constraints(self, named_sc, named_pc):
raise NotImplementedError("GenericToolchain.build_io_constraints must be overloaded.")
def build_timing_constr(self, vns, clocks):
def build_timing_constraints(self, vns, clocks):
pass # Pass since optional.
def build_project(self):
@ -63,10 +63,10 @@ class GenericToolchain:
platform.add_source(v_file)
# Generate Design IO Constraints File.
self.build_constr_file(self.named_sc, self.named_pc)
self.build_io_constraints(self.named_sc, self.named_pc)
# Generate Design Timing Constraints File.
self.build_timing_constr(v_output.ns, self.clocks)
self.build_timing_constraints(v_output.ns, self.clocks)
# Generate project.
self.build_project()

View File

@ -25,7 +25,6 @@ class LatticeIceStormToolchain(GenericToolchain):
attr_translate = {
"keep": ("keep", "true"),
}
special_overrides = common.lattice_ice40_special_overrides
def __init__(self):
@ -47,7 +46,7 @@ class LatticeIceStormToolchain(GenericToolchain):
# IO Constraints (.pcf) ------------------------------------------------------------------------
def build_constr_file(self, named_sc, named_pc):
def build_io_constraints(self, named_sc, named_pc):
r = ""
for sig, pins, others, resname in named_sc:
if len(pins) > 1:
@ -59,15 +58,15 @@ class LatticeIceStormToolchain(GenericToolchain):
r += "\n" + "\n\n".join(named_pc)
tools.write_to_file(self._build_name + ".pcf", r)
# Timing Constraints (in pre_pack file) ------------------------------------------------------------
# Timing Constraints (in pre_pack file) --------------------------------------------------------
def build_timing_constr(self, vns, clocks):
def build_timing_constraints(self, vns, clocks):
r = ""
for clk, period in clocks.items():
r += """ctx.addClock("{}", {})\n""".format(vns.get_name(clk), 1e3/period)
tools.write_to_file(self._build_name + "_pre_pack.py", r)
# Yosys/Nextpnr Helpers/Templates ------------------------------------------------------------------
# Yosys/Nextpnr Helpers/Templates --------------------------------------------------------------
def _yosys_import_sources(self):
includes = ""
@ -82,7 +81,7 @@ class LatticeIceStormToolchain(GenericToolchain):
language, includes, filename))
return "\n".join(reads)
# Yosys/Nextpnr Helpers/Templates ------------------------------------------------------------------
# Yosys/Nextpnr Helpers/Templates --------------------------------------------------------------
_yosys_template = [
"verilog_defaults -push",
@ -103,7 +102,7 @@ class LatticeIceStormToolchain(GenericToolchain):
))
tools.write_to_file(self._build_name + ".ys", "\n".join(ys))
# Script -------------------------------------------------------------------------------------------
# Script ---------------------------------------------------------------------------------------
_build_template = [
"yosys -l {build_name}.rpt {build_name}.ys",

View File

@ -55,7 +55,7 @@ class LatticeTrellisToolchain(GenericToolchain):
return self._build(platform, fragment, **kwargs)
# IO Constraints (.lpf) ----------------------------------------------------------------------------
# IO Constraints (.lpf) ------------------------------------------------------------------------
@classmethod
def _format_constraint(cls, c):
@ -73,7 +73,7 @@ class LatticeTrellisToolchain(GenericToolchain):
lpf.append(pre + "\"" + signame + "\"" + suf + ";")
return "\n".join(lpf)
def build_constr_file(self, named_sc, named_pc):
def build_io_constraints(self, named_sc, named_pc):
lpf = []
lpf.append("BLOCK RESETPATHS;")
lpf.append("BLOCK ASYNCPATHS;")
@ -87,7 +87,7 @@ class LatticeTrellisToolchain(GenericToolchain):
lpf.append("\n\n".join(named_pc))
tools.write_to_file(self._build_name + ".lpf", "\n".join(lpf))
# Yosys/Nextpnr Helpers/Templates ------------------------------------------------------------------
# Yosys/Nextpnr Helpers/Templates --------------------------------------------------------------
_yosys_template = [
"verilog_defaults -push",
@ -157,7 +157,7 @@ class LatticeTrellisToolchain(GenericToolchain):
"lfe5um5g-85f": "um5g-85k",
}
# Script -------------------------------------------------------------------------------------------
# Script ---------------------------------------------------------------------------------------
_build_template = [
"yosys -l {build_name}.rpt {build_name}.ys",