aboutsummaryrefslogtreecommitdiff
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/config.cfg8
-rwxr-xr-xconfig/config.py4
-rw-r--r--config/core_vfiles.mk8
3 files changed, 19 insertions, 1 deletions
diff --git a/config/config.cfg b/config/config.cfg
index 5f3cf21..9bb01ae 100644
--- a/config/config.cfg
+++ b/config/config.cfg
@@ -1,6 +1,6 @@
# Config file for the Cryptech Novena FPGA framework.
#
-# At present, there are three kinds of variables in this file.
+# At present, there are four kinds of variables in this file:
#
# default-section: Name of the configuration to build if the user
# doesn't specify one. Only meaningful in the default section.
@@ -11,6 +11,11 @@
# including a particular core. All (optional) cores must have a
# vfiles option, so that the configuration program knows what to put
# into core_vfiles.mk.
+#
+# requires: A list of other cores whose vfiles must be loaded to build
+# this core. This has no effect on the generated core_selector.v
+# file, and has no effect at all if an instance of a core named here
+# is already included in the build.
[default]
default-section = rsa
@@ -52,6 +57,7 @@ vfiles =
hash/sha512/src/rtl/sha512_w_mem.v
[trng]
+requires = chacha sha512
vfiles =
rng/avalanche_entropy/src/rtl/avalanche_entropy.v
rng/avalanche_entropy/src/rtl/avalanche_entropy_core.v
diff --git a/config/config.py b/config/config.py
index bf77a36..814826f 100755
--- a/config/config.py
+++ b/config/config.py
@@ -132,6 +132,10 @@ class Core(object):
def add_vfiles(self, cfg):
if self.instance_number == 0:
self.vfiles = cfg.get(self.name, "vfiles").split()
+ if cfg.has_option(self.name, "requires"):
+ for required in cfg.get(self.name, "requires").split():
+ if required not in self._instance_count:
+ self.vfiles.extend(cfg.get(required, "vfiles").split())
@property
def instance_name(self):
diff --git a/config/core_vfiles.mk b/config/core_vfiles.mk
index bd1c6d4..8def572 100644
--- a/config/core_vfiles.mk
+++ b/config/core_vfiles.mk
@@ -21,6 +21,14 @@ vfiles += \
$(CORE_TREE)/rng/trng/src/rtl/trng_csprng.v \
$(CORE_TREE)/rng/trng/src/rtl/trng_csprng_fifo.v \
$(CORE_TREE)/rng/trng/src/rtl/trng_mixer.v \
+ $(CORE_TREE)/cipher/chacha/src/rtl/chacha.v \
+ $(CORE_TREE)/cipher/chacha/src/rtl/chacha_core.v \
+ $(CORE_TREE)/cipher/chacha/src/rtl/chacha_qr.v \
+ $(CORE_TREE)/hash/sha512/src/rtl/sha512.v \
+ $(CORE_TREE)/hash/sha512/src/rtl/sha512_core.v \
+ $(CORE_TREE)/hash/sha512/src/rtl/sha512_h_constants.v \
+ $(CORE_TREE)/hash/sha512/src/rtl/sha512_k_constants.v \
+ $(CORE_TREE)/hash/sha512/src/rtl/sha512_w_mem.v \
$(CORE_TREE)/math/modexp/src/rtl/adder.v \
$(CORE_TREE)/math/modexp/src/rtl/blockmem1r1w.v \
$(CORE_TREE)/math/modexp/src/rtl/blockmem2r1wptr.v \