Skip to content

Commit d6da4c2

Browse files
committed
build.plat: TemplatedPlatform.iter_extra_files→Platform.iter_files.
This function was added in commit 20553b1 in the wrong place, with the wrong name, and without tests. Fix all that.
1 parent ea94c9c commit d6da4c2

File tree

10 files changed

+37
-24
lines changed

10 files changed

+37
-24
lines changed

nmigen/build/plat.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ def add_file(self, filename, content):
6363
else:
6464
self.extra_files[filename] = content
6565

66+
def iter_files(self, *suffixes):
67+
for filename in self.extra_files:
68+
if filename.endswith(suffixes):
69+
yield filename
70+
6671
@property
6772
def _toolchain_env_var(self):
6873
return f"NMIGEN_ENV_{self.toolchain}"
@@ -437,6 +442,3 @@ def render(source, origin, syntax=None):
437442
for filename, content in self.extra_files.items():
438443
plan.add_file(filename, content)
439444
return plan
440-
441-
def iter_extra_files(self, *endswith):
442-
return (f for f in self.extra_files if f.endswith(endswith))

nmigen/vendor/intel.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ class IntelPlatform(TemplatedPlatform):
8282
set_global_assignment -name NUM_PARALLEL_PROCESSORS {{get_override("nproc")}}
8383
{% endif %}
8484
85-
{% for file in platform.iter_extra_files(".v") -%}
85+
{% for file in platform.iter_files(".v") -%}
8686
set_global_assignment -name VERILOG_FILE {{file|tcl_quote}}
8787
{% endfor %}
88-
{% for file in platform.iter_extra_files(".sv") -%}
88+
{% for file in platform.iter_files(".sv") -%}
8989
set_global_assignment -name SYSTEMVERILOG_FILE {{file|tcl_quote}}
9090
{% endfor %}
91-
{% for file in platform.iter_extra_files(".vhd", ".vhdl") -%}
91+
{% for file in platform.iter_files(".vhd", ".vhdl") -%}
9292
set_global_assignment -name VHDL_FILE {{file|tcl_quote}}
9393
{% endfor %}
9494
set_global_assignment -name VERILOG_FILE {{name}}.v

nmigen/vendor/lattice_ecp5.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,13 @@ class LatticeECP5Platform(TemplatedPlatform):
112112
""",
113113
"{{name}}.ys": r"""
114114
# {{autogenerated}}
115-
{% for file in platform.iter_extra_files(".v") -%}
115+
{% for file in platform.iter_files(".v") -%}
116116
read_verilog {{get_override("read_verilog_opts")|options}} {{file}}
117117
{% endfor %}
118-
{% for file in platform.iter_extra_files(".sv") -%}
118+
{% for file in platform.iter_files(".sv") -%}
119119
read_verilog -sv {{get_override("read_verilog_opts")|options}} {{file}}
120120
{% endfor %}
121-
{% for file in platform.iter_extra_files(".il") -%}
121+
{% for file in platform.iter_files(".il") -%}
122122
read_ilang {{file}}
123123
{% endfor %}
124124
read_ilang {{name}}.il
@@ -210,7 +210,7 @@ class LatticeECP5Platform(TemplatedPlatform):
210210
-dev {{platform.device}}-{{platform.speed}}{{platform.package}}{{platform.grade}} \
211211
-lpf {{name}}.lpf \
212212
-synthesis synplify
213-
{% for file in platform.iter_extra_files(".v", ".sv", ".vhd", ".vhdl") -%}
213+
{% for file in platform.iter_files(".v", ".sv", ".vhd", ".vhdl") -%}
214214
prj_src add {{file|tcl_escape}}
215215
{% endfor %}
216216
prj_src add {{name}}.v

nmigen/vendor/lattice_ice40.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ class LatticeICE40Platform(TemplatedPlatform):
114114
""",
115115
"{{name}}.ys": r"""
116116
# {{autogenerated}}
117-
{% for file in platform.iter_extra_files(".v") -%}
117+
{% for file in platform.iter_files(".v") -%}
118118
read_verilog {{get_override("read_verilog_opts")|options}} {{file}}
119119
{% endfor %}
120-
{% for file in platform.iter_extra_files(".sv") -%}
120+
{% for file in platform.iter_files(".sv") -%}
121121
read_verilog -sv {{get_override("read_verilog_opts")|options}} {{file}}
122122
{% endfor %}
123-
{% for file in platform.iter_extra_files(".il") -%}
123+
{% for file in platform.iter_files(".il") -%}
124124
read_ilang {{file}}
125125
{% endfor %}
126126
read_ilang {{name}}.il
@@ -212,7 +212,7 @@ class LatticeICE40Platform(TemplatedPlatform):
212212
-d {{platform.device}}
213213
-t {{platform.package}}
214214
{{get_override("lse_opts")|options|default("# (lse_opts placeholder)")}}
215-
{% for file in platform.iter_extra_files(".v") -%}
215+
{% for file in platform.iter_files(".v") -%}
216216
-ver {{file}}
217217
{% endfor %}
218218
-ver {{name}}.v
@@ -223,7 +223,7 @@ class LatticeICE40Platform(TemplatedPlatform):
223223
""",
224224
"{{name}}_syn.prj": r"""
225225
# {{autogenerated}}
226-
{% for file in platform.iter_extra_files(".v", ".sv", ".vhd", ".vhdl") -%}
226+
{% for file in platform.iter_files(".v", ".sv", ".vhd", ".vhdl") -%}
227227
add_file -verilog {{file|tcl_escape}}
228228
{% endfor %}
229229
add_file -verilog {{name}}.v

nmigen/vendor/lattice_machxo_2_3l.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ class LatticeMachXO2Or3LPlatform(TemplatedPlatform):
7474
-dev {{platform.device}}-{{platform.speed}}{{platform.package}}{{platform.grade}} \
7575
-lpf {{name}}.lpf \
7676
-synthesis synplify
77-
{% for file in platform.iter_extra_files(".v", ".sv", ".vhd", ".vhdl") -%}
77+
{% for file in platform.iter_files(".v", ".sv", ".vhd", ".vhdl") -%}
7878
prj_src add {{file|tcl_escape}}
7979
{% endfor %}
8080
prj_src add {{name}}.v

nmigen/vendor/quicklogic.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class QuicklogicPlatform(TemplatedPlatform):
8282
r"""
8383
{{invoke_tool("symbiflow_synth")}}
8484
-t {{name}}
85-
-v {% for file in platform.iter_extra_files(".v", ".sv", ".vhd", ".vhdl") -%} {{file}} {% endfor %} {{name}}.v
85+
-v {% for file in platform.iter_files(".v", ".sv", ".vhd", ".vhdl") -%} {{file}} {% endfor %} {{name}}.v
8686
-d {{platform.device}}
8787
-p {{name}}.pcf
8888
-P {{platform.package}}

nmigen/vendor/xilinx_7series.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,12 +99,12 @@ def _part(self):
9999
"{{name}}.tcl": r"""
100100
# {{autogenerated}}
101101
create_project -force -name {{name}} -part {{platform._part}}
102-
{% for file in platform.iter_extra_files(".v", ".sv", ".vhd", ".vhdl") -%}
102+
{% for file in platform.iter_files(".v", ".sv", ".vhd", ".vhdl") -%}
103103
add_files {{file|tcl_escape}}
104104
{% endfor %}
105105
add_files {{name}}.v
106106
read_xdc {{name}}.xdc
107-
{% for file in platform.iter_extra_files(".xdc") -%}
107+
{% for file in platform.iter_files(".xdc") -%}
108108
read_xdc {{file|tcl_escape}}
109109
{% endfor %}
110110
{{get_override("script_after_read")|default("# (script_after_read placeholder)")}}
@@ -229,7 +229,7 @@ def _part(self):
229229
r"""
230230
{{invoke_tool("synth")}}
231231
-t {{name}}
232-
-v {% for file in platform.iter_extra_files(".v", ".sv", ".vhd", ".vhdl") -%} {{file}} {% endfor %} {{name}}.v
232+
-v {% for file in platform.iter_files(".v", ".sv", ".vhd", ".vhdl") -%} {{file}} {% endfor %} {{name}}.v
233233
-p {{platform._symbiflow_part_map.get(platform._part, platform._part)}}
234234
-x {{name}}.xdc
235235
""",

nmigen/vendor/xilinx_spartan_3_6.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,10 @@ def family(self):
102102
""",
103103
"{{name}}.prj": r"""
104104
# {{autogenerated}}
105-
{% for file in platform.iter_extra_files(".vhd", ".vhdl") -%}
105+
{% for file in platform.iter_files(".vhd", ".vhdl") -%}
106106
vhdl work {{file}}
107107
{% endfor %}
108-
{% for file in platform.iter_extra_files(".v") -%}
108+
{% for file in platform.iter_files(".v") -%}
109109
verilog work {{file}}
110110
{% endfor %}
111111
verilog work {{name}}.v

nmigen/vendor/xilinx_ultrascale.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ class XilinxUltraScalePlatform(TemplatedPlatform):
7373
"{{name}}.tcl": r"""
7474
# {{autogenerated}}
7575
create_project -force -name {{name}} -part {{platform.device}}-{{platform.package}}-{{platform.speed}}
76-
{% for file in platform.iter_extra_files(".v", ".sv", ".vhd", ".vhdl") -%}
76+
{% for file in platform.iter_files(".v", ".sv", ".vhd", ".vhdl") -%}
7777
add_files {{file|tcl_escape}}
7878
{% endfor %}
7979
add_files {{name}}.v
8080
read_xdc {{name}}.xdc
81-
{% for file in platform.iter_extra_files(".xdc") -%}
81+
{% for file in platform.iter_files(".xdc") -%}
8282
read_xdc {{file|tcl_escape}}
8383
{% endfor %}
8484
{{get_override("script_after_read")|default("# (script_after_read placeholder)")}}

tests/test_build_plat.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,14 @@ def test_add_file_wrong_duplicate(self):
5151
with self.assertRaisesRegex(ValueError,
5252
r"^File 'foo' already exists$"):
5353
self.platform.add_file("foo", "bar")
54+
55+
def test_iter_files(self):
56+
self.platform.add_file("foo.v", "")
57+
self.platform.add_file("bar.v", "")
58+
self.platform.add_file("baz.vhd", "")
59+
self.assertEqual(list(self.platform.iter_files(".v")),
60+
["foo.v", "bar.v"])
61+
self.assertEqual(list(self.platform.iter_files(".vhd")),
62+
["baz.vhd"])
63+
self.assertEqual(list(self.platform.iter_files(".v", ".vhd")),
64+
["foo.v", "bar.v", "baz.vhd"])

0 commit comments

Comments
 (0)