From da7fe065cc4d43edd38525af34021ac4708b7b8f Mon Sep 17 00:00:00 2001 From: Alex Forencich Date: Sun, 16 Feb 2025 19:27:56 -0800 Subject: [PATCH] io: Rework generic ODDR implementation Signed-off-by: Alex Forencich --- rtl/io/taxi_oddr.sv | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/rtl/io/taxi_oddr.sv b/rtl/io/taxi_oddr.sv index 6c0676e..369a8d1 100644 --- a/rtl/io/taxi_oddr.sv +++ b/rtl/io/taxi_oddr.sv @@ -112,25 +112,15 @@ end else if (!SIM && VENDOR == "ALTERA") begin end else begin // generic/simulation implementation (no vendor primitives) - logic [WIDTH-1:0] d_reg_1 = '0; - logic [WIDTH-1:0] d_reg_2 = '0; - - logic [WIDTH-1:0] q_reg = '0; + logic [WIDTH-1:0] d1_reg = '0; + logic [WIDTH-1:0] d2_reg = '0; always_ff @(posedge clk) begin - d_reg_1 <= d1; - d_reg_2 <= d2; + d1_reg <= d1; + d2_reg <= d2; end - always_ff @(posedge clk) begin - q_reg <= d1; - end - - always_ff @(negedge clk) begin - q_reg <= d_reg_2; - end - - assign q = q_reg; + assign q = clk ? d1_reg : d2_reg; end