Re-modelled k6n10f DSP FIR coeff inputs as parameters instead of ports, updated techmaps. Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
diff --git a/ql-qlf-plugin/qlf_k6n10f/cells_sim.v b/ql-qlf-plugin/qlf_k6n10f/cells_sim.v index 43b3ba2..296fc81 100644 --- a/ql-qlf-plugin/qlf_k6n10f/cells_sim.v +++ b/ql-qlf-plugin/qlf_k6n10f/cells_sim.v
@@ -706,13 +706,14 @@ input [5:0] shift_right, input round, input subtract, - input register_inputs, - input [19:0] coeff_0, - input [19:0] coeff_1, - input [19:0] coeff_2, - input [19:0] coeff_3 + input register_inputs ); + parameter [19:0] COEFF_0 = 20'd0; + parameter [19:0] COEFF_1 = 20'd0; + parameter [19:0] COEFF_2 = 20'd0; + parameter [19:0] COEFF_3 = 20'd0; + endmodule (* blackbox *) // TODO: add sim model @@ -737,12 +738,14 @@ input [5:0] shift_right_i, input round_i, input subtract_i, - input register_inputs_i, - input [19:0] coeff_0_i, - input [19:0] coeff_1_i, - input [19:0] coeff_2_i, - input [19:0] coeff_3_i + input register_inputs_i ); + + parameter [19:0] COEFF_0 = 20'd0; + parameter [19:0] COEFF_1 = 20'd0; + parameter [19:0] COEFF_2 = 20'd0; + parameter [19:0] COEFF_3 = 20'd0; + endmodule (* blackbox *) // TODO: add sim model @@ -767,10 +770,12 @@ input [5:0] shift_right_i, input round_i, input subtract_i, - input register_inputs_i, - input [ 9:0] coeff_0_i, - input [ 9:0] coeff_1_i, - input [ 9:0] coeff_2_i, - input [ 9:0] coeff_3_i + input register_inputs_i ); + + parameter [9:0] COEFF_0 = 10'd0; + parameter [9:0] COEFF_1 = 10'd0; + parameter [9:0] COEFF_2 = 10'd0; + parameter [9:0] COEFF_3 = 10'd0; + endmodule
diff --git a/ql-qlf-plugin/qlf_k6n10f/dsp_final_map.v b/ql-qlf-plugin/qlf_k6n10f/dsp_final_map.v index 5fe905c..b8423e5 100644 --- a/ql-qlf-plugin/qlf_k6n10f/dsp_final_map.v +++ b/ql-qlf-plugin/qlf_k6n10f/dsp_final_map.v
@@ -26,14 +26,20 @@ input [5:0] shift_right_i, input round_i, input subtract_i, - input register_inputs_i, - input [19:0] coeff_0_i, - input [19:0] coeff_1_i, - input [19:0] coeff_2_i, - input [19:0] coeff_3_i + input register_inputs_i ); - QL_DSP2 _TECHMAP_REPLACE_ ( + parameter [19:0] COEFF_0 = 20'd0; + parameter [19:0] COEFF_1 = 20'd0; + parameter [19:0] COEFF_2 = 20'd0; + parameter [19:0] COEFF_3 = 20'd0; + + QL_DSP2 # ( + .COEFF_0 (COEFF_0), + .COEFF_1 (COEFF_1), + .COEFF_2 (COEFF_2), + .COEFF_3 (COEFF_3) + ) _TECHMAP_REPLACE_ ( .a (a_i), .b (b_i), .acc_fir (acc_fir_i), @@ -54,11 +60,7 @@ .shift_right (shift_right_i), .round (round_i), .subtract (subtract_i), - .register_inputs (register_inputs_i), - .coeff_0 (coeff_0_i), - .coeff_1 (coeff_1_i), - .coeff_2 (coeff_2_i), - .coeff_3 (coeff_3_i) + .register_inputs (register_inputs_i) ); endmodule @@ -91,10 +93,20 @@ input [ 9:0] coeff_3_i ); + parameter [9:0] COEFF_0 = 10'd0; + parameter [9:0] COEFF_1 = 10'd0; + parameter [9:0] COEFF_2 = 10'd0; + parameter [9:0] COEFF_3 = 10'd0; + wire [37:0] z; wire [17:0] dly_b; - QL_DSP2 _TECHMAP_REPLACE_ ( + QL_DSP2 # ( + .COEFF_0 ({10'd0, COEFF_0}), + .COEFF_1 ({10'd0, COEFF_1}), + .COEFF_2 ({10'd0, COEFF_2}), + .COEFF_3 ({10'd0, COEFF_3}) + ) _TECHMAP_REPLACE_ ( .a ({10'd0, a_i}), .b ({ 9'd0, b_i}), .acc_fir (acc_fir_i), @@ -115,11 +127,7 @@ .shift_right (shift_right_i), .round (round_i), .subtract (subtract_i), - .register_inputs (register_inputs_i), - .coeff_0 ({10'd0, coeff_0_i}), - .coeff_1 ({10'd0, coeff_1_i}), - .coeff_2 ({10'd0, coeff_2_i}), - .coeff_3 ({10'd0, coeff_3_i}) + .register_inputs (register_inputs_i) ); assign z_o = z[18:0];
diff --git a/ql-qlf-plugin/qlf_k6n10f/dsp_map.v b/ql-qlf-plugin/qlf_k6n10f/dsp_map.v index 054d82a..e10df2a 100644 --- a/ql-qlf-plugin/qlf_k6n10f/dsp_map.v +++ b/ql-qlf-plugin/qlf_k6n10f/dsp_map.v
@@ -41,11 +41,7 @@ .shift_right_i (6'd0), .round_i (1'b0), .subtract_i (1'b0), - .register_inputs_i (1'b0), - .coeff_0_i (20'd0), - .coeff_1_i (20'd0), - .coeff_2_i (20'd0), - .coeff_3_i (20'd0) + .register_inputs_i (1'b0) ); assign Y = z; @@ -87,11 +83,7 @@ .shift_right_i (6'd0), .round_i (1'b0), .subtract_i (1'b0), - .register_inputs_i (1'b0), - .coeff_0_i (10'd0), - .coeff_1_i (10'd0), - .coeff_2_i (10'd0), - .coeff_3_i (10'd0) + .register_inputs_i (1'b0) ); assign Y = z;