diff --git a/src/finn/core/utils.py b/src/finn/core/utils.py
index 2f416c4af8d9c9024455e6c2672037be6fe21c2a..6f18fe14903a0682cda75320f9ce6662f279d835 100644
--- a/src/finn/core/utils.py
+++ b/src/finn/core/utils.py
@@ -182,6 +182,8 @@ def gen_FINN_dt_tensor(FINN_dt, tensor_shape):
         tensor_values = 2 * tensor_values - 1
     elif FINN_dt == DataType.BINARY:
         tensor_values = np.random.randint(2, size=tensor_shape)
+    elif FINN_dt == DataType.TERNARY:
+        tensor_values = np.random.randint(-1, high=1, size=tensor_shape)
     else:
         raise ValueError("Datatype {} is not supported, no tensor could be generated".format(FINN_dt))
     
diff --git a/tests/test_gen_FINN_dt_tensor.py b/tests/test_gen_FINN_dt_tensor.py
index 4321498b5cc32dd783cfdd5e7c5e9cf8e765ed8c..0cb31a1698ba7774f69d0dcd1d9110421c5d252d 100644
--- a/tests/test_gen_FINN_dt_tensor.py
+++ b/tests/test_gen_FINN_dt_tensor.py
@@ -30,5 +30,19 @@ def test_FINN_tensor_generator():
             does not match the desired Data type"""
 
 
+    # ternary 
+    shape_t = [7,1,3,1]
+    dt_t = DataType.TERNARY
+    tensor_t = util.gen_FINN_dt_tensor(dt_t, shape_t)
+    # test shape
+    for i in range(len(shape_t)):
+        assert shape_t[i] == tensor_t.shape[i], """Shape of generated tensor
+            does not match the desired shape"""
+    # test if elements are FINN datatype
+    for value in tensor_t.flatten():
+        assert dt_t.allowed(value), """Data type of generated tensor
+            does not match the desired Data type"""
+
+
     #import pdb; pdb.set_trace()