User`s manual

131 wire signed[25:0] denom_15;
132 wire signed[32:0] p9;
133 wire signed[32:0] x1_denom;
134 wire signed[36:0] x1_denom_15;
135 wire signed[43:0] p3;
136 wire signed[31:0] y1_denom;
137 wire signed[35:0] y1_denom_15;
138 wire signed[42:0] p6;
139 assign denom_15 = (denom <<< 4) - denom; // denom * 15
140 assign p9 = denom_15 <<< 7; // denom * 1920
141 assign x1_denom = sx1 * denom; // x1 * denom
142 assign x1_denom_15 = (x1_denom <<< 4) - x1_denom; // x1 * denom * 15
143 assign p3 = x1_denom_15 <<< 7; // x1 * denom * 1920
144 assign y1_denom = sy1 * denom; // y1 * denom
145 assign y1_denom_15 = (y1_denom <<< 4) - y1_denom; // y1 * denom * 15
146 assign p6 = y1_denom_15 <<< 7; // y1 * denom * 1920
147
148 // computation of p1, p2, p4, p5
149 wire signed[32:0] d_x1_x2_denom;
150 wire signed[32:0] d_x4_x1_denom;
151 wire signed[31:0] d_y4_y1_denom;
152 wire signed[31:0] d_y1_y2_denom;
153 wire signed[34:0] d_x1_x2_denom_scale;
154 wire signed[34:0] d_x4_x1_denom_scale;
155 wire signed[33:0] d_y4_y1_denom_scale;
156 wire signed[33:0] d_y1_y2_denom_scale;
157 wire signed[34:0] x4_p7;
158 wire signed[34:0] x2_p8;
159 wire signed[33:0] y4_p7;
160 wire signed[33:0] y2_p8;
161 wire signed[35:0] p1, p2;
162 wire signed[34:0] p4, p5;
163 assign d_x1_x2_denom = d_x1_x2 * denom;
164 assign d_x4_x1_denom = d_x4_x1 * denom;
165 assign d_y4_y1_denom = d_y4_y1 * denom;
166 assign d_y1_y2_denom = d_y1_y2 * denom;
167 assign d_x4_x1_denom_scale = (d_x4_x1_denom <<< 1) + d_x4_x1_denom; // d_x4_x1_denom*3
168 assign d_x1_x2_denom_scale = (d_x1_x2_denom <<< 2); // d_x1_x2_denom*4
169 assign d_y4_y1_denom_scale = (d_y4_y1_denom <<< 1) + d_y4_y1_denom; // d_y4_y1_denom*3
170 assign d_y1_y2_denom_scale = (d_y1_y2_denom <<< 2); // d_y1_y2_denom*4
171 assign x4_p7 = sx4 * p7;
172 assign x2_p8 = sx2 * p8;
173 assign y4_p7 = sy4 * p7;
174 assign y2_p8 = sy2 * p8;
175 assign p1 = x4_p7 + d_x4_x1_denom_scale;
176 assign p2 = x2_p8 - d_x1_x2_denom_scale;
230