Skip to content

Commit 4c06cde

Browse files
authored
Merge pull request chipsalliance#393 from antmicro/remove-custom-files
Remove custom-files
2 parents e4754c2 + 6a80eed commit 4c06cde

File tree

4 files changed

+78
-95
lines changed

4 files changed

+78
-95
lines changed

uhdm-tests/opentitan/0001-Add-opentitan-patch-for-uhdm.patch

Lines changed: 75 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,79 @@ index fc8b3d183..2b94b0d67 100644
4848
//////////////
4949
// MIO Pads //
5050
//////////////
51+
diff --git a/hw/ip/prim/util/primgen.py b/hw/ip/prim/util/primgen.py
52+
index f601d503e..70dd6d438 100755
53+
--- a/hw/ip/prim/util/primgen.py
54+
+++ b/hw/ip/prim/util/primgen.py
55+
@@ -238,6 +238,21 @@ def _generate_prim_pkg(gapi):
56+
shutil.copyfile(prim_pkg_core_src, prim_pkg_core_dest)
57+
print("Core file written to %s." % (prim_pkg_core_dest, ))
58+
59+
+def _instance_sv_ram(prim_name, techlib, parameters, prim_type):
60+
+ if not parameters:
61+
+ s = " prim_{techlib}_{prim_name} u_impl_{techlib} (\n"
62+
+ else:
63+
+ s = " prim_{techlib}_{prim_name} #(\n"
64+
+ s += ",\n".join(" .{p}({p})".format(p=p) for p in parameters)
65+
+ s += "\n ) u_impl_{techlib}_{prim_type} (\n"
66+
+ s += " .clk_a_i(clk_{prim_type}_i),\n"
67+
+ s += " .a_req_i({prim_type}_req_i),\n"
68+
+ s += " .a_write_i({prim_type}_write_i),\n"
69+
+ s += " .a_addr_i({prim_type}_addr_i),\n"
70+
+ s += " .a_wdata_i({prim_type}_wdata_i),\n"
71+
+ s += " .a_rdata_o({prim_type}_rdata_o)\n"
72+
+ s += " );\n"
73+
+ return s.format(prim_name=prim_name, techlib=techlib, prim_type=prim_type)
74+
75+
def _instance_sv(prim_name, techlib, parameters):
76+
if not parameters:
77+
@@ -246,8 +261,8 @@ def _instance_sv(prim_name, techlib, parameters):
78+
s = " prim_{techlib}_{prim_name} #(\n"
79+
s += ",\n".join(" .{p}({p})".format(p=p) for p in parameters)
80+
s += "\n ) u_impl_{techlib} (\n"
81+
- s += " .*\n" \
82+
- " );\n"
83+
+ s += " .*\n"
84+
+ s += " );\n"
85+
return s.format(prim_name=prim_name, techlib=techlib)
86+
87+
88+
@@ -258,12 +273,17 @@ def _create_instances(prim_name, techlibs, parameters):
89+
]
90+
techlibs_generic_last = techlibs_wo_generic + ['generic']
91+
92+
+
93+
if not techlibs_wo_generic:
94+
# Don't output the if/else blocks if there no alternatives exist.
95+
# We still want the generate block to keep hierarchical path names
96+
# stable, even if more than one techlib is found.
97+
s = " if (1) begin : gen_generic\n"
98+
- s += _instance_sv(prim_name, "generic", parameters) + "\n"
99+
+ if prim_name == "ram_2p":
100+
+ s += _instance_sv_ram("ram_1p", "generic", parameters, "a") + "\n"
101+
+ s += _instance_sv_ram("ram_1p", "generic", parameters, "b") + "\n"
102+
+ else:
103+
+ s += _instance_sv(prim_name, "generic", parameters) + "\n"
104+
s += " end"
105+
return s
106+
107+
@@ -282,8 +302,14 @@ def _create_instances(prim_name, techlibs, parameters):
108+
# TODO: wildcard port lists are against our style guide, but it's safer
109+
# to let the synthesis tool figure out the connectivity than us trying
110+
# to parse the port list into individual signals.
111+
- s += "begin : gen_{techlib}\n" + _instance_sv(prim_name, techlib,
112+
- parameters) + "end"
113+
+ s += "begin : gen_{techlib}\n"
114+
+ if prim_name == "ram_2p":
115+
+ s += _instance_sv_ram("ram_1p", techlib, parameters, "a")
116+
+ s += _instance_sv_ram("ram_1p", techlib, parameters, "b")
117+
+ else:
118+
+ s += _instance_sv(prim_name, techlib, parameters)
119+
+
120+
+ s += "end"
121+
122+
if not is_last:
123+
s += " "
51124
diff --git a/hw/ip/prim_generic/rtl/prim_generic_pad_wrapper.sv b/hw/ip/prim_generic/rtl/prim_generic_pad_wrapper.sv
52125
index 962d3b559..9d5a10c8c 100644
53126
--- a/hw/ip/prim_generic/rtl/prim_generic_pad_wrapper.sv
@@ -72,7 +145,7 @@ index 962d3b559..9d5a10c8c 100644
72145
end
73146

74147
diff --git a/hw/top_earlgrey/top_earlgrey_nexysvideo.core b/hw/top_earlgrey/top_earlgrey_nexysvideo.core
75-
index 8d6cf89b6..1683f0693 100644
148+
index 8d6cf89b6..0e01b5276 100644
76149
--- a/hw/top_earlgrey/top_earlgrey_nexysvideo.core
77150
+++ b/hw/top_earlgrey/top_earlgrey_nexysvideo.core
78151
@@ -56,7 +56,7 @@ targets:
@@ -91,7 +164,7 @@ index 8d6cf89b6..1683f0693 100644
91164
+ synth: "yosys"
92165
+ yosys_synth_options: ['-iopad', '-family xc7', "frontend=surelog"]
93166
+ yosys_read_options: []
94-
+ surelog_options: ['--disable-feature=parametersubstitution', '-DSYNTHESIS']
167+
+ surelog_options: ['-DSYNTHESIS', '-DPRIM_DEFAULT_IMPL=prim_pkg::ImplGeneric']
95168
+ yosys:
96169
+ arch: "xilinx"
97170
+ yosys_synth_options: ['-iopad', '-family xc7', "frontend=surelog"]

uhdm-tests/opentitan/Makefile.in

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,8 @@ prim_secded_72_64_dec.sv \
192192
prim_secded_72_64_enc.sv \
193193
prim_ram_2p_async_adv.sv \
194194
prim_ram_2p_adv.sv \
195+
prim_generic_ram_2p.sv \
196+
prim_ram_2p.sv \
195197
spi_fwm_rxf_ctrl.sv \
196198
spi_fwm_txf_ctrl.sv \
197199
spi_device_reg_top.sv \
@@ -272,10 +274,6 @@ UHDM_FILES_FULL = \
272274
done; \
273275
)
274276

275-
CUSTOM_FILES_UHDM = ${curr_dir}/custom_files/prim_ram_2p.v \
276-
${curr_dir}/custom_files/prim_xilinx_ram_1p.v
277-
278-
279277
#############################
280278
#### SYNTHESIS ####
281279
#############################
@@ -300,8 +298,7 @@ ${UHDM_file}: prep-sources
300298
-DBootRomInitFile=boot_rom_fpga_nexysvideo.32.vmem \
301299
-PBootRomInitFile="boot_rom_fpga_nexysvideo.32.vmem" \
302300
$(EARLGRAY_INCLUDE) \
303-
$(UHDM_FILES_FULL) \
304-
$(CUSTOM_FILES_UHDM) && \
301+
$(UHDM_FILES_FULL) && \
305302
cp ${EARLGRAY_BUILD}/slpp_all/surelog.uhdm ${UHDM_file})
306303

307304
uhdm/yosys/synth-opentitan: ${UHDM_file} ${SV2V_FILE} | ${VENV_OT}

uhdm-tests/opentitan/custom_files/prim_ram_2p.v

Lines changed: 0 additions & 62 deletions
This file was deleted.

uhdm-tests/opentitan/custom_files/prim_xilinx_ram_1p.v

Lines changed: 0 additions & 25 deletions
This file was deleted.

0 commit comments

Comments
 (0)