From 1a3c03cf152ae5b2c1fc4e9df1326265cef3d6fd Mon Sep 17 00:00:00 2001 From: Sioni Summers <14807534+thesps@users.noreply.github.com> Date: Fri, 8 Dec 2023 10:56:15 +0100 Subject: [PATCH] Improve timing in payload --- .../firmware/payload/firmware/hdl/payload.vhd | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/part3/firmware/payload/firmware/hdl/payload.vhd b/part3/firmware/payload/firmware/hdl/payload.vhd index caa4a78..ff9db1d 100644 --- a/part3/firmware/payload/firmware/hdl/payload.vhd +++ b/part3/firmware/payload/firmware/hdl/payload.vhd @@ -34,10 +34,12 @@ end emp_payload; architecture rtl of emp_payload is - signal X_scaled : std_logic_vector(895 downto 0) := (others => '0'); - signal X_scaled_vld : std_logic := '0'; - signal y : std_logic_vector(12 downto 0) := (others => '0'); - signal y_vld : std_logic := '0'; + signal X_scaled : std_logic_vector(895 downto 0) := (others => '0'); + signal X_scaled_vld : std_logic := '0'; + signal X_scaled_delay : std_logic_vector(895 downto 0) := (others => '0'); + signal X_scaled_vld_delay : std_logic := '0'; + signal y : std_logic_vector(12 downto 0) := (others => '0'); + signal y_vld : std_logic := '0'; begin @@ -50,12 +52,16 @@ begin X_vld => X_scaled_vld ); + -- add a buffer between the scaler and NN to ease timing + X_scaled_delay <= X_scaled when rising_edge(clk); + X_scaled_vld_delay <= X_scaled_vld when rising_edge(clk); + -- run the NN NNInstance : entity work.NNWrapper port map( clk => clk_p, - X_scaled => X_scaled, - X_vld => X_scaled_vld, + X_scaled => X_scaled_delay, + X_vld => X_scaled_vld_delay, y => y, y_vld => y_vld ); -- GitLab