[Cryptech-Commits] [core/platform/common] branch master updated: add the new mkmif core
git at cryptech.is
git at cryptech.is
Tue May 17 15:47:31 UTC 2016
This is an automated email from the git hooks/post-receive script.
paul at psgd.org pushed a commit to branch master
in repository core/platform/common.
The following commit(s) were added to refs/heads/master by this push:
new 2f4a3aa add the new mkmif core
2f4a3aa is described below
commit 2f4a3aaf057b21a830112461d77bd4717ac41737
Author: Paul Selkirk <paul at psgd.org>
AuthorDate: Tue May 17 17:47:03 2016 +0200
add the new mkmif core
---
config/config.cfg | 10 ++++++++++
config/config.py | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
2 files changed, 66 insertions(+), 3 deletions(-)
diff --git a/config/config.cfg b/config/config.cfg
index 337ebe5..d3834d6 100644
--- a/config/config.cfg
+++ b/config/config.cfg
@@ -44,6 +44,9 @@ cores = modexps6
[rsa]
cores = sha256 aes trng modexps6
+[mkmif]
+cores = mkmif
+
# include multiple of the same core
[multi-test]
cores = sha256 aes aes chacha aes
@@ -128,3 +131,10 @@ vfiles =
math/modexp/src/rtl/residue.v
math/modexp/src/rtl/shl.v
math/modexp/src/rtl/shr.v
+
+[mkmif]
+error_wire = no
+vfiles =
+ util/mkmif/src/rtl/mkmif.v
+ util/mkmif/src/rtl/mkmif_core.v
+ util/mkmif/src/rtl/mkmif_spi.v
diff --git a/config/config.py b/config/config.py
index acd75a1..5ff3ccc 100755
--- a/config/config.py
+++ b/config/config.py
@@ -103,7 +103,8 @@ def main():
args.verilog.write(createModule_template.format(
addrs = "".join(core.createAddr() for core in cores),
insts = "".join(core.createInstance() for core in cores),
- muxes = "".join(core.createMux() for core in cores)))
+ muxes = "".join(core.createMux() for core in cores),
+ ports = "".join(core.createPort() for core in cores) ))
args.makefile.write(listVfiles_template.format(
vfiles = "".join(core.listVfiles() for core in cores)))
@@ -224,6 +225,9 @@ class Core(object):
def createMux(self):
return createMux_template.format(core = self, core0 = self)
+ def createPort(self):
+ return ""
+
def listVfiles(self):
return "".join(" \\\n\t$(CORE_TREE)/" + vfile for vfile in self.vfiles)
@@ -302,12 +306,29 @@ class ModExpS6Core(Core):
def createMux(self):
return createMux_modexps6_template.format(core = self, core0 = self)
+class MkmifCore(Core):
+ """
+ MKM interface core has extra ports for the SPI signal lines.
+ """
+
+ def createPort(self):
+ return """ \
+
+ output wire mkm_sclk,
+ output wire mkm_cs_n,
+ input wire mkm_do,
+ output wire mkm_di,
+ """
+
+ def createInstance(self):
+ return createInstance_template_MKMIF.format(core = self)
# Hook special classes in as handlers for the cores that require them.
Core.special_class.update(
trng = TRNGCore,
- modexps6 = ModExpS6Core)
+ modexps6 = ModExpS6Core,
+ mkmif = MkmifCore)
# Templates (format strings), here instead of inline in the functions
@@ -409,6 +430,38 @@ createInstance_template_TRNG = """\
"""
+# Template used by Mkmif.createInstance(). This is different
+# enough from the base template that it's easier to make this separate.
+
+createInstance_template_MKMIF = """\
+ //----------------------------------------------------------------
+ // {core.upper_instance_name}
+ //----------------------------------------------------------------
+ wire enable_{core.instance_name} = (addr_core_num == CORE_ADDR_{core.upper_instance_name});
+ wire [31: 0] read_data_{core.instance_name};
+
+ {core.name} {core.instance_name}_inst
+ (
+ .clk(sys_clk),
+ {core.reset_pin},
+
+ .spi_sclk(mkm_sclk),
+ .spi_cs_n(mkm_cs_n),
+ .spi_do(mkm_do),
+ .spi_di(mkm_di),
+
+ .cs(enable_{core.instance_name} & (sys_eim_rd | sys_eim_wr)),
+ .we(sys_eim_wr),
+
+ .address(addr_core_reg),
+ .write_data(sys_write_data),
+ .read_data(read_data_{core.instance_name}){core.error_port}
+ );
+
+{core.one_cycle_delay}
+
+"""
+
# Template for one-cycle delay code.
one_cycle_delay_template = """\
@@ -457,7 +510,7 @@ module core_selector
output wire [31: 0] sys_read_data,
input wire [31: 0] sys_write_data,
output wire sys_error,
-
+{ports}
input wire noise,
output wire [7 : 0] debug
);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Commits
mailing list