Line 19... |
Line 19... |
e3, e4, e5,
|
e3, e4, e5,
|
mult_done, p, rst;
|
mult_done, p, rst;
|
wire [`W2:0] in0, in1;
|
wire [`W2:0] in0, in1;
|
wire [`W2:0] o;
|
wire [`W2:0] o;
|
reg mult_reset, delay1, delay2;
|
reg mult_reset, delay1, delay2;
|
|
reg [`W2:0] in0d,in1d;
|
|
|
assign {e0,e1,e2,e3,e4,e5} = K[6:1];
|
assign {e0,e1,e2,e3,e4,e5} = K[6:1];
|
assign {a2,a1,a0} = a;
|
assign {a2,a1,a0} = a;
|
assign {b2,b1,b0} = b;
|
assign {b2,b1,b0} = b;
|
assign d4 = x0;
|
assign d4 = x0;
|
Line 31... |
Line 32... |
|
|
f32m_mux6
|
f32m_mux6
|
ins1 (a2,v1,a1,v3,v5,a0,e0,e1,e2,e3,e4,e5,in0), // $in0$ is the first input
|
ins1 (a2,v1,a1,v3,v5,a0,e0,e1,e2,e3,e4,e5,in0), // $in0$ is the first input
|
ins2 (b2,v2,b1,v4,v6,b0,e0,e1,e2,e3,e4,e5,in1); // $in1$ is the second input
|
ins2 (b2,v2,b1,v4,v6,b0,e0,e1,e2,e3,e4,e5,in1); // $in1$ is the second input
|
f32m_mult
|
f32m_mult
|
ins3 (clk, mult_reset, in0, in1, o, mult_done); // o == in0 * in1
|
ins3 (clk, mult_reset, in0d, in1d, o, mult_done); // o == in0 * in1
|
func6
|
func6
|
ins4 (clk, reset, mult_done, p);
|
ins4 (clk, reset, mult_done, p);
|
f32m_add
|
f32m_add
|
ins5 (a1, a2, v1), // v1 == a1+a2
|
ins5 (a1, a2, v1), // v1 == a1+a2
|
ins6 (b1, b2, v2), // v2 == b1+b2
|
ins6 (b1, b2, v2), // v2 == b1+b2
|
Line 56... |
Line 57... |
f32m_add4
|
f32m_add4
|
ins19 (x3, x2, nx0, nx5, d2); // d2 == x3+x2-x0-x5
|
ins19 (x3, x2, nx0, nx5, d2); // d2 == x3+x2-x0-x5
|
|
|
always @ (posedge clk)
|
always @ (posedge clk)
|
begin
|
begin
|
|
in0d <= in0; in1d <= in1;
|
|
end
|
|
|
|
always @ (posedge clk)
|
|
begin
|
if (reset) K <= 7'b1000000;
|
if (reset) K <= 7'b1000000;
|
else if (p | K[0]) K <= {1'b0,K[6:1]};
|
else if (p | K[0]) K <= {1'b0,K[6:1]};
|
end
|
end
|
|
|
always @ (posedge clk)
|
always @ (posedge clk)
|