From eaafb2444a67e0f612684a6d0030bbc5f4070fbd Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Wed, 11 Oct 2023 08:27:05 +0200
Subject: [PATCH] Use g_cross_clock_domain = false to save logic.

---
 .../sdp/src/vhdl/sdp_bdo_destinations_reg.vhd         | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd b/applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
index 8c5d010163..35d4a7135c 100644
--- a/applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
+++ b/applications/lofar2/libraries/sdp/src/vhdl/sdp_bdo_destinations_reg.vhd
@@ -208,8 +208,15 @@ begin
 
   u_mm_fields: entity mm_lib.mm_fields
   generic map(
-    g_use_slv_in_val  => false,  -- use FALSE to save logic when always slv_in_val='1'
-    g_field_arr       => c_field_arr
+    -- With g_nof_destinations_max = 31 and mac_w = 48, ip_w = 32, udp_w = 16
+    -- the expected logic FF usage is 31 * (48 + 32 + 16) + 4 * 32 ~= 3104 FF.
+    -- Use g_cross_clock_domain false to save clock domain crossing logic,
+    -- which is about 2/3 of the total logic (~ 6200 FF). This is save,
+    -- because the reg fields are set well before they are used, so any meta
+    -- stability will have settled long before that.
+    g_cross_clock_domain => false,
+    g_use_slv_in_val     => false,  -- use false to save logic when always slv_in_val='1'
+    g_field_arr          => c_field_arr
   )
   port map (
     mm_clk     => mm_clk,
-- 
GitLab