Skip to content

Commit 44c1fb9

Browse files
committed
Template module.jinja was split as wrap.jinja and stub.jinja
1 parent 303ef43 commit 44c1fb9

File tree

4 files changed

+51
-30
lines changed

4 files changed

+51
-30
lines changed

hdltools/apps/genstub.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# SPDX-License-Identifier: GPL-3.0-or-later
55
#
66

7-
"""This script generates an stub for the specified module."""
7+
"""This script generates a stub for the specified module."""
88

99
import argparse
1010
import logging
@@ -36,10 +36,9 @@
3636
module = modules.get_module(args.top)
3737
module['name'] = args.top
3838
module['suffix'] = args.suffix
39-
module['stub'] = True
4039

4140
top = GenFile()
42-
top.render('module', module)
41+
top.render('stub', module)
4342

4443
if not args.output:
4544
print(top)

hdltools/apps/genwrap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
module['suffix'] = args.suffix
3939

4040
top = GenFile()
41-
top.render('module', module)
41+
top.render('wrap', module)
4242

4343
if not args.output:
4444
print(top)

hdltools/templates/stub.jinja

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{%- set all_ports = [] %}
2+
{%- set port_names = [] %}
3+
{%- for direction, signals in ports.items() %}
4+
{%- for name, props in signals.items() %}
5+
{%- set dir = direction.rstrip('s') %}
6+
{%- set type = props.type | default('') %}
7+
{%- set packed = props.packed | default('') %}
8+
{%- set unpacked = props.unpacked | default('') %}
9+
{%- set port_str = dir ~ " " ~ type ~ " " ~ packed ~ " " ~ name ~ " " ~ unpacked %}
10+
{%- set _ = all_ports.append(port_str) %}
11+
{%- set _ = port_names.append(name) %}
12+
{%- endfor %}
13+
{%- endfor -%}
14+
module {{ name }}{{ suffix }} {% if params -%}#(
15+
{%- for name, props in params.items() -%}
16+
{%- set type = props.type | default('') %}
17+
{%- set packed = props.packed | default('') %}
18+
parameter {{ type }} {{ packed }} {{ name }} = {{ props.value }}{% if not loop.last %},{% endif %}
19+
{%- endfor %}
20+
){% endif %}(
21+
{%- for port in all_ports %}
22+
{{ port }}{% if not loop.last %},{% endif %}
23+
{%- endfor %}
24+
);
25+
{% if ports.outputs %}
26+
{%- for name, props in ports.outputs.items() %}
27+
{%- if props.type == "reg" %}
28+
always_comb {{ name }} = '0;
29+
{%- else %}
30+
assign {{ name }} = '0;
31+
{%- endif %}
32+
{%- endfor %}
33+
{% endif %}
34+
{% if ports.inouts %}
35+
{%- for name, props in ports.inouts.items() %}
36+
{%- if props.type == "reg" %}
37+
always_comb {{ name }} = 'Z;
38+
{%- else %}
39+
assign {{ name }} = 'Z;
40+
{%- endif %}
41+
{%- endfor %}
42+
{% endif %}
43+
endmodule
Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{%- for direction, signals in ports.items() %}
44
{%- for name, props in signals.items() %}
55
{%- set dir = direction.rstrip('s') %}
6-
{%- set type = props.type | default('') %}
6+
{%- set type = "wire" %}
77
{%- set packed = props.packed | default('') %}
88
{%- set unpacked = props.unpacked | default('') %}
99
{%- set port_str = dir ~ " " ~ type ~ " " ~ packed ~ " " ~ name ~ " " ~ unpacked %}
@@ -23,35 +23,14 @@ module {{ name }}{{ suffix }} {% if params -%}#(
2323
{%- endfor %}
2424
);
2525

26-
{%- if stub %}
27-
{%- if ports.outputs %}
28-
{%- for name, props in ports.outputs.items() %}
29-
{%- if props.type == "reg" %}
30-
always_comb {{ name }} = '0;
31-
{%- else %}
32-
assign {{ name }} = '0;
33-
{%- endif %}
34-
{%- endfor %}
35-
{%- endif %}
36-
{%- if ports.inouts %}
37-
{%- for name, props in ports.inouts.items() %}
38-
{%- if props.type == "reg" %}
39-
always_comb {{ name }} = 'Z;
40-
{%- else %}
41-
assign {{ name }} = 'Z;
42-
{%- endif %}
43-
{%- endfor %}
44-
{%- endif %}
45-
{%- else %}
4626
{{ name }} {% if params %}#(
47-
{%- for name, props in params.items() %}
27+
{%- for name, props in params.items() %}
4828
.{{ name }} ({{ name }}){% if not loop.last %},{% endif %}
49-
{%- endfor %}
29+
{%- endfor %}
5030
){% endif %} {{ name }} (
51-
{%- for port_name in port_names %}
31+
{%- for port_name in port_names %}
5232
.{{ port_name }} ({{ port_name }}){% if not loop.last %},{% endif %}
53-
{%- endfor %}
33+
{%- endfor %}
5434
);
55-
{%- endif %}
5635

5736
endmodule

0 commit comments

Comments
 (0)