25023 lines
662 KiB
Verilog
Executable File
25023 lines
662 KiB
Verilog
Executable File
|
|
// Skeleton
|
|
// Reads constants and instantiates all modules used by the hardware components
|
|
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter LAYER_WIDTH=3;
|
|
`define TRIG_WIDTH 5'b01010 //10;
|
|
`define PIPELINE_DEPTH_UPPER_LIMIT 10'b0100000000 //256;
|
|
`define ABSORB_ADDR_WIDTH 6'b010000 //16;
|
|
`define ABSORB_WORD_WIDTH 7'b01000000 //64;
|
|
`define WSCALE 22'b0111010100101111111111 //1919999;
|
|
|
|
//From Roulette
|
|
//`define BIT_WIDTH 7'b0100000
|
|
//`define LAYER_WIDTH 6'b000011
|
|
`define LEFTSHIFT 6'b000011 // 2^3=8=1/0.125 where 0.125 = CHANCE of roulette
|
|
`define INTCHANCE 32'b00100000000000000000000000000000 //Based on 32 bit rand num generator
|
|
`define MIN_WEIGHT 9'b011001000
|
|
|
|
// From Boundary
|
|
`define BIT_WIDTH 7'b0100000
|
|
`define LAYER_WIDTH 6'b000011
|
|
`define INTMAX 32'b01111111111111111111111111111111
|
|
`define INTMIN 32'b10000000000000000000000000000000
|
|
`define DIVIDER_LATENCY 6'b011110
|
|
`define FINAL_LATENCY 6'b011100
|
|
`define MULT_LATENCY 1'b1
|
|
`define ASPECT_RATIO 6'b000111
|
|
`define TOTAL_LATENCY 7'b0111100
|
|
|
|
//From Move
|
|
//`define BIT_WIDTH 6'b100000
|
|
//`define LAYER_WIDTH 6'b000011
|
|
`define LOGSCALEFACTOR 6'b000101
|
|
`define MAXLOG 32'b10110001011100100001011111110111 //Based on 32 bit unsigned rand num generator
|
|
`define CONST_MOVE_AMOUNT 15'b110000110101000 //Used for testing purposes only
|
|
`define MUTMAX_BITS 6'b001111
|
|
|
|
//From Hop
|
|
//`define BIT_WIDTH 6'b100000
|
|
//`define LAYER_WIDTH 6'b000011
|
|
//`define INTMAX 32'b01111111111111111111111111111111
|
|
//`define INTMIN 32'b10000000000000000000000000000000
|
|
|
|
//From LogCalc
|
|
//`define BIT_WIDTH 7'b0100000
|
|
`define MANTISSA_PRECISION 6'b001010
|
|
`define LOG2_BIT_WIDTH 6'b000110
|
|
`define LOG2 28'b0101100010111001000010111111
|
|
|
|
//From DropSpinWrapper
|
|
`define NR 10'b0100000000
|
|
`define NZ 10'b0100000000
|
|
|
|
`define NR_EXP 5'b01000 //meaning `NR=2^`NR_exp or 2^8=256
|
|
`define RGRID_SCLAE_EXP 6'b010101 //2^21 = RGRID_SCALE
|
|
`define ZGRID_SCLAE_EXP 6'b010101 //2^21 = ZGRID_SCALE
|
|
|
|
|
|
//`define BIT_WIDTH 7'b0100000
|
|
`define BIT_WIDTH_2 8'b01000000
|
|
`define WORD_WIDTH 8'b01000000
|
|
`define ADDR_WIDTH 6'b010000 //256x256=2^8*2^8=2^16
|
|
|
|
|
|
//From scatterer:
|
|
`define DIV 6'b010100//20;
|
|
`define SQRT 5'b01010 //10;
|
|
`define LAT 7'b0100101 //DIV + SQRT + 7;
|
|
`define INTMAX_2 {32'h3FFFFFFF,32'h00000001}
|
|
//`define INTMAX 32'b01111111111111111111111111111111//2147483647;
|
|
//`define INTMIN 32'b10000000000000000000000000000001//-2147483647;
|
|
`define INTMAXMinus3 32'b01111111111111111111111111111100//2147483644;
|
|
`define negINTMAXPlus3 32'b10000000000000000000000000000100//-2147483644;
|
|
|
|
//From Reflector:
|
|
`define INTMAX_2_ref {32'h3FFFFFFF,32'hFFFFFFFF}
|
|
|
|
|
|
module mcml (
|
|
reset,
|
|
clk,
|
|
|
|
constants,
|
|
read_constants,
|
|
|
|
result,
|
|
inc_result,
|
|
|
|
calc_in_progress
|
|
);
|
|
|
|
// Total number of constants
|
|
//parameter LAST_CONSTANT = 104;
|
|
//parameter NUM_FRESNELS = 128;
|
|
//parameter NUM_TRIG_ELS = 1024;
|
|
//parameter ABSORB_ADDR_WIDTH=16;
|
|
//parameter ABSORB_WORD_WIDTH=64;
|
|
//parameter BIT_WIDTH = 32;
|
|
|
|
input reset;
|
|
input clk;
|
|
input [31:0] constants;
|
|
input read_constants;
|
|
input inc_result;
|
|
|
|
output calc_in_progress;
|
|
output [31:0] result;
|
|
reg calc_in_progress;
|
|
reg [31:0] result;
|
|
|
|
|
|
//integer i;
|
|
|
|
wire [31:0] mem_fres_up, mem_fres_down, mem_sint, mem_cost;
|
|
|
|
// photon calculator
|
|
|
|
wire reset;
|
|
|
|
// Scatterer Reflector memory look-up
|
|
wire [12:0] tindex;
|
|
wire [9:0] fresIndex;
|
|
|
|
// DeadOrAlive Module (nothing)
|
|
|
|
// Final results
|
|
wire [16-1:0] absorb_rdaddress, absorb_wraddress;
|
|
wire absorb_wren;
|
|
wire [64-1:0] absorb_data;
|
|
wire [64-1:0] absorb_q;
|
|
|
|
// Flag when final results ready
|
|
wire done;
|
|
reg enable;
|
|
reg reset_calculator;
|
|
|
|
// Combinational drivers
|
|
//reg [31:0] c_const[104 - 1:0];
|
|
reg [31:0] c_const__103;
|
|
reg [31:0] c_const__102;
|
|
reg [31:0] c_const__101;
|
|
reg [31:0] c_const__100;
|
|
reg [31:0] c_const__99;
|
|
reg [31:0] c_const__98;
|
|
reg [31:0] c_const__97;
|
|
reg [31:0] c_const__96;
|
|
reg [31:0] c_const__95;
|
|
reg [31:0] c_const__94;
|
|
reg [31:0] c_const__93;
|
|
reg [31:0] c_const__92;
|
|
reg [31:0] c_const__91;
|
|
reg [31:0] c_const__90;
|
|
reg [31:0] c_const__89;
|
|
reg [31:0] c_const__88;
|
|
reg [31:0] c_const__87;
|
|
reg [31:0] c_const__86;
|
|
reg [31:0] c_const__85;
|
|
reg [31:0] c_const__84;
|
|
reg [31:0] c_const__83;
|
|
reg [31:0] c_const__82;
|
|
reg [31:0] c_const__81;
|
|
reg [31:0] c_const__80;
|
|
reg [31:0] c_const__79;
|
|
reg [31:0] c_const__78;
|
|
reg [31:0] c_const__77;
|
|
reg [31:0] c_const__76;
|
|
reg [31:0] c_const__75;
|
|
reg [31:0] c_const__74;
|
|
reg [31:0] c_const__73;
|
|
reg [31:0] c_const__72;
|
|
reg [31:0] c_const__71;
|
|
reg [31:0] c_const__70;
|
|
reg [31:0] c_const__69;
|
|
reg [31:0] c_const__68;
|
|
reg [31:0] c_const__67;
|
|
reg [31:0] c_const__66;
|
|
reg [31:0] c_const__65;
|
|
reg [31:0] c_const__64;
|
|
reg [31:0] c_const__63;
|
|
reg [31:0] c_const__62;
|
|
reg [31:0] c_const__61;
|
|
reg [31:0] c_const__60;
|
|
reg [31:0] c_const__59;
|
|
reg [31:0] c_const__58;
|
|
reg [31:0] c_const__57;
|
|
reg [31:0] c_const__56;
|
|
reg [31:0] c_const__55;
|
|
reg [31:0] c_const__54;
|
|
reg [31:0] c_const__53;
|
|
reg [31:0] c_const__52;
|
|
reg [31:0] c_const__51;
|
|
reg [31:0] c_const__50;
|
|
reg [31:0] c_const__49;
|
|
reg [31:0] c_const__48;
|
|
reg [31:0] c_const__47;
|
|
reg [31:0] c_const__46;
|
|
reg [31:0] c_const__45;
|
|
reg [31:0] c_const__44;
|
|
reg [31:0] c_const__43;
|
|
reg [31:0] c_const__42;
|
|
reg [31:0] c_const__41;
|
|
reg [31:0] c_const__40;
|
|
reg [31:0] c_const__39;
|
|
reg [31:0] c_const__38;
|
|
reg [31:0] c_const__37;
|
|
reg [31:0] c_const__36;
|
|
reg [31:0] c_const__35;
|
|
reg [31:0] c_const__34;
|
|
reg [31:0] c_const__33;
|
|
reg [31:0] c_const__32;
|
|
reg [31:0] c_const__31;
|
|
reg [31:0] c_const__30;
|
|
reg [31:0] c_const__29;
|
|
reg [31:0] c_const__28;
|
|
reg [31:0] c_const__27;
|
|
reg [31:0] c_const__26;
|
|
reg [31:0] c_const__25;
|
|
reg [31:0] c_const__24;
|
|
reg [31:0] c_const__23;
|
|
reg [31:0] c_const__22;
|
|
reg [31:0] c_const__21;
|
|
reg [31:0] c_const__20;
|
|
reg [31:0] c_const__19;
|
|
reg [31:0] c_const__18;
|
|
reg [31:0] c_const__17;
|
|
reg [31:0] c_const__16;
|
|
reg [31:0] c_const__15;
|
|
reg [31:0] c_const__14;
|
|
reg [31:0] c_const__13;
|
|
reg [31:0] c_const__12;
|
|
reg [31:0] c_const__11;
|
|
reg [31:0] c_const__10;
|
|
reg [31:0] c_const__9;
|
|
reg [31:0] c_const__8;
|
|
reg [31:0] c_const__7;
|
|
reg [31:0] c_const__6;
|
|
reg [31:0] c_const__5;
|
|
reg [31:0] c_const__4;
|
|
reg [31:0] c_const__3;
|
|
reg [31:0] c_const__2;
|
|
reg [31:0] c_const__1;
|
|
reg [31:0] c_const__0;
|
|
|
|
|
|
reg [12:0] c_counter;
|
|
reg c_toggle;
|
|
|
|
reg [16-1:0] c_absorb_read_counter, c_absorb_write_counter;
|
|
reg [16-1:0] absorb_rdaddress_mux, absorb_wraddress_mux;
|
|
reg [64-1:0] absorb_data_mux;
|
|
reg absorb_wren_mux;
|
|
|
|
reg [3:0] c_state;
|
|
|
|
reg [31:0] c_result;
|
|
reg c_calc_in_progress;
|
|
|
|
reg wren_fres_up, wren_fres_down, wren_sinp, wren_cosp, wren_sint, wren_cost;
|
|
reg [2:0] mem_layer;
|
|
|
|
// Registered drivers
|
|
//reg [31:0] r_const[104 - 1:0];
|
|
reg [31:0] r_const__103;
|
|
reg [31:0] r_const__102;
|
|
reg [31:0] r_const__101;
|
|
reg [31:0] r_const__100;
|
|
reg [31:0] r_const__99;
|
|
reg [31:0] r_const__98;
|
|
reg [31:0] r_const__97;
|
|
reg [31:0] r_const__96;
|
|
reg [31:0] r_const__95;
|
|
reg [31:0] r_const__94;
|
|
reg [31:0] r_const__93;
|
|
reg [31:0] r_const__92;
|
|
reg [31:0] r_const__91;
|
|
reg [31:0] r_const__90;
|
|
reg [31:0] r_const__89;
|
|
reg [31:0] r_const__88;
|
|
reg [31:0] r_const__87;
|
|
reg [31:0] r_const__86;
|
|
reg [31:0] r_const__85;
|
|
reg [31:0] r_const__84;
|
|
reg [31:0] r_const__83;
|
|
reg [31:0] r_const__82;
|
|
reg [31:0] r_const__81;
|
|
reg [31:0] r_const__80;
|
|
reg [31:0] r_const__79;
|
|
reg [31:0] r_const__78;
|
|
reg [31:0] r_const__77;
|
|
reg [31:0] r_const__76;
|
|
reg [31:0] r_const__75;
|
|
reg [31:0] r_const__74;
|
|
reg [31:0] r_const__73;
|
|
reg [31:0] r_const__72;
|
|
reg [31:0] r_const__71;
|
|
reg [31:0] r_const__70;
|
|
reg [31:0] r_const__69;
|
|
reg [31:0] r_const__68;
|
|
reg [31:0] r_const__67;
|
|
reg [31:0] r_const__66;
|
|
reg [31:0] r_const__65;
|
|
reg [31:0] r_const__64;
|
|
reg [31:0] r_const__63;
|
|
reg [31:0] r_const__62;
|
|
reg [31:0] r_const__61;
|
|
reg [31:0] r_const__60;
|
|
reg [31:0] r_const__59;
|
|
reg [31:0] r_const__58;
|
|
reg [31:0] r_const__57;
|
|
reg [31:0] r_const__56;
|
|
reg [31:0] r_const__55;
|
|
reg [31:0] r_const__54;
|
|
reg [31:0] r_const__53;
|
|
reg [31:0] r_const__52;
|
|
reg [31:0] r_const__51;
|
|
reg [31:0] r_const__50;
|
|
reg [31:0] r_const__49;
|
|
reg [31:0] r_const__48;
|
|
reg [31:0] r_const__47;
|
|
reg [31:0] r_const__46;
|
|
reg [31:0] r_const__45;
|
|
reg [31:0] r_const__44;
|
|
reg [31:0] r_const__43;
|
|
reg [31:0] r_const__42;
|
|
reg [31:0] r_const__41;
|
|
reg [31:0] r_const__40;
|
|
reg [31:0] r_const__39;
|
|
reg [31:0] r_const__38;
|
|
reg [31:0] r_const__37;
|
|
reg [31:0] r_const__36;
|
|
reg [31:0] r_const__35;
|
|
reg [31:0] r_const__34;
|
|
reg [31:0] r_const__33;
|
|
reg [31:0] r_const__32;
|
|
reg [31:0] r_const__31;
|
|
reg [31:0] r_const__30;
|
|
reg [31:0] r_const__29;
|
|
reg [31:0] r_const__28;
|
|
reg [31:0] r_const__27;
|
|
reg [31:0] r_const__26;
|
|
reg [31:0] r_const__25;
|
|
reg [31:0] r_const__24;
|
|
reg [31:0] r_const__23;
|
|
reg [31:0] r_const__22;
|
|
reg [31:0] r_const__21;
|
|
reg [31:0] r_const__20;
|
|
reg [31:0] r_const__19;
|
|
reg [31:0] r_const__18;
|
|
reg [31:0] r_const__17;
|
|
reg [31:0] r_const__16;
|
|
reg [31:0] r_const__15;
|
|
reg [31:0] r_const__14;
|
|
reg [31:0] r_const__13;
|
|
reg [31:0] r_const__12;
|
|
reg [31:0] r_const__11;
|
|
reg [31:0] r_const__10;
|
|
reg [31:0] r_const__9;
|
|
reg [31:0] r_const__8;
|
|
reg [31:0] r_const__7;
|
|
reg [31:0] r_const__6;
|
|
reg [31:0] r_const__5;
|
|
reg [31:0] r_const__4;
|
|
reg [31:0] r_const__3;
|
|
reg [31:0] r_const__2;
|
|
reg [31:0] r_const__1;
|
|
reg [31:0] r_const__0;
|
|
|
|
|
|
|
|
reg [12:0] r_counter;
|
|
reg [16-1:0] r_absorb_read_counter;
|
|
reg [16-1:0] r_absorb_write_counter;
|
|
reg [3:0] r_state;
|
|
reg r_toggle;
|
|
|
|
// Skeleton program states
|
|
parameter [3:0] ERROR_ST = 4'b0000,
|
|
READ1_ST = 4'b0001,
|
|
READ2_ST = 4'b0010,
|
|
READ3_ST = 4'b0011,
|
|
READ4_ST = 4'b0100,
|
|
READ5_ST = 4'b0101,
|
|
RESET_MEM_ST = 4'b0110,
|
|
CALC_ST = 4'b1000,
|
|
DONE1_ST = 4'b1001,
|
|
DONE2_ST = 4'b1010,
|
|
DONE3_ST = 4'b1011,
|
|
DONE4_ST = 4'b1100,
|
|
DONE5_ST = 4'b1101,
|
|
DONE6_ST = 4'b1110;
|
|
|
|
// Instantiate lookup memories
|
|
dual_port_mem_zz u_fres_up(clk, constants, {3'b0, fresIndex}, {3'b0, mem_layer, r_counter[6:0]}, wren_fres_up, mem_fres_up);
|
|
dual_port_mem_yy u_fres_down(clk, constants, {3'b0, fresIndex}, {3'b0, mem_layer, r_counter[6:0]}, wren_fres_down, mem_fres_down);
|
|
dual_port_mem_xx u_sint(clk, constants, tindex, {mem_layer, r_counter[9:0]}, wren_sint, mem_sint);
|
|
dual_port_mem_ww u_cost(clk, constants, tindex, {mem_layer, r_counter[9:0]}, wren_cost, mem_cost);
|
|
|
|
// Reduce size of absorption matrix
|
|
dual absorptionMatrix( .clk (clk), .data(absorb_data_mux[35:0]),
|
|
.rdaddress(absorb_rdaddress_mux), .wraddress(absorb_wraddress_mux),
|
|
.wren(absorb_wren_mux), .q(absorb_q[35:0]));
|
|
dual2 absorptionMatrix2( .clk (clk), .data(absorb_data_mux[53:36]),
|
|
.rdaddress(absorb_rdaddress_mux), .wraddress(absorb_wraddress_mux),
|
|
.wren(absorb_wren_mux), .q(absorb_q[53:36]));
|
|
dual3 absorptionMatrix3( .clk (clk), .data(absorb_data_mux[61:54]),
|
|
.rdaddress(absorb_rdaddress_mux), .wraddress(absorb_wraddress_mux),
|
|
.wren(absorb_wren_mux), .q(absorb_q[61:54]));
|
|
|
|
|
|
//
|
|
//peter m test since absorb_q not defined for 63:62
|
|
assign absorb_q[63:62] = 2'b00;
|
|
|
|
|
|
PhotonCalculator u_calc (
|
|
.clock(clk), .reset(reset_calculator), .enable(enable),
|
|
|
|
// CONSTANTS
|
|
.total_photons(r_const__0),
|
|
|
|
.randseed1(r_const__19), .randseed2(r_const__20), .randseed3(r_const__21), .randseed4(r_const__22), .randseed5(r_const__23),
|
|
|
|
//Because it is in the module:
|
|
.initialWeight(32'b00000000000111010100101111111111),
|
|
|
|
// Mover
|
|
.OneOver_MutMaxrad_0(r_const__32), .OneOver_MutMaxrad_1(r_const__33), .OneOver_MutMaxrad_2(r_const__34), .OneOver_MutMaxrad_3(r_const__35), .OneOver_MutMaxrad_4(r_const__36), .OneOver_MutMaxrad_5(r_const__37),
|
|
.OneOver_MutMaxdep_0(r_const__38), .OneOver_MutMaxdep_1(r_const__39), .OneOver_MutMaxdep_2(r_const__40), .OneOver_MutMaxdep_3(r_const__41), .OneOver_MutMaxdep_4(r_const__42), .OneOver_MutMaxdep_5(r_const__43),
|
|
.OneOver_Mut_0(r_const__26), .OneOver_Mut_1(r_const__27), .OneOver_Mut_2(r_const__28), .OneOver_Mut_3(r_const__29), .OneOver_Mut_4(r_const__30), .OneOver_Mut_5(r_const__31),
|
|
|
|
// BoundaryChecker
|
|
.z1_0(r_const__50), .z1_1(r_const__51), .z1_2(r_const__52), .z1_3(r_const__53), .z1_4(r_const__54), .z1_5(r_const__55),
|
|
.z0_0(r_const__44), .z0_1(r_const__45), .z0_2(r_const__46), .z0_3(r_const__47), .z0_4(r_const__48), .z0_5(r_const__49),
|
|
.mut_0(32'b00000000000000000000000000000000), .mut_1(r_const__2), .mut_2(r_const__3), .mut_3(r_const__4), .mut_4(r_const__5), .mut_5(r_const__6),
|
|
.maxDepth_over_maxRadius(r_const__1),
|
|
|
|
// Hop (no constants)
|
|
|
|
// Scatterer Reflector Wrapper
|
|
.down_niOverNt_1(r_const__69), .down_niOverNt_2(r_const__70), .down_niOverNt_3(r_const__71), .down_niOverNt_4(r_const__72), .down_niOverNt_5(r_const__73),
|
|
.up_niOverNt_1(r_const__75), .up_niOverNt_2(r_const__76), .up_niOverNt_3(r_const__77), .up_niOverNt_4(r_const__78), .up_niOverNt_5(r_const__79),
|
|
.down_niOverNt_2_1({r_const__81,r_const__87}), .down_niOverNt_2_2({r_const__82,r_const__88}), .down_niOverNt_2_3({r_const__83,r_const__89}), .down_niOverNt_2_4({r_const__84,r_const__90}), .down_niOverNt_2_5({r_const__85,r_const__91}),
|
|
.up_niOverNt_2_1({r_const__93,r_const__99}), .up_niOverNt_2_2({r_const__94,r_const__100}), .up_niOverNt_2_3({r_const__95,r_const__101}), .up_niOverNt_2_4({r_const__96,r_const__102}), .up_niOverNt_2_5({r_const__97,r_const__103}),
|
|
.downCritAngle_0(r_const__7), .downCritAngle_1(r_const__8), .downCritAngle_2(r_const__9), .downCritAngle_3(r_const__10), .downCritAngle_4(r_const__11),
|
|
.upCritAngle_0(r_const__13), .upCritAngle_1(r_const__14), .upCritAngle_2(r_const__15), .upCritAngle_3(r_const__16), .upCritAngle_4(r_const__17),
|
|
.muaFraction1(r_const__57), .muaFraction2(r_const__58), .muaFraction3(r_const__59), .muaFraction4(r_const__60), .muaFraction5(r_const__61),
|
|
// Interface to memory look-up
|
|
// From Memories
|
|
.up_rFresnel(mem_fres_up), .down_rFresnel(mem_fres_down), .sint(mem_sint), .cost(mem_cost),
|
|
// To Memories
|
|
.tindex(tindex), .fresIndex(fresIndex),
|
|
|
|
// DeadOrAlive (no Constants)
|
|
|
|
// Absorber
|
|
.absorb_data(absorb_data), .absorb_rdaddress(absorb_rdaddress), .absorb_wraddress(absorb_wraddress),
|
|
.absorb_wren(absorb_wren), .absorb_q(absorb_q),
|
|
|
|
// Done signal
|
|
.done(done)
|
|
);
|
|
|
|
// Mux to read the absorbtion array
|
|
always @(r_state or done or r_absorb_read_counter or r_absorb_write_counter or absorb_wraddress or absorb_data or absorb_rdaddress or absorb_data or absorb_wren )
|
|
begin
|
|
if(r_state == RESET_MEM_ST)
|
|
begin
|
|
absorb_wren_mux = 1'b1;
|
|
absorb_data_mux = 64'b0;
|
|
absorb_rdaddress_mux = r_absorb_read_counter;
|
|
absorb_wraddress_mux = r_absorb_write_counter;
|
|
end
|
|
else if(done == 1'b1)
|
|
begin
|
|
absorb_rdaddress_mux = r_absorb_read_counter;
|
|
absorb_wraddress_mux = absorb_wraddress;
|
|
absorb_data_mux = absorb_data;
|
|
absorb_wren_mux = 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
absorb_rdaddress_mux = absorb_rdaddress;
|
|
absorb_wraddress_mux = absorb_wraddress;
|
|
absorb_data_mux = absorb_data;
|
|
absorb_wren_mux = absorb_wren;
|
|
end
|
|
end
|
|
|
|
// Skeleton SW/HW interface
|
|
// 1. Read constants
|
|
// 2. Wait for completion
|
|
// 3. Write data back
|
|
always @(r_state or r_absorb_read_counter or r_absorb_write_counter or result or r_toggle or r_counter or read_constants or constants or done
|
|
or inc_result or mem_cost or mem_sint or absorb_q
|
|
or r_const__103
|
|
or r_const__102
|
|
or r_const__101
|
|
or r_const__100
|
|
or r_const__99
|
|
or r_const__98
|
|
or r_const__97
|
|
or r_const__96
|
|
or r_const__95
|
|
or r_const__94
|
|
or r_const__93
|
|
or r_const__92
|
|
or r_const__91
|
|
or r_const__90
|
|
or r_const__89
|
|
or r_const__88
|
|
or r_const__87
|
|
or r_const__86
|
|
or r_const__85
|
|
or r_const__84
|
|
or r_const__83
|
|
or r_const__82
|
|
or r_const__81
|
|
or r_const__80
|
|
or r_const__79
|
|
or r_const__78
|
|
or r_const__77
|
|
or r_const__76
|
|
or r_const__75
|
|
or r_const__74
|
|
or r_const__73
|
|
or r_const__72
|
|
or r_const__71
|
|
or r_const__70
|
|
or r_const__69
|
|
or r_const__68
|
|
or r_const__67
|
|
or r_const__66
|
|
or r_const__65
|
|
or r_const__64
|
|
or r_const__63
|
|
or r_const__62
|
|
or r_const__61
|
|
or r_const__60
|
|
or r_const__59
|
|
or r_const__58
|
|
or r_const__57
|
|
or r_const__56
|
|
or r_const__55
|
|
or r_const__54
|
|
or r_const__53
|
|
or r_const__52
|
|
or r_const__51
|
|
or r_const__50
|
|
or r_const__49
|
|
or r_const__48
|
|
or r_const__47
|
|
or r_const__46
|
|
or r_const__45
|
|
or r_const__44
|
|
or r_const__43
|
|
or r_const__42
|
|
or r_const__41
|
|
or r_const__40
|
|
or r_const__39
|
|
or r_const__38
|
|
or r_const__37
|
|
or r_const__36
|
|
or r_const__35
|
|
or r_const__34
|
|
or r_const__33
|
|
or r_const__32
|
|
or r_const__31
|
|
or r_const__30
|
|
or r_const__29
|
|
or r_const__28
|
|
or r_const__27
|
|
or r_const__26
|
|
or r_const__25
|
|
or r_const__24
|
|
or r_const__23
|
|
or r_const__22
|
|
or r_const__21
|
|
or r_const__20
|
|
or r_const__19
|
|
or r_const__18
|
|
or r_const__17
|
|
or r_const__16
|
|
or r_const__15
|
|
or r_const__14
|
|
or r_const__13
|
|
or r_const__12
|
|
or r_const__11
|
|
or r_const__10
|
|
or r_const__9
|
|
or r_const__8
|
|
or r_const__7
|
|
or r_const__6
|
|
or r_const__5
|
|
or r_const__4
|
|
or r_const__3
|
|
or r_const__2
|
|
or r_const__1
|
|
or r_const__0) begin
|
|
// Initialize data
|
|
//for(i = 0; i < 104; i = i + 1) begin
|
|
// c_const[i] = r_const[i];
|
|
//end
|
|
begin
|
|
//c_const__103 = r_const__103;
|
|
c_const__102 = r_const__102;
|
|
c_const__101 = r_const__101;
|
|
c_const__100 = r_const__100;
|
|
c_const__99 = r_const__99;
|
|
c_const__98 = r_const__98;
|
|
c_const__97 = r_const__97;
|
|
c_const__96 = r_const__96;
|
|
c_const__95 = r_const__95;
|
|
c_const__94 = r_const__94;
|
|
c_const__93 = r_const__93;
|
|
c_const__92 = r_const__92;
|
|
c_const__91 = r_const__91;
|
|
c_const__90 = r_const__90;
|
|
c_const__89 = r_const__89;
|
|
c_const__88 = r_const__88;
|
|
c_const__87 = r_const__87;
|
|
c_const__86 = r_const__86;
|
|
c_const__85 = r_const__85;
|
|
c_const__84 = r_const__84;
|
|
c_const__83 = r_const__83;
|
|
c_const__82 = r_const__82;
|
|
c_const__81 = r_const__81;
|
|
c_const__80 = r_const__80;
|
|
c_const__79 = r_const__79;
|
|
c_const__78 = r_const__78;
|
|
c_const__77 = r_const__77;
|
|
c_const__76 = r_const__76;
|
|
c_const__75 = r_const__75;
|
|
c_const__74 = r_const__74;
|
|
c_const__73 = r_const__73;
|
|
c_const__72 = r_const__72;
|
|
c_const__71 = r_const__71;
|
|
c_const__70 = r_const__70;
|
|
c_const__69 = r_const__69;
|
|
c_const__68 = r_const__68;
|
|
c_const__67 = r_const__67;
|
|
c_const__66 = r_const__66;
|
|
c_const__65 = r_const__65;
|
|
c_const__64 = r_const__64;
|
|
c_const__63 = r_const__63;
|
|
c_const__62 = r_const__62;
|
|
c_const__61 = r_const__61;
|
|
c_const__60 = r_const__60;
|
|
c_const__59 = r_const__59;
|
|
c_const__58 = r_const__58;
|
|
c_const__57 = r_const__57;
|
|
c_const__56 = r_const__56;
|
|
c_const__55 = r_const__55;
|
|
c_const__54 = r_const__54;
|
|
c_const__53 = r_const__53;
|
|
c_const__52 = r_const__52;
|
|
c_const__51 = r_const__51;
|
|
c_const__50 = r_const__50;
|
|
c_const__49 = r_const__49;
|
|
c_const__48 = r_const__48;
|
|
c_const__47 = r_const__47;
|
|
c_const__46 = r_const__46;
|
|
c_const__45 = r_const__45;
|
|
c_const__44 = r_const__44;
|
|
c_const__43 = r_const__43;
|
|
c_const__42 = r_const__42;
|
|
c_const__41 = r_const__41;
|
|
c_const__40 = r_const__40;
|
|
c_const__39 = r_const__39;
|
|
c_const__38 = r_const__38;
|
|
c_const__37 = r_const__37;
|
|
c_const__36 = r_const__36;
|
|
c_const__35 = r_const__35;
|
|
c_const__34 = r_const__34;
|
|
c_const__33 = r_const__33;
|
|
c_const__32 = r_const__32;
|
|
c_const__31 = r_const__31;
|
|
c_const__30 = r_const__30;
|
|
c_const__29 = r_const__29;
|
|
c_const__28 = r_const__28;
|
|
c_const__27 = r_const__27;
|
|
c_const__26 = r_const__26;
|
|
c_const__25 = r_const__25;
|
|
c_const__24 = r_const__24;
|
|
c_const__23 = r_const__23;
|
|
c_const__22 = r_const__22;
|
|
c_const__21 = r_const__21;
|
|
c_const__20 = r_const__20;
|
|
c_const__19 = r_const__19;
|
|
c_const__18 = r_const__18;
|
|
c_const__17 = r_const__17;
|
|
c_const__16 = r_const__16;
|
|
c_const__15 = r_const__15;
|
|
c_const__14 = r_const__14;
|
|
c_const__13 = r_const__13;
|
|
c_const__12 = r_const__12;
|
|
c_const__11 = r_const__11;
|
|
c_const__10 = r_const__10;
|
|
c_const__9 = r_const__9;
|
|
c_const__8 = r_const__8;
|
|
c_const__7 = r_const__7;
|
|
c_const__6 = r_const__6;
|
|
c_const__5 = r_const__5;
|
|
c_const__4 = r_const__4;
|
|
c_const__3 = r_const__3;
|
|
c_const__2 = r_const__2;
|
|
c_const__1 = r_const__1;
|
|
c_const__0 = r_const__0;
|
|
end
|
|
/*
|
|
//honourary c_const__103 = r_const__103
|
|
c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
*/
|
|
// Determine next state and which data changes
|
|
case(r_state)
|
|
//ERROR_ST:
|
|
READ1_ST:
|
|
begin
|
|
if(read_constants)
|
|
begin
|
|
// peter m redoing this to a shift register r_const 104 will shift to r_const 103 etc etc
|
|
// if its in the read_constants state
|
|
// c_const[r_counter] = constants;
|
|
c_counter = r_counter + 13'b00000000000001;
|
|
c_const__103 = constants;
|
|
//pm preventing latches
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
mem_layer = r_counter[12:10];
|
|
end
|
|
else
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
if(r_counter >= 104)
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = READ2_ST;
|
|
//preventing latches
|
|
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
mem_layer = r_counter[12:10];
|
|
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
c_state = r_state;
|
|
|
|
//preventing latches
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
mem_layer = r_counter[12:10];
|
|
end
|
|
end
|
|
end
|
|
READ2_ST:
|
|
begin
|
|
mem_layer = r_counter[9:7];
|
|
if(read_constants)
|
|
begin
|
|
wren_fres_up = 1'b1;
|
|
c_counter = r_counter + 13'b00000000000001;
|
|
//prevent latches
|
|
|
|
c_const__103 = r_const__103;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
c_state = r_state;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
|
|
end
|
|
else
|
|
begin
|
|
if(r_counter >= 5*128)
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = READ3_ST;
|
|
|
|
c_const__103 = r_const__103;
|
|
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
c_const__103 = r_const__103;
|
|
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
|
|
end
|
|
end
|
|
end
|
|
READ3_ST:
|
|
begin
|
|
mem_layer = r_counter[9:7];
|
|
c_const__103 = r_const__103;
|
|
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
|
|
wren_fres_up = 1'b0;
|
|
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
// mem_layer = r_counter[12:10];
|
|
if(read_constants)
|
|
begin
|
|
wren_fres_down = 1'b1;
|
|
c_counter = r_counter + 13'b00000000000001;
|
|
c_state = r_state;
|
|
end
|
|
else
|
|
begin
|
|
if(r_counter >= 5*128)
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = READ4_ST;
|
|
wren_fres_down = 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
c_state = r_state;
|
|
wren_fres_down = 1'b0;
|
|
end
|
|
end
|
|
end
|
|
READ4_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
//wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
if(read_constants)
|
|
begin
|
|
wren_cost = 1'b1;
|
|
c_counter = r_counter + 13'b00000000000001;
|
|
c_state = r_state;
|
|
end
|
|
else
|
|
begin
|
|
if(r_counter >= 13'b1010000000000) //5*1024 = 5120
|
|
begin
|
|
c_counter = 13'b0000000000000000000000000;
|
|
c_state = READ5_ST;
|
|
wren_cost = 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
c_state = r_state;
|
|
wren_cost = 1'b0;
|
|
end
|
|
end
|
|
end
|
|
READ5_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
//c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
//wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
if(read_constants)
|
|
begin
|
|
wren_sint = 1'b1;
|
|
c_counter = r_counter + 13'b00000000000000000000000001;
|
|
c_state = r_state;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
end
|
|
else
|
|
begin
|
|
if(r_counter >= 13'b1010000000000) //5*1024 = 5120
|
|
begin
|
|
c_counter = 13'b0000000000000000000000000;
|
|
c_absorb_read_counter = 16'b0000000000000000000000000; //use to be 13 bit. Error in odin
|
|
c_state = RESET_MEM_ST;
|
|
wren_sint = 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_state = r_state;
|
|
wren_sint = 1'b0;
|
|
end
|
|
end
|
|
end
|
|
RESET_MEM_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
// c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
//c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
//c_absorb_write_counter = r_absorb_write_counter;
|
|
//c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
|
|
|
|
c_counter = r_counter;
|
|
|
|
c_toggle = 1'b0;
|
|
c_calc_in_progress = 1'b1;
|
|
c_absorb_write_counter = r_absorb_write_counter + 16'b0000000000000001;
|
|
if(r_absorb_write_counter == 16'b1111111111111111)
|
|
begin
|
|
c_state = CALC_ST;
|
|
end
|
|
else
|
|
begin
|
|
c_state = r_state;
|
|
|
|
end
|
|
end
|
|
CALC_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
//c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
//c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
|
|
if(done == 1'b0)
|
|
begin
|
|
c_calc_in_progress = 1'b1;
|
|
c_toggle = 1'b0;
|
|
c_counter = r_counter;
|
|
c_state = r_state;
|
|
|
|
end
|
|
else
|
|
begin
|
|
c_toggle = 1'b0;
|
|
c_calc_in_progress = 1'b0;
|
|
c_state = DONE6_ST;
|
|
c_counter = 13'b0000000000000;
|
|
end
|
|
end
|
|
// DEBUG STATES BEGIN
|
|
|
|
DONE1_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
//c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
c_result = r_const__103;
|
|
//original -c_result = {32'b0,r_const[r_counter]};
|
|
if(inc_result)
|
|
begin
|
|
if(r_counter >= 13'b0000010001100) //104
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = DONE2_ST;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter + 13'b0000000000001;
|
|
c_state = DONE1_ST;
|
|
end
|
|
end
|
|
|
|
else
|
|
begin
|
|
if(r_counter >= 13'b0000010001100) //104
|
|
begin
|
|
c_counter = 13'b0;
|
|
c_state = DONE2_ST;
|
|
end
|
|
else
|
|
begin
|
|
c_state = DONE1_ST;
|
|
c_counter = r_counter;
|
|
end
|
|
end
|
|
end
|
|
DONE2_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
//c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
//mem_layer = r_counter[12:10];
|
|
|
|
|
|
mem_layer = r_counter[9:7];
|
|
//c_result = {32'b00000000000000000000000000000000,mem_fres_up};
|
|
c_result = 32'b0;
|
|
if(inc_result)
|
|
begin
|
|
c_counter = r_counter + 13'b0000000000001;
|
|
c_state = DONE1_ST;
|
|
end
|
|
else
|
|
begin
|
|
if(r_counter >= 13'b0000010001100) //104
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = DONE2_ST;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
c_state = r_state;
|
|
end
|
|
end
|
|
end
|
|
DONE3_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
//c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
//mem_layer = r_counter[12:10];
|
|
|
|
|
|
|
|
|
|
mem_layer = r_counter[9:7];
|
|
//c_result = {32'b00000000000000000000000000000000,mem_fres_down};
|
|
c_result = 32'b0;
|
|
|
|
if(inc_result)
|
|
begin
|
|
// stub, write constants back to see if read in properly
|
|
c_counter = r_counter + 13'b0000000000001;
|
|
c_state = DONE3_ST;
|
|
end
|
|
|
|
else
|
|
begin
|
|
if(r_counter >= 13'b0001010000000) //5*128 = 640
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = DONE4_ST;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
c_state = DONE3_ST;
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
end
|
|
DONE4_ST:
|
|
begin
|
|
|
|
|
|
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
//c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
|
|
c_result = mem_cost;
|
|
|
|
if(inc_result)
|
|
begin
|
|
// stub, write constants back to see if read in properly
|
|
c_counter = r_counter + 13'b0000000000001;
|
|
c_state = DONE4_ST;
|
|
end
|
|
else
|
|
begin
|
|
if(r_counter >= 13'b1010000000000) //5*1024 = 5120
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = DONE5_ST;
|
|
end
|
|
|
|
else
|
|
begin
|
|
c_state = DONE4_ST;
|
|
c_counter = r_counter;
|
|
end
|
|
end
|
|
end
|
|
DONE5_ST:
|
|
begin
|
|
|
|
c_const__103 = r_const__103;
|
|
//c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
//c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
c_result = mem_sint;
|
|
|
|
if(r_counter >= 13'b1010000000000) //5*1024 = 5120
|
|
begin
|
|
c_counter = 13'b0000000000000;
|
|
c_state = DONE6_ST;
|
|
end
|
|
else
|
|
begin
|
|
c_state = DONE5_ST;
|
|
if(inc_result)
|
|
begin
|
|
// stub, write constants back to see if read in properly
|
|
c_counter = r_counter + 13'b00000000000001;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter;
|
|
end
|
|
end
|
|
end
|
|
|
|
// DEBUG STATES END*/
|
|
DONE6_ST:
|
|
begin
|
|
c_const__103 = r_const__103;
|
|
c_counter = r_counter;
|
|
//c_absorb_read_counter = r_absorb_read_counter;
|
|
//c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
//c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
//c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
|
|
|
|
c_state = DONE6_ST;
|
|
|
|
|
|
if(r_toggle == 1'b0)
|
|
begin
|
|
c_result = absorb_q[63:32];
|
|
// c_state = r_state;
|
|
end
|
|
else
|
|
begin
|
|
c_result = absorb_q[31:0];
|
|
// c_state = r_state;
|
|
end
|
|
|
|
if(inc_result)
|
|
begin
|
|
if(r_toggle == 1'b0)
|
|
begin
|
|
c_toggle = 1'b1;
|
|
c_absorb_read_counter = r_absorb_read_counter ;
|
|
end
|
|
else
|
|
begin
|
|
c_toggle = 1'b0;
|
|
c_absorb_read_counter = r_absorb_read_counter + 16'b01;
|
|
end
|
|
end
|
|
else
|
|
begin
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_toggle= r_toggle;
|
|
|
|
end
|
|
// c_state = DONE6_ST;
|
|
end
|
|
|
|
default:
|
|
begin
|
|
c_state = ERROR_ST;
|
|
c_const__103 = r_const__103;
|
|
c_counter = r_counter;
|
|
c_absorb_read_counter = r_absorb_read_counter;
|
|
c_result = result;
|
|
c_calc_in_progress = 1'b0;
|
|
// c_state = r_state;
|
|
wren_fres_up = 1'b0;
|
|
wren_fres_down = 1'b0;
|
|
wren_sint = 1'b0;
|
|
wren_cost = 1'b0;
|
|
c_absorb_write_counter = r_absorb_write_counter;
|
|
c_toggle = r_toggle;
|
|
|
|
mem_layer = r_counter[12:10];
|
|
end
|
|
endcase
|
|
end // FSM always
|
|
|
|
|
|
|
|
// Latch Data
|
|
always @(posedge clk)
|
|
begin
|
|
if(reset)
|
|
begin
|
|
r_counter <= 13'b0000000000000000000000000;
|
|
r_const__103 <= 32'b00000000000000000000000000000000;
|
|
r_const__102 <= 32'b00000000000000000000000000000000;
|
|
r_const__101 <= 32'b00000000000000000000000000000000;
|
|
r_const__100 <= 32'b00000000000000000000000000000000;
|
|
r_const__99 <= 32'b00000000000000000000000000000000;
|
|
r_const__98 <= 32'b00000000000000000000000000000000;
|
|
r_const__97 <= 32'b00000000000000000000000000000000;
|
|
r_const__96 <= 32'b00000000000000000000000000000000;
|
|
r_const__95 <= 32'b00000000000000000000000000000000;
|
|
r_const__94 <= 32'b00000000000000000000000000000000;
|
|
r_const__93 <= 32'b00000000000000000000000000000000;
|
|
r_const__92 <= 32'b00000000000000000000000000000000;
|
|
r_const__91 <= 32'b00000000000000000000000000000000;
|
|
r_const__90 <= 32'b00000000000000000000000000000000;
|
|
r_const__89 <= 32'b00000000000000000000000000000000;
|
|
r_const__88 <= 32'b00000000000000000000000000000000;
|
|
r_const__87 <= 32'b00000000000000000000000000000000;
|
|
r_const__86 <= 32'b00000000000000000000000000000000;
|
|
r_const__85 <= 32'b00000000000000000000000000000000;
|
|
r_const__84 <= 32'b00000000000000000000000000000000;
|
|
r_const__83 <= 32'b00000000000000000000000000000000;
|
|
r_const__82 <= 32'b00000000000000000000000000000000;
|
|
r_const__81 <= 32'b00000000000000000000000000000000;
|
|
r_const__80 <= 32'b00000000000000000000000000000000;
|
|
r_const__79 <= 32'b00000000000000000000000000000000;
|
|
r_const__78 <= 32'b00000000000000000000000000000000;
|
|
r_const__77 <= 32'b00000000000000000000000000000000;
|
|
r_const__76 <= 32'b00000000000000000000000000000000;
|
|
r_const__75 <= 32'b00000000000000000000000000000000;
|
|
r_const__74 <= 32'b00000000000000000000000000000000;
|
|
r_const__73 <= 32'b00000000000000000000000000000000;
|
|
r_const__72 <= 32'b00000000000000000000000000000000;
|
|
r_const__71 <= 32'b00000000000000000000000000000000;
|
|
r_const__70 <= 32'b00000000000000000000000000000000;
|
|
r_const__69 <= 32'b00000000000000000000000000000000;
|
|
r_const__68 <= 32'b00000000000000000000000000000000;
|
|
r_const__67 <= 32'b00000000000000000000000000000000;
|
|
r_const__66 <= 32'b00000000000000000000000000000000;
|
|
r_const__65 <= 32'b00000000000000000000000000000000;
|
|
r_const__64 <= 32'b00000000000000000000000000000000;
|
|
r_const__63 <= 32'b00000000000000000000000000000000;
|
|
r_const__62 <= 32'b00000000000000000000000000000000;
|
|
r_const__61 <= 32'b00000000000000000000000000000000;
|
|
r_const__60 <= 32'b00000000000000000000000000000000;
|
|
r_const__59 <= 32'b00000000000000000000000000000000;
|
|
r_const__58 <= 32'b00000000000000000000000000000000;
|
|
r_const__57 <= 32'b00000000000000000000000000000000;
|
|
r_const__56 <= 32'b00000000000000000000000000000000;
|
|
r_const__55 <= 32'b00000000000000000000000000000000;
|
|
r_const__54 <= 32'b00000000000000000000000000000000;
|
|
r_const__53 <= 32'b00000000000000000000000000000000;
|
|
r_const__52 <= 32'b00000000000000000000000000000000;
|
|
r_const__51 <= 32'b00000000000000000000000000000000;
|
|
r_const__50 <= 32'b00000000000000000000000000000000;
|
|
r_const__49 <= 32'b00000000000000000000000000000000;
|
|
r_const__48 <= 32'b00000000000000000000000000000000;
|
|
r_const__47 <= 32'b00000000000000000000000000000000;
|
|
r_const__46 <= 32'b00000000000000000000000000000000;
|
|
r_const__45 <= 32'b00000000000000000000000000000000;
|
|
r_const__44 <= 32'b00000000000000000000000000000000;
|
|
r_const__43 <= 32'b00000000000000000000000000000000;
|
|
r_const__42 <= 32'b00000000000000000000000000000000;
|
|
r_const__41 <= 32'b00000000000000000000000000000000;
|
|
r_const__40 <= 32'b00000000000000000000000000000000;
|
|
r_const__39 <= 32'b00000000000000000000000000000000;
|
|
r_const__38 <= 32'b00000000000000000000000000000000;
|
|
r_const__37 <= 32'b00000000000000000000000000000000;
|
|
r_const__36 <= 32'b00000000000000000000000000000000;
|
|
r_const__35 <= 32'b00000000000000000000000000000000;
|
|
r_const__34 <= 32'b00000000000000000000000000000000;
|
|
r_const__33 <= 32'b00000000000000000000000000000000;
|
|
r_const__32 <= 32'b00000000000000000000000000000000;
|
|
r_const__31 <= 32'b00000000000000000000000000000000;
|
|
r_const__30 <= 32'b00000000000000000000000000000000;
|
|
r_const__29 <= 32'b00000000000000000000000000000000;
|
|
r_const__28 <= 32'b00000000000000000000000000000000;
|
|
r_const__27 <= 32'b00000000000000000000000000000000;
|
|
r_const__26 <= 32'b00000000000000000000000000000000;
|
|
r_const__25 <= 32'b00000000000000000000000000000000;
|
|
r_const__24 <= 32'b00000000000000000000000000000000;
|
|
r_const__23 <= 32'b00000000000000000000000000000000;
|
|
r_const__22 <= 32'b00000000000000000000000000000000;
|
|
r_const__21 <= 32'b00000000000000000000000000000000;
|
|
r_const__20 <= 32'b00000000000000000000000000000000;
|
|
r_const__19 <= 32'b00000000000000000000000000000000;
|
|
r_const__18 <= 32'b00000000000000000000000000000000;
|
|
r_const__17 <= 32'b00000000000000000000000000000000;
|
|
r_const__16 <= 32'b00000000000000000000000000000000;
|
|
r_const__15 <= 32'b00000000000000000000000000000000;
|
|
r_const__14 <= 32'b00000000000000000000000000000000;
|
|
r_const__13 <= 32'b00000000000000000000000000000000;
|
|
r_const__12 <= 32'b00000000000000000000000000000000;
|
|
r_const__11 <= 32'b00000000000000000000000000000000;
|
|
r_const__10 <= 32'b00000000000000000000000000000000;
|
|
r_const__9 <= 32'b00000000000000000000000000000000;
|
|
r_const__8 <= 32'b00000000000000000000000000000000;
|
|
r_const__7 <= 32'b00000000000000000000000000000000;
|
|
r_const__6 <= 32'b00000000000000000000000000000000;
|
|
r_const__5 <= 32'b00000000000000000000000000000000;
|
|
r_const__4 <= 32'b00000000000000000000000000000000;
|
|
r_const__3 <= 32'b00000000000000000000000000000000;
|
|
r_const__2 <= 32'b00000000000000000000000000000000;
|
|
r_const__1 <= 32'b00000000000000000000000000000000;
|
|
r_const__0 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_state <= READ1_ST;
|
|
result <= 32'b00000000000000000000000000000000;
|
|
calc_in_progress <= 1'b0;
|
|
r_absorb_read_counter <= 16'b0000000000000000;
|
|
enable <= 1'b0;
|
|
r_absorb_write_counter <= 16'b0000000000000000;
|
|
reset_calculator <= 1'b1;
|
|
r_toggle <= 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
r_counter <= c_counter;
|
|
if (c_state == READ1_ST)
|
|
|
|
//for(i = 0; i < 104; i = i + 1) begin
|
|
// r_const[i] <= c_const[i];
|
|
//end
|
|
begin
|
|
|
|
//shift register implementation for read-in constant state
|
|
|
|
//first one is from counter
|
|
r_const__103 <= c_const__103;
|
|
// all others shift
|
|
r_const__102 <= r_const__103;
|
|
r_const__101 <= r_const__102;
|
|
r_const__100 <= r_const__101;
|
|
r_const__99 <= r_const__100;
|
|
r_const__98 <= r_const__99;
|
|
r_const__97 <= r_const__98;
|
|
r_const__96 <= r_const__97;
|
|
r_const__95 <= r_const__96;
|
|
r_const__94 <= r_const__95;
|
|
r_const__93 <= r_const__94;
|
|
r_const__92 <= r_const__93;
|
|
r_const__91 <= r_const__92;
|
|
r_const__90 <= r_const__91;
|
|
r_const__89 <= r_const__90;
|
|
r_const__88 <= r_const__89;
|
|
r_const__87 <= r_const__88;
|
|
r_const__86 <= r_const__87;
|
|
r_const__85 <= r_const__86;
|
|
r_const__84 <= r_const__85;
|
|
r_const__83 <= r_const__84;
|
|
r_const__82 <= r_const__83;
|
|
r_const__81 <= r_const__82;
|
|
r_const__80 <= r_const__81;
|
|
r_const__79 <= r_const__80;
|
|
r_const__78 <= r_const__79;
|
|
r_const__77 <= r_const__78;
|
|
r_const__76 <= r_const__77;
|
|
r_const__75 <= r_const__76;
|
|
r_const__74 <= r_const__75;
|
|
r_const__73 <= r_const__74;
|
|
r_const__72 <= r_const__73;
|
|
r_const__71 <= r_const__72;
|
|
r_const__70 <= r_const__71;
|
|
r_const__69 <= r_const__70;
|
|
r_const__68 <= r_const__69;
|
|
r_const__67 <= r_const__68;
|
|
r_const__66 <= r_const__67;
|
|
r_const__65 <= r_const__66;
|
|
r_const__64 <= r_const__65;
|
|
r_const__63 <= r_const__64;
|
|
r_const__62 <= r_const__63;
|
|
r_const__61 <= r_const__62;
|
|
r_const__60 <= r_const__61;
|
|
r_const__59 <= r_const__60;
|
|
r_const__58 <= r_const__59;
|
|
r_const__57 <= r_const__58;
|
|
r_const__56 <= r_const__57;
|
|
r_const__55 <= r_const__56;
|
|
r_const__54 <= r_const__55;
|
|
r_const__53 <= r_const__54;
|
|
r_const__52 <= r_const__53;
|
|
r_const__51 <= r_const__52;
|
|
r_const__50 <= r_const__51;
|
|
r_const__49 <= r_const__50;
|
|
r_const__48 <= r_const__49;
|
|
r_const__47 <= r_const__48;
|
|
r_const__46 <= r_const__47;
|
|
r_const__45 <= r_const__46;
|
|
r_const__44 <= r_const__45;
|
|
r_const__43 <= r_const__44;
|
|
r_const__42 <= r_const__43;
|
|
r_const__41 <= r_const__42;
|
|
r_const__40 <= r_const__41;
|
|
r_const__39 <= r_const__40;
|
|
r_const__38 <= r_const__39;
|
|
r_const__37 <= r_const__38;
|
|
r_const__36 <= r_const__37;
|
|
r_const__35 <= r_const__36;
|
|
r_const__34 <= r_const__35;
|
|
r_const__33 <= r_const__34;
|
|
r_const__32 <= r_const__33;
|
|
r_const__31 <= r_const__32;
|
|
r_const__30 <= r_const__31;
|
|
r_const__29 <= r_const__30;
|
|
r_const__28 <= r_const__29;
|
|
r_const__27 <= r_const__28;
|
|
r_const__26 <= r_const__27;
|
|
r_const__25 <= r_const__26;
|
|
r_const__24 <= r_const__25;
|
|
r_const__23 <= r_const__24;
|
|
r_const__22 <= r_const__23;
|
|
r_const__21 <= r_const__22;
|
|
r_const__20 <= r_const__21;
|
|
r_const__19 <= r_const__20;
|
|
r_const__18 <= r_const__19;
|
|
r_const__17 <= r_const__18;
|
|
r_const__16 <= r_const__17;
|
|
r_const__15 <= r_const__16;
|
|
r_const__14 <= r_const__15;
|
|
r_const__13 <= r_const__14;
|
|
r_const__12 <= r_const__13;
|
|
r_const__11 <= r_const__12;
|
|
r_const__10 <= r_const__11;
|
|
r_const__9 <= r_const__10;
|
|
r_const__8 <= r_const__9;
|
|
r_const__7 <= r_const__8;
|
|
r_const__6 <= r_const__7;
|
|
r_const__5 <= r_const__6;
|
|
r_const__4 <= r_const__5;
|
|
r_const__3 <= r_const__4;
|
|
r_const__2 <= r_const__3;
|
|
r_const__1 <= r_const__2;
|
|
r_const__0 <= r_const__1;
|
|
end
|
|
else
|
|
begin
|
|
//original code
|
|
r_const__103 <= c_const__103;
|
|
r_const__102 <= c_const__102;
|
|
r_const__101 <= c_const__101;
|
|
r_const__100 <= c_const__100;
|
|
r_const__99 <= c_const__99;
|
|
r_const__98 <= c_const__98;
|
|
r_const__97 <= c_const__97;
|
|
r_const__96 <= c_const__96;
|
|
r_const__95 <= c_const__95;
|
|
r_const__94 <= c_const__94;
|
|
r_const__93 <= c_const__93;
|
|
r_const__92 <= c_const__92;
|
|
r_const__91 <= c_const__91;
|
|
r_const__90 <= c_const__90;
|
|
r_const__89 <= c_const__89;
|
|
r_const__88 <= c_const__88;
|
|
r_const__87 <= c_const__87;
|
|
r_const__86 <= c_const__86;
|
|
r_const__85 <= c_const__85;
|
|
r_const__84 <= c_const__84;
|
|
r_const__83 <= c_const__83;
|
|
r_const__82 <= c_const__82;
|
|
r_const__81 <= c_const__81;
|
|
r_const__80 <= c_const__80;
|
|
r_const__79 <= c_const__79;
|
|
r_const__78 <= c_const__78;
|
|
r_const__77 <= c_const__77;
|
|
r_const__76 <= c_const__76;
|
|
r_const__75 <= c_const__75;
|
|
r_const__74 <= c_const__74;
|
|
r_const__73 <= c_const__73;
|
|
r_const__72 <= c_const__72;
|
|
r_const__71 <= c_const__71;
|
|
r_const__70 <= c_const__70;
|
|
r_const__69 <= c_const__69;
|
|
r_const__68 <= c_const__68;
|
|
r_const__67 <= c_const__67;
|
|
r_const__66 <= c_const__66;
|
|
r_const__65 <= c_const__65;
|
|
r_const__64 <= c_const__64;
|
|
r_const__63 <= c_const__63;
|
|
r_const__62 <= c_const__62;
|
|
r_const__61 <= c_const__61;
|
|
r_const__60 <= c_const__60;
|
|
r_const__59 <= c_const__59;
|
|
r_const__58 <= c_const__58;
|
|
r_const__57 <= c_const__57;
|
|
r_const__56 <= c_const__56;
|
|
r_const__55 <= c_const__55;
|
|
r_const__54 <= c_const__54;
|
|
r_const__53 <= c_const__53;
|
|
r_const__52 <= c_const__52;
|
|
r_const__51 <= c_const__51;
|
|
r_const__50 <= c_const__50;
|
|
r_const__49 <= c_const__49;
|
|
r_const__48 <= c_const__48;
|
|
r_const__47 <= c_const__47;
|
|
r_const__46 <= c_const__46;
|
|
r_const__45 <= c_const__45;
|
|
r_const__44 <= c_const__44;
|
|
r_const__43 <= c_const__43;
|
|
r_const__42 <= c_const__42;
|
|
r_const__41 <= c_const__41;
|
|
r_const__40 <= c_const__40;
|
|
r_const__39 <= c_const__39;
|
|
r_const__38 <= c_const__38;
|
|
r_const__37 <= c_const__37;
|
|
r_const__36 <= c_const__36;
|
|
r_const__35 <= c_const__35;
|
|
r_const__34 <= c_const__34;
|
|
r_const__33 <= c_const__33;
|
|
r_const__32 <= c_const__32;
|
|
r_const__31 <= c_const__31;
|
|
r_const__30 <= c_const__30;
|
|
r_const__29 <= c_const__29;
|
|
r_const__28 <= c_const__28;
|
|
r_const__27 <= c_const__27;
|
|
r_const__26 <= c_const__26;
|
|
r_const__25 <= c_const__25;
|
|
r_const__24 <= c_const__24;
|
|
r_const__23 <= c_const__23;
|
|
r_const__22 <= c_const__22;
|
|
r_const__21 <= c_const__21;
|
|
r_const__20 <= c_const__20;
|
|
r_const__19 <= c_const__19;
|
|
r_const__18 <= c_const__18;
|
|
r_const__17 <= c_const__17;
|
|
r_const__16 <= c_const__16;
|
|
r_const__15 <= c_const__15;
|
|
r_const__14 <= c_const__14;
|
|
r_const__13 <= c_const__13;
|
|
r_const__12 <= c_const__12;
|
|
r_const__11 <= c_const__11;
|
|
r_const__10 <= c_const__10;
|
|
r_const__9 <= c_const__9;
|
|
r_const__8 <= c_const__8;
|
|
r_const__7 <= c_const__7;
|
|
r_const__6 <= c_const__6;
|
|
r_const__5 <= c_const__5;
|
|
r_const__4 <= c_const__4;
|
|
r_const__3 <= c_const__3;
|
|
r_const__2 <= c_const__2;
|
|
r_const__1 <= c_const__1;
|
|
r_const__0 <= c_const__0;
|
|
end
|
|
|
|
|
|
|
|
|
|
r_state <= c_state;
|
|
result <= c_result;
|
|
calc_in_progress <= c_calc_in_progress;
|
|
r_absorb_read_counter <= c_absorb_read_counter;
|
|
r_absorb_write_counter <= c_absorb_write_counter;
|
|
r_toggle <= c_toggle;
|
|
//if(c_state == CALC_ST)
|
|
//begin
|
|
enable <= 1'b1;
|
|
//end
|
|
//else
|
|
//begin
|
|
// enable = 1'b0;
|
|
//end
|
|
if(c_state == RESET_MEM_ST)
|
|
begin
|
|
reset_calculator <= 1'b1;
|
|
end
|
|
else
|
|
begin
|
|
reset_calculator <= 1'b0;
|
|
end
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module dual_port_mem_zz (clk, data, rdaddress, wraddress , wren, q);
|
|
|
|
// 32bit wide
|
|
// 13bit address
|
|
|
|
input clk;
|
|
input[31:0] data;
|
|
input [12:0] rdaddress;
|
|
input [12:0] wraddress;
|
|
input wren;
|
|
output [31:0] q;
|
|
|
|
|
|
wire const_zero;
|
|
wire [31:0] const_zero_data;
|
|
wire [31:0] dont_care_out;
|
|
|
|
assign const_zero = 1'b0;
|
|
assign const_zero_data = 32'b00000000000000000000000000000000;
|
|
//Comment out for don't care outputs
|
|
//assign dont_care_out = 32'b00000000000000000000000000000000;
|
|
|
|
dual_port_ram_8192x32 dpram1(
|
|
.clk (clk),
|
|
.we1(wren),
|
|
.we2(const_zero),
|
|
.data1(data),
|
|
.data2(const_zero_data),
|
|
.out1(dont_care_out),
|
|
.out2 (q),
|
|
.addr1(wraddress),
|
|
.addr2(rdaddress));
|
|
|
|
|
|
endmodule
|
|
|
|
module dual_port_mem_yy (clk, data, rdaddress, wraddress , wren, q);
|
|
|
|
// 32bit wide
|
|
// 13bit address
|
|
|
|
input clk;
|
|
input[31:0] data;
|
|
input [12:0] rdaddress;
|
|
input [12:0] wraddress;
|
|
input wren;
|
|
output [31:0] q;
|
|
|
|
|
|
wire const_zero;
|
|
wire [31:0] const_zero_data;
|
|
wire [31:0] dont_care_out;
|
|
|
|
assign const_zero = 1'b0;
|
|
assign const_zero_data = 32'b00000000000000000000000000000000;
|
|
//Comment out for don't care outputs
|
|
//assign dont_care_out = 32'b00000000000000000000000000000000;
|
|
|
|
dual_port_ram_8192x32 dpram1(
|
|
.clk (clk),
|
|
.we1(wren),
|
|
.we2(const_zero),
|
|
.data1(data),
|
|
.data2(const_zero_data),
|
|
.out1(dont_care_out),
|
|
.out2 (q),
|
|
.addr1(wraddress),
|
|
.addr2(rdaddress));
|
|
|
|
|
|
endmodule
|
|
|
|
module dual_port_mem_xx (clk, data, rdaddress, wraddress , wren, q);
|
|
|
|
// 32bit wide
|
|
// 13bit address
|
|
|
|
input clk;
|
|
input[31:0] data;
|
|
input [12:0] rdaddress;
|
|
input [12:0] wraddress;
|
|
input wren;
|
|
output [31:0] q;
|
|
|
|
|
|
wire const_zero;
|
|
wire [31:0] const_zero_data;
|
|
wire [31:0] dont_care_out;
|
|
|
|
assign const_zero = 1'b0;
|
|
assign const_zero_data = 32'b00000000000000000000000000000000;
|
|
//Comment out for don't care outputs
|
|
//assign dont_care_out = 32'b00000000000000000000000000000000;
|
|
|
|
dual_port_ram_8192x32 dpram1(
|
|
.clk (clk),
|
|
.we1(wren),
|
|
.we2(const_zero),
|
|
.data1(data),
|
|
.data2(const_zero_data),
|
|
.out1(dont_care_out),
|
|
.out2 (q),
|
|
.addr1(wraddress),
|
|
.addr2(rdaddress));
|
|
|
|
|
|
endmodule
|
|
|
|
module dual_port_mem_ww (clk, data, rdaddress, wraddress , wren, q);
|
|
|
|
// 32bit wide
|
|
// 13bit address
|
|
|
|
input clk;
|
|
input[31:0] data;
|
|
input [12:0] rdaddress;
|
|
input [12:0] wraddress;
|
|
input wren;
|
|
output [31:0] q;
|
|
|
|
|
|
wire const_zero;
|
|
wire [31:0] const_zero_data;
|
|
wire [31:0] dont_care_out;
|
|
|
|
assign const_zero = 1'b0;
|
|
assign const_zero_data = 32'b00000000000000000000000000000000;
|
|
//Comment out for don't care outputs
|
|
//assign dont_care_out = 32'b00000000000000000000000000000000;
|
|
|
|
dual_port_ram_8192x32 dpram1(
|
|
.clk (clk),
|
|
.we1(wren),
|
|
.we2(const_zero),
|
|
.data1(data),
|
|
.data2(const_zero_data),
|
|
.out1(dont_care_out),
|
|
.out2 (q),
|
|
.addr1(wraddress),
|
|
.addr2(rdaddress));
|
|
|
|
|
|
endmodule
|
|
module dual (clk, data, rdaddress, wraddress , wren, q);
|
|
|
|
// 36bit wide
|
|
// 16bit address
|
|
|
|
input clk;
|
|
input[35:0] data;
|
|
input [15:0] rdaddress;
|
|
input [15:0] wraddress;
|
|
input wren;
|
|
output [35:0] q;
|
|
|
|
|
|
wire const_zero;
|
|
wire [35:0] const_zero_data;
|
|
wire [35:0] dont_care_out;
|
|
|
|
assign const_zero = 1'b0;
|
|
assign const_zero_data = 36'b000000000000000000000000000000000000;
|
|
//Comment out for don't care outputs
|
|
//assign dont_care_out = 36'b000000000000000000000000000000000000;
|
|
|
|
dual_port_ram_65536x36 dpram1(
|
|
.clk (clk),
|
|
.we1(wren),
|
|
.we2(const_zero),
|
|
.data1(data),
|
|
.data2(const_zero_data),
|
|
.out1(dont_care_out),
|
|
.out2 (q),
|
|
.addr1(wraddress),
|
|
.addr2(rdaddress));
|
|
|
|
|
|
endmodule
|
|
module dual2 (clk, data, rdaddress, wraddress , wren, q);
|
|
|
|
// 18bit wide
|
|
// 16bit address
|
|
|
|
input clk;
|
|
input[17:0] data;
|
|
input [15:0] rdaddress;
|
|
input [15:0] wraddress;
|
|
input wren;
|
|
output [17:0] q;
|
|
|
|
|
|
wire const_zero;
|
|
wire [17:0] const_zero_data;
|
|
wire [17:0] dont_care_out;
|
|
|
|
assign const_zero = 1'b0;
|
|
assign const_zero_data = 18'b000000000000000000;
|
|
//Comment out for don't care outputs
|
|
//assign dont_care_out = 18'b000000000000000000;
|
|
|
|
dual_port_ram_65536x18 dpram1(
|
|
.clk (clk),
|
|
.we1(wren),
|
|
.we2(const_zero),
|
|
.data1(data),
|
|
.data2(const_zero_data),
|
|
.out1(dont_care_out),
|
|
.out2 (q),
|
|
.addr1(wraddress),
|
|
.addr2(rdaddress));
|
|
|
|
|
|
endmodule
|
|
module dual3 (clk, data, rdaddress, wraddress , wren, q);
|
|
|
|
// 8bit wide
|
|
// 16bit address
|
|
|
|
input clk;
|
|
input[7:0] data;
|
|
input [15:0] rdaddress;
|
|
input [15:0] wraddress;
|
|
input wren;
|
|
output [7:0] q;
|
|
|
|
|
|
wire const_zero;
|
|
wire [7:0] const_zero_data;
|
|
wire [7:0] dont_care_out;
|
|
|
|
assign const_zero = 1'b0;
|
|
assign const_zero_data = 8'b00000000;
|
|
//Comment out for don't care outputs
|
|
//assign dont_care_out = 8'b00000000;
|
|
|
|
dual_port_ram_65536x8 dpram1(
|
|
.clk (clk),
|
|
.we1(wren),
|
|
.we2(const_zero),
|
|
.data1(data),
|
|
.data2(const_zero_data),
|
|
.out1(dont_care_out),
|
|
.out2 (q),
|
|
.addr1(wraddress),
|
|
.addr2(rdaddress));
|
|
|
|
|
|
endmodule
|
|
|
|
|
|
|
|
// Photon Calculator
|
|
// Note: Use the same random number for fresnel (reflect) as for scatterer because they are mutually exclusive blocks
|
|
// Also scatterer needs two
|
|
|
|
|
|
module PhotonCalculator (
|
|
clock, reset, enable,
|
|
|
|
// CONSTANTS
|
|
total_photons,
|
|
|
|
randseed1, randseed2, randseed3, randseed4, randseed5,
|
|
|
|
initialWeight,
|
|
|
|
// Mover
|
|
OneOver_MutMaxrad_0, OneOver_MutMaxrad_1, OneOver_MutMaxrad_2, OneOver_MutMaxrad_3, OneOver_MutMaxrad_4, OneOver_MutMaxrad_5,
|
|
OneOver_MutMaxdep_0, OneOver_MutMaxdep_1, OneOver_MutMaxdep_2, OneOver_MutMaxdep_3, OneOver_MutMaxdep_4, OneOver_MutMaxdep_5,
|
|
OneOver_Mut_0, OneOver_Mut_1, OneOver_Mut_2, OneOver_Mut_3, OneOver_Mut_4, OneOver_Mut_5,
|
|
|
|
// BoundaryChecker
|
|
z1_0, z1_1, z1_2, z1_3, z1_4, z1_5,
|
|
z0_0, z0_1, z0_2, z0_3, z0_4, z0_5,
|
|
mut_0, mut_1, mut_2, mut_3, mut_4, mut_5,
|
|
maxDepth_over_maxRadius,
|
|
|
|
// Hop (no constants)
|
|
|
|
// Scatterer Reflector Wrapper
|
|
down_niOverNt_1, down_niOverNt_2, down_niOverNt_3, down_niOverNt_4, down_niOverNt_5,
|
|
up_niOverNt_1, up_niOverNt_2, up_niOverNt_3, up_niOverNt_4, up_niOverNt_5,
|
|
down_niOverNt_2_1, down_niOverNt_2_2, down_niOverNt_2_3, down_niOverNt_2_4, down_niOverNt_2_5,
|
|
up_niOverNt_2_1, up_niOverNt_2_2, up_niOverNt_2_3, up_niOverNt_2_4, up_niOverNt_2_5,
|
|
downCritAngle_0, downCritAngle_1, downCritAngle_2, downCritAngle_3, downCritAngle_4,
|
|
upCritAngle_0, upCritAngle_1, upCritAngle_2, upCritAngle_3, upCritAngle_4,
|
|
muaFraction1, muaFraction2, muaFraction3, muaFraction4, muaFraction5,
|
|
// Interface to memory look-up
|
|
// From Memories
|
|
up_rFresnel, down_rFresnel, sint, cost,
|
|
// To Memories
|
|
tindex, fresIndex,
|
|
|
|
// Roulette (no Constants)
|
|
|
|
// Absorber
|
|
absorb_data, absorb_rdaddress, absorb_wraddress,
|
|
absorb_wren, absorb_q,
|
|
|
|
// Done signal
|
|
done
|
|
);
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter LAYER_WIDTH=3;
|
|
//parameter TRIG_WIDTH=10;
|
|
//parameter PIPELINE_DEPTH_UPPER_LIMIT = 256;
|
|
//parameter ABSORB_ADDR_WIDTH=16;
|
|
//parameter ABSORB_WORD_WIDTH=64;
|
|
//parameter WSCALE=1919999;
|
|
|
|
|
|
input clock, reset, enable;
|
|
|
|
// CONSTANTS
|
|
input [`BIT_WIDTH-1:0] total_photons;
|
|
|
|
input [`BIT_WIDTH-1:0] randseed1;
|
|
input [`BIT_WIDTH-1:0] randseed2;
|
|
input [`BIT_WIDTH-1:0] randseed3;
|
|
input [`BIT_WIDTH-1:0] randseed4;
|
|
input [`BIT_WIDTH-1:0] randseed5;
|
|
|
|
input [`BIT_WIDTH-1:0] initialWeight;
|
|
|
|
// Mover
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxrad_0, OneOver_MutMaxrad_1, OneOver_MutMaxrad_2, OneOver_MutMaxrad_3, OneOver_MutMaxrad_4, OneOver_MutMaxrad_5;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxdep_0, OneOver_MutMaxdep_1, OneOver_MutMaxdep_2, OneOver_MutMaxdep_3, OneOver_MutMaxdep_4, OneOver_MutMaxdep_5;
|
|
input [`BIT_WIDTH-1:0] OneOver_Mut_0, OneOver_Mut_1, OneOver_Mut_2, OneOver_Mut_3, OneOver_Mut_4, OneOver_Mut_5;
|
|
|
|
// BoundaryChecker
|
|
input [`BIT_WIDTH-1:0] z1_0, z1_1, z1_2, z1_3, z1_4, z1_5;
|
|
input [`BIT_WIDTH-1:0] z0_0, z0_1, z0_2, z0_3, z0_4, z0_5;
|
|
input [`BIT_WIDTH-1:0] mut_0, mut_1, mut_2, mut_3, mut_4, mut_5;
|
|
input [`BIT_WIDTH-1:0] maxDepth_over_maxRadius;
|
|
|
|
// Hop (no constants)
|
|
|
|
// Scatterer Reflector Absorber Wrapper
|
|
input [`BIT_WIDTH-1:0] down_niOverNt_1, down_niOverNt_2, down_niOverNt_3, down_niOverNt_4, down_niOverNt_5;
|
|
input [`BIT_WIDTH-1:0] up_niOverNt_1, up_niOverNt_2, up_niOverNt_3, up_niOverNt_4, up_niOverNt_5;
|
|
input [2*`BIT_WIDTH-1:0] down_niOverNt_2_1, down_niOverNt_2_2, down_niOverNt_2_3, down_niOverNt_2_4, down_niOverNt_2_5;
|
|
input [2*`BIT_WIDTH-1:0] up_niOverNt_2_1, up_niOverNt_2_2, up_niOverNt_2_3, up_niOverNt_2_4, up_niOverNt_2_5;
|
|
input [`BIT_WIDTH-1:0] downCritAngle_0, downCritAngle_1, downCritAngle_2, downCritAngle_3, downCritAngle_4;
|
|
input [`BIT_WIDTH-1:0] upCritAngle_0, upCritAngle_1, upCritAngle_2, upCritAngle_3, upCritAngle_4;
|
|
input [`BIT_WIDTH-1:0] muaFraction1, muaFraction2, muaFraction3, muaFraction4, muaFraction5;
|
|
|
|
// Memory look-up interface
|
|
input [`BIT_WIDTH-1:0] up_rFresnel;
|
|
input [`BIT_WIDTH-1:0] down_rFresnel;
|
|
input [`BIT_WIDTH-1:0] sint;
|
|
input [`BIT_WIDTH-1:0] cost;
|
|
//To Memories
|
|
output [12:0] tindex;
|
|
output [9:0] fresIndex;
|
|
|
|
// Roulette Module (nothing)
|
|
|
|
// Final results
|
|
output [`ABSORB_ADDR_WIDTH-1:0] absorb_rdaddress, absorb_wraddress;
|
|
output absorb_wren;
|
|
output [`ABSORB_WORD_WIDTH-1:0] absorb_data;
|
|
input [`ABSORB_WORD_WIDTH-1:0] absorb_q;
|
|
|
|
// Flag when final results ready
|
|
output done;
|
|
|
|
|
|
// Local variables
|
|
// Wired nets
|
|
/*mover inputs*/
|
|
reg [`BIT_WIDTH-1:0] x_moverMux;
|
|
reg [`BIT_WIDTH-1:0] y_moverMux;
|
|
reg [`BIT_WIDTH-1:0] z_moverMux;
|
|
reg [`BIT_WIDTH-1:0] ux_moverMux;
|
|
reg [`BIT_WIDTH-1:0] uy_moverMux;
|
|
reg [`BIT_WIDTH-1:0] uz_moverMux;
|
|
reg [`BIT_WIDTH-1:0] sz_moverMux;
|
|
reg [`BIT_WIDTH-1:0] sr_moverMux;
|
|
reg [`BIT_WIDTH-1:0] sleftz_moverMux;
|
|
reg [`BIT_WIDTH-1:0] sleftr_moverMux;
|
|
reg [`LAYER_WIDTH-1:0] layer_moverMux;
|
|
reg [`BIT_WIDTH-1:0] weight_moverMux;
|
|
reg dead_moverMux;
|
|
|
|
/*mover outputs*/
|
|
wire [`BIT_WIDTH-1:0] x_mover;
|
|
wire [`BIT_WIDTH-1:0] y_mover;
|
|
wire [`BIT_WIDTH-1:0] z_mover;
|
|
wire [`BIT_WIDTH-1:0] ux_mover;
|
|
wire [`BIT_WIDTH-1:0] uy_mover;
|
|
wire [`BIT_WIDTH-1:0] uz_mover;
|
|
wire [`BIT_WIDTH-1:0] sz_mover;
|
|
wire [`BIT_WIDTH-1:0] sr_mover;
|
|
wire [`BIT_WIDTH-1:0] sleftz_mover;
|
|
wire [`BIT_WIDTH-1:0] sleftr_mover;
|
|
wire [`LAYER_WIDTH-1:0] layer_mover;
|
|
wire [`BIT_WIDTH-1:0] weight_mover;
|
|
wire dead_mover;
|
|
|
|
/*boundary checker outputs*/
|
|
wire [`BIT_WIDTH-1:0] x_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] y_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] z_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] ux_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] uy_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] uz_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] sz_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] sr_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] sleftz_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] sleftr_boundaryChecker;
|
|
wire [`LAYER_WIDTH-1:0] layer_boundaryChecker;
|
|
wire [`BIT_WIDTH-1:0] weight_boundaryChecker;
|
|
wire dead_boundaryChecker;
|
|
wire hit_boundaryChecker;
|
|
|
|
/*hop outputs*/
|
|
wire [`BIT_WIDTH-1:0] x_hop;
|
|
wire [`BIT_WIDTH-1:0] y_hop;
|
|
wire [`BIT_WIDTH-1:0] z_hop;
|
|
wire [`BIT_WIDTH-1:0] ux_hop;
|
|
wire [`BIT_WIDTH-1:0] uy_hop;
|
|
wire [`BIT_WIDTH-1:0] uz_hop;
|
|
wire [`BIT_WIDTH-1:0] sz_hop;
|
|
wire [`BIT_WIDTH-1:0] sr_hop;
|
|
wire [`BIT_WIDTH-1:0] sleftz_hop;
|
|
wire [`BIT_WIDTH-1:0] sleftr_hop;
|
|
wire [`LAYER_WIDTH-1:0] layer_hop;
|
|
wire [`BIT_WIDTH-1:0] weight_hop;
|
|
wire dead_hop;
|
|
wire hit_hop;
|
|
|
|
/*Drop spin outputs*/
|
|
wire [`BIT_WIDTH-1:0] x_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] y_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] z_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] ux_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] uy_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] uz_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] sz_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] sr_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] sleftz_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] sleftr_dropSpin;
|
|
wire [`LAYER_WIDTH-1:0] layer_dropSpin;
|
|
wire [`BIT_WIDTH-1:0] weight_dropSpin;
|
|
wire dead_dropSpin;
|
|
//Had to add this one to avoid implicit net:
|
|
wire hit_dropSpin;
|
|
|
|
/*Dead or Alive outputs*/
|
|
wire [`BIT_WIDTH-1:0] x_Roulette;
|
|
wire [`BIT_WIDTH-1:0] y_Roulette;
|
|
wire [`BIT_WIDTH-1:0] z_Roulette;
|
|
wire [`BIT_WIDTH-1:0] ux_Roulette;
|
|
wire [`BIT_WIDTH-1:0] uy_Roulette;
|
|
wire [`BIT_WIDTH-1:0] uz_Roulette;
|
|
wire [`BIT_WIDTH-1:0] sz_Roulette;
|
|
wire [`BIT_WIDTH-1:0] sr_Roulette;
|
|
wire [`BIT_WIDTH-1:0] sleftz_Roulette;
|
|
wire [`BIT_WIDTH-1:0] sleftr_Roulette;
|
|
wire [`LAYER_WIDTH-1:0] layer_Roulette;
|
|
wire [`BIT_WIDTH-1:0] weight_Roulette;
|
|
wire dead_Roulette;
|
|
|
|
// internals
|
|
wire [`BIT_WIDTH-1:0] rand1, rand2, rand3, rand4, rand5;
|
|
wire [`BIT_WIDTH-1:0] logrand;
|
|
|
|
// Combinational Drivers
|
|
reg [`BIT_WIDTH-1:0] c_num_photons_left;
|
|
reg [`BIT_WIDTH-1:0] c_counter;
|
|
reg c_done;
|
|
|
|
// Registered Drivers
|
|
reg r_done;
|
|
reg loadseed;
|
|
reg delay_loadseed;
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] r_num_photons_left;
|
|
reg [`BIT_WIDTH-1:0] r_counter;
|
|
|
|
assign done = r_done;
|
|
|
|
//Cannot be logic in instantiatino:
|
|
wire not_reset;
|
|
assign not_reset = ~reset;
|
|
|
|
// Connect blocks
|
|
LogCalc log_u1(.clock(clock), .reset(reset), .enable(1'b1), .in_x(rand1), .log_x(logrand));
|
|
rng rand_u1(.clk(clock), .en(1'b1), .resetn(not_reset), .loadseed_i(loadseed), .seed_i(randseed1), .number_o(rand1));
|
|
rng rand_u2(.clk(clock), .en(1'b1), .resetn(not_reset), .loadseed_i(loadseed), .seed_i(randseed2), .number_o(rand2));
|
|
rng rand_u3(.clk(clock), .en(1'b1), .resetn(not_reset), .loadseed_i(loadseed), .seed_i(randseed3), .number_o(rand3));
|
|
rng rand_u4(.clk(clock), .en(1'b1), .resetn(not_reset), .loadseed_i(loadseed), .seed_i(randseed4), .number_o(rand4));
|
|
rng rand_u5(.clk(clock), .en(1'b1), .resetn(not_reset), .loadseed_i(loadseed), .seed_i(randseed5), .number_o(rand5));
|
|
|
|
Move mover( .clock(clock), .reset(reset), .enable(enable),
|
|
.x_moverMux(x_moverMux), .y_moverMux(y_moverMux), .z_moverMux(z_moverMux),
|
|
.ux_moverMux(ux_moverMux), .uy_moverMux(uy_moverMux), .uz_moverMux(uz_moverMux),
|
|
.sz_moverMux(sz_moverMux), .sr_moverMux(sr_moverMux),
|
|
.sleftz_moverMux(sleftz_moverMux), .sleftr_moverMux(sleftr_moverMux),
|
|
.layer_moverMux(layer_moverMux), .weight_moverMux(weight_moverMux), .dead_moverMux(dead_moverMux),
|
|
|
|
.log_rand_num(logrand),
|
|
|
|
//OUTPUTS
|
|
.x_mover(x_mover), .y_mover(y_mover), .z_mover(z_mover),
|
|
.ux_mover(ux_mover), .uy_mover(uy_mover), .uz_mover(uz_mover),
|
|
.sz_mover(sz_mover), .sr_mover(sr_mover),
|
|
.sleftz_mover(sleftz_mover), .sleftr_mover(sleftr_mover),
|
|
.layer_mover(layer_mover), .weight_mover(weight_mover), .dead_mover(dead_mover),
|
|
|
|
// CONSTANTS
|
|
.OneOver_MutMaxrad_0(OneOver_MutMaxrad_0), .OneOver_MutMaxrad_1(OneOver_MutMaxrad_1), .OneOver_MutMaxrad_2(OneOver_MutMaxrad_2), .OneOver_MutMaxrad_3(OneOver_MutMaxrad_3), .OneOver_MutMaxrad_4(OneOver_MutMaxrad_4), .OneOver_MutMaxrad_5(OneOver_MutMaxrad_5),
|
|
.OneOver_MutMaxdep_0(OneOver_MutMaxdep_0), .OneOver_MutMaxdep_1(OneOver_MutMaxdep_1), .OneOver_MutMaxdep_2(OneOver_MutMaxdep_2), .OneOver_MutMaxdep_3(OneOver_MutMaxdep_3), .OneOver_MutMaxdep_4(OneOver_MutMaxdep_4), .OneOver_MutMaxdep_5(OneOver_MutMaxdep_5),
|
|
.OneOver_Mut_0(OneOver_Mut_0), .OneOver_Mut_1(OneOver_Mut_1), .OneOver_Mut_2(OneOver_Mut_2), .OneOver_Mut_3(OneOver_Mut_3), .OneOver_Mut_4(OneOver_Mut_4), .OneOver_Mut_5(OneOver_Mut_5)
|
|
);
|
|
|
|
Boundary boundaryChecker ( //INPUTS
|
|
.clock(clock), .reset(reset), .enable(enable),
|
|
.x_mover(x_mover), .y_mover(y_mover), .z_mover(z_mover),
|
|
.ux_mover(ux_mover), .uy_mover(uy_mover), .uz_mover(uz_mover),
|
|
.sz_mover(sz_mover), .sr_mover(sr_mover),
|
|
.sleftz_mover(sleftz_mover), .sleftr_mover(sleftr_mover),
|
|
.layer_mover(layer_mover), .weight_mover(weight_mover), .dead_mover(dead_mover),
|
|
|
|
//OUTPUTS
|
|
.x_boundaryChecker(x_boundaryChecker), .y_boundaryChecker(y_boundaryChecker), .z_boundaryChecker(z_boundaryChecker),
|
|
.ux_boundaryChecker(ux_boundaryChecker), .uy_boundaryChecker(uy_boundaryChecker), .uz_boundaryChecker(uz_boundaryChecker),
|
|
.sz_boundaryChecker(sz_boundaryChecker), .sr_boundaryChecker(sr_boundaryChecker),
|
|
.sleftz_boundaryChecker(sleftz_boundaryChecker), .sleftr_boundaryChecker(sleftr_boundaryChecker),
|
|
.layer_boundaryChecker(layer_boundaryChecker), .weight_boundaryChecker(weight_boundaryChecker), .dead_boundaryChecker(dead_boundaryChecker), .hit_boundaryChecker(hit_boundaryChecker),
|
|
|
|
//CONSTANTS
|
|
.z1_0(z1_0), .z1_1(z1_1), .z1_2(z1_2), .z1_3(z1_3), .z1_4(z1_4), .z1_5(z1_5),
|
|
.z0_0(z0_0), .z0_1(z0_1), .z0_2(z0_2), .z0_3(z0_3), .z0_4(z0_4), .z0_5(z0_5),
|
|
.mut_0(mut_0), .mut_1(mut_1), .mut_2(mut_2), .mut_3(mut_3), .mut_4(mut_4), .mut_5(mut_5),
|
|
.maxDepth_over_maxRadius(maxDepth_over_maxRadius)
|
|
);
|
|
|
|
Hop hopper ( //INPUTS
|
|
.clock(clock), .reset(reset), .enable(enable),
|
|
.x_boundaryChecker(x_boundaryChecker), .y_boundaryChecker(y_boundaryChecker), .z_boundaryChecker(z_boundaryChecker),
|
|
.ux_boundaryChecker(ux_boundaryChecker), .uy_boundaryChecker(uy_boundaryChecker), .uz_boundaryChecker(uz_boundaryChecker),
|
|
.sz_boundaryChecker(sz_boundaryChecker), .sr_boundaryChecker(sr_boundaryChecker),
|
|
.sleftz_boundaryChecker(sleftz_boundaryChecker), .sleftr_boundaryChecker(sleftr_boundaryChecker),
|
|
.layer_boundaryChecker(layer_boundaryChecker), .weight_boundaryChecker(weight_boundaryChecker), .dead_boundaryChecker(dead_boundaryChecker),
|
|
.hit_boundaryChecker(hit_boundaryChecker),
|
|
|
|
//OUTPUTS
|
|
.x_hop(x_hop), .y_hop(y_hop), .z_hop(z_hop),
|
|
.ux_hop(ux_hop), .uy_hop(uy_hop), .uz_hop(uz_hop),
|
|
.sz_hop(sz_hop), .sr_hop(sr_hop),
|
|
.sleftz_hop(sleftz_hop), .sleftr_hop(sleftr_hop),
|
|
.layer_hop(layer_hop), .weight_hop(weight_hop), .dead_hop(dead_hop), .hit_hop(hit_hop)
|
|
);
|
|
|
|
Roulette Roulette ( //INPUTS
|
|
.clock(clock), .reset(reset), .enable(enable),
|
|
.x_RouletteMux(x_dropSpin), .y_RouletteMux(y_dropSpin), .z_RouletteMux(z_dropSpin),
|
|
.ux_RouletteMux(ux_dropSpin), .uy_RouletteMux(uy_dropSpin), .uz_RouletteMux(uz_dropSpin),
|
|
.sz_RouletteMux(sz_dropSpin), .sr_RouletteMux(sr_dropSpin),
|
|
.sleftz_RouletteMux(sleftz_dropSpin), .sleftr_RouletteMux(sleftr_dropSpin),
|
|
.layer_RouletteMux(layer_dropSpin), .weight_absorber(weight_dropSpin), .dead_RouletteMux(dead_dropSpin),
|
|
.randnumber(rand4),
|
|
|
|
//OUTPUTS
|
|
.x_Roulette(x_Roulette), .y_Roulette(y_Roulette), .z_Roulette(z_Roulette),
|
|
.ux_Roulette(ux_Roulette), .uy_Roulette(uy_Roulette), .uz_Roulette(uz_Roulette),
|
|
.sz_Roulette(sz_Roulette), .sr_Roulette(sr_Roulette),
|
|
.sleftz_Roulette(sleftz_Roulette), .sleftr_Roulette(sleftr_Roulette),
|
|
.layer_Roulette(layer_Roulette), .weight_Roulette(weight_Roulette), .dead_Roulette(dead_Roulette)
|
|
);
|
|
|
|
|
|
DropSpinWrapper dropSpin (
|
|
.clock(clock), .reset(reset), .enable(enable),
|
|
|
|
//From Hopper Module
|
|
.i_x(x_hop),
|
|
.i_y(y_hop),
|
|
.i_z(z_hop),
|
|
.i_ux(ux_hop),
|
|
.i_uy(uy_hop),
|
|
.i_uz(uz_hop),
|
|
.i_sz(sz_hop),
|
|
.i_sr(sr_hop),
|
|
.i_sleftz(sleftz_hop),
|
|
.i_sleftr(sleftr_hop),
|
|
.i_weight(weight_hop),
|
|
.i_layer(layer_hop),
|
|
.i_dead(dead_hop),
|
|
.i_hit(hit_hop),
|
|
|
|
//From System Register File (5 layers)- Absorber
|
|
.muaFraction1(muaFraction1), .muaFraction2(muaFraction2), .muaFraction3(muaFraction3), .muaFraction4(muaFraction4), .muaFraction5(muaFraction5),
|
|
|
|
//From System Register File - ScattererReflector
|
|
.down_niOverNt_1(down_niOverNt_1),
|
|
.down_niOverNt_2(down_niOverNt_2),
|
|
.down_niOverNt_3(down_niOverNt_3),
|
|
.down_niOverNt_4(down_niOverNt_4),
|
|
.down_niOverNt_5(down_niOverNt_5),
|
|
.up_niOverNt_1(up_niOverNt_1),
|
|
.up_niOverNt_2(up_niOverNt_2),
|
|
.up_niOverNt_3(up_niOverNt_3),
|
|
.up_niOverNt_4(up_niOverNt_4),
|
|
.up_niOverNt_5(up_niOverNt_5),
|
|
.down_niOverNt_2_1(down_niOverNt_2_1),
|
|
.down_niOverNt_2_2(down_niOverNt_2_2),
|
|
.down_niOverNt_2_3(down_niOverNt_2_3),
|
|
.down_niOverNt_2_4(down_niOverNt_2_4),
|
|
.down_niOverNt_2_5(down_niOverNt_2_5),
|
|
.up_niOverNt_2_1(up_niOverNt_2_1),
|
|
.up_niOverNt_2_2(up_niOverNt_2_2),
|
|
.up_niOverNt_2_3(up_niOverNt_2_3),
|
|
.up_niOverNt_2_4(up_niOverNt_2_4),
|
|
.up_niOverNt_2_5(up_niOverNt_2_5),
|
|
.downCritAngle_0(downCritAngle_0),
|
|
.downCritAngle_1(downCritAngle_1),
|
|
.downCritAngle_2(downCritAngle_2),
|
|
.downCritAngle_3(downCritAngle_3),
|
|
.downCritAngle_4(downCritAngle_4),
|
|
.upCritAngle_0(upCritAngle_0),
|
|
.upCritAngle_1(upCritAngle_1),
|
|
.upCritAngle_2(upCritAngle_2),
|
|
.upCritAngle_3(upCritAngle_3),
|
|
.upCritAngle_4(upCritAngle_4),
|
|
|
|
// port to memory
|
|
.data(absorb_data), .rdaddress(absorb_rdaddress), .wraddress(absorb_wraddress),
|
|
.wren(absorb_wren), .q(absorb_q),
|
|
|
|
//Generated by random number generators controlled by skeleton
|
|
.up_rFresnel(up_rFresnel),
|
|
.down_rFresnel(down_rFresnel),
|
|
.sint(sint),
|
|
.cost(cost),
|
|
.rand2(rand2),
|
|
.rand3(rand3),
|
|
.rand5(rand5),
|
|
//To Memories
|
|
.tindex(tindex),
|
|
.fresIndex(fresIndex),
|
|
|
|
|
|
|
|
//To Roulette Module
|
|
.o_x(x_dropSpin),
|
|
.o_y(y_dropSpin),
|
|
.o_z(z_dropSpin),
|
|
.o_ux(ux_dropSpin),
|
|
.o_uy(uy_dropSpin),
|
|
.o_uz(uz_dropSpin),
|
|
.o_sz(sz_dropSpin),
|
|
.o_sr(sr_dropSpin),
|
|
.o_sleftz(sleftz_dropSpin),
|
|
.o_sleftr(sleftr_dropSpin),
|
|
.o_weight(weight_dropSpin),
|
|
.o_layer(layer_dropSpin),
|
|
.o_dead(dead_dropSpin),
|
|
.o_hit(hit_dropSpin)
|
|
|
|
);
|
|
|
|
// Determine how many photons left
|
|
always @(r_num_photons_left or dead_Roulette or r_done or r_counter)
|
|
begin
|
|
//c_num_photons_left = r_num_photons_left;
|
|
//c_counter = 0;
|
|
|
|
if(dead_Roulette == 1'b1 && r_done == 1'b0)
|
|
begin
|
|
if(r_num_photons_left > 0)
|
|
begin
|
|
c_num_photons_left = r_num_photons_left - 1;
|
|
c_counter = 0;
|
|
end
|
|
else
|
|
begin
|
|
c_counter = r_counter + 1;
|
|
c_num_photons_left = r_num_photons_left;
|
|
end
|
|
end
|
|
else
|
|
begin
|
|
c_num_photons_left = r_num_photons_left;
|
|
c_counter = 0;
|
|
end
|
|
end
|
|
|
|
// Only state info is done
|
|
always @(r_done or r_counter)
|
|
begin
|
|
//c_done = r_done;
|
|
if(r_counter > `PIPELINE_DEPTH_UPPER_LIMIT)
|
|
begin
|
|
c_done = 1'b1;
|
|
end else begin
|
|
c_done = r_done;
|
|
end
|
|
end
|
|
|
|
// Create mux to mover
|
|
always @(dead_Roulette or initialWeight or r_num_photons_left or x_Roulette or y_Roulette or z_Roulette or
|
|
ux_Roulette or uy_Roulette or uz_Roulette or sz_Roulette or sr_Roulette or sleftz_Roulette or
|
|
sleftr_Roulette or layer_Roulette or weight_Roulette or dead_Roulette)
|
|
begin
|
|
if(dead_Roulette)
|
|
begin
|
|
x_moverMux = 0;
|
|
y_moverMux = 0;
|
|
z_moverMux = 0;
|
|
ux_moverMux = 0;
|
|
uy_moverMux = 0;
|
|
uz_moverMux = 32'h7fffffff;
|
|
sz_moverMux = 0;
|
|
sr_moverMux = 0;
|
|
sleftz_moverMux = 0;
|
|
sleftr_moverMux = 0;
|
|
layer_moverMux = 3'b01;
|
|
weight_moverMux = initialWeight;
|
|
if(r_num_photons_left > 0)
|
|
begin
|
|
dead_moverMux = 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
dead_moverMux = 1'b1;
|
|
end
|
|
end
|
|
else
|
|
begin
|
|
x_moverMux = x_Roulette;
|
|
y_moverMux = y_Roulette;
|
|
z_moverMux = z_Roulette;
|
|
ux_moverMux = ux_Roulette;
|
|
uy_moverMux = uy_Roulette;
|
|
uz_moverMux = uz_Roulette;
|
|
sz_moverMux = sz_Roulette;
|
|
sr_moverMux = sr_Roulette;
|
|
sleftz_moverMux = sleftz_Roulette;
|
|
sleftr_moverMux = sleftr_Roulette;
|
|
layer_moverMux = layer_Roulette;
|
|
weight_moverMux = weight_Roulette;
|
|
dead_moverMux = dead_Roulette;
|
|
end
|
|
end
|
|
|
|
// register state
|
|
always @(posedge clock)
|
|
begin
|
|
if(reset)
|
|
begin
|
|
r_num_photons_left <= total_photons;
|
|
r_counter <= 1'b0;
|
|
r_done <= 1'b0;
|
|
delay_loadseed <= 1'b1;
|
|
loadseed <= 1'b1;
|
|
end
|
|
else
|
|
begin
|
|
if(enable)
|
|
begin
|
|
r_num_photons_left <= c_num_photons_left;
|
|
r_counter <= c_counter;
|
|
r_done <= c_done;
|
|
delay_loadseed <= 1'b0;
|
|
loadseed <= delay_loadseed;
|
|
end
|
|
end
|
|
end
|
|
endmodule
|
|
|
|
|
|
module Move( //INPUTS
|
|
clock, reset, enable,
|
|
x_moverMux, y_moverMux, z_moverMux,
|
|
ux_moverMux, uy_moverMux, uz_moverMux,
|
|
sz_moverMux, sr_moverMux,
|
|
sleftz_moverMux, sleftr_moverMux,
|
|
layer_moverMux, weight_moverMux, dead_moverMux,
|
|
|
|
log_rand_num,
|
|
|
|
//OUTPUTS
|
|
x_mover, y_mover, z_mover,
|
|
ux_mover, uy_mover, uz_mover,
|
|
sz_mover, sr_mover,
|
|
sleftz_mover, sleftr_mover,
|
|
layer_mover, weight_mover, dead_mover,
|
|
|
|
// CONSTANTS
|
|
OneOver_MutMaxrad_0, OneOver_MutMaxrad_1, OneOver_MutMaxrad_2, OneOver_MutMaxrad_3, OneOver_MutMaxrad_4, OneOver_MutMaxrad_5,
|
|
OneOver_MutMaxdep_0, OneOver_MutMaxdep_1, OneOver_MutMaxdep_2, OneOver_MutMaxdep_3, OneOver_MutMaxdep_4, OneOver_MutMaxdep_5,
|
|
OneOver_Mut_0, OneOver_Mut_1, OneOver_Mut_2, OneOver_Mut_3, OneOver_Mut_4, OneOver_Mut_5
|
|
);
|
|
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [`BIT_WIDTH-1:0] x_moverMux;
|
|
input [`BIT_WIDTH-1:0] y_moverMux;
|
|
input [`BIT_WIDTH-1:0] z_moverMux;
|
|
input [`BIT_WIDTH-1:0] ux_moverMux;
|
|
input [`BIT_WIDTH-1:0] uy_moverMux;
|
|
input [`BIT_WIDTH-1:0] uz_moverMux;
|
|
input [`BIT_WIDTH-1:0] sz_moverMux;
|
|
input [`BIT_WIDTH-1:0] sr_moverMux;
|
|
input [`BIT_WIDTH-1:0] sleftz_moverMux;
|
|
input [`BIT_WIDTH-1:0] sleftr_moverMux;
|
|
input [`LAYER_WIDTH-1:0] layer_moverMux;
|
|
input [`BIT_WIDTH-1:0] weight_moverMux;
|
|
input dead_moverMux;
|
|
|
|
output [`BIT_WIDTH-1:0] x_mover;
|
|
output [`BIT_WIDTH-1:0] y_mover;
|
|
output [`BIT_WIDTH-1:0] z_mover;
|
|
output [`BIT_WIDTH-1:0] ux_mover;
|
|
output [`BIT_WIDTH-1:0] uy_mover;
|
|
output [`BIT_WIDTH-1:0] uz_mover;
|
|
output [`BIT_WIDTH-1:0] sz_mover;
|
|
output [`BIT_WIDTH-1:0] sr_mover;
|
|
output [`BIT_WIDTH-1:0] sleftz_mover;
|
|
output [`BIT_WIDTH-1:0] sleftr_mover;
|
|
output [`LAYER_WIDTH-1:0]layer_mover;
|
|
output [`BIT_WIDTH-1:0] weight_mover;
|
|
output dead_mover;
|
|
|
|
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxrad_0;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxrad_1;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxrad_2;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxrad_3;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxrad_4;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxrad_5;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxdep_0;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxdep_1;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxdep_2;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxdep_3;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxdep_4;
|
|
input [`BIT_WIDTH-1:0] OneOver_MutMaxdep_5;
|
|
input [`BIT_WIDTH-1:0] OneOver_Mut_0;
|
|
input [`BIT_WIDTH-1:0] OneOver_Mut_1;
|
|
input [`BIT_WIDTH-1:0] OneOver_Mut_2;
|
|
input [`BIT_WIDTH-1:0] OneOver_Mut_3;
|
|
input [`BIT_WIDTH-1:0] OneOver_Mut_4;
|
|
input [`BIT_WIDTH-1:0] OneOver_Mut_5;
|
|
input [`BIT_WIDTH-1:0] log_rand_num;
|
|
|
|
//------------Local Variables------------------------
|
|
reg [`BIT_WIDTH-1:0] c_sr;
|
|
reg [`BIT_WIDTH-1:0] c_sz;
|
|
reg [2*`BIT_WIDTH-1:0] c_sr_big;
|
|
reg [2*`BIT_WIDTH-1:0] c_sz_big;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz;
|
|
|
|
//No signed regs, unsigned unecessary
|
|
//reg unsigned [`BIT_WIDTH-1:0] c_r_op0;
|
|
//reg unsigned [`BIT_WIDTH-1:0] c_r_op1;
|
|
//reg unsigned [`BIT_WIDTH-1:0] c_z_op0;
|
|
//reg unsigned [`BIT_WIDTH-1:0] c_z_op1;
|
|
|
|
reg [`BIT_WIDTH-1:0] c_r_op0;
|
|
reg [`BIT_WIDTH-1:0] c_r_op1;
|
|
reg [`BIT_WIDTH-1:0] c_z_op0;
|
|
reg [`BIT_WIDTH-1:0] c_z_op1;
|
|
|
|
// grab multiplexed constant
|
|
reg [`BIT_WIDTH-1:0] OneOver_MutMaxrad;
|
|
reg [`BIT_WIDTH-1:0] OneOver_MutMaxdep;
|
|
reg [`BIT_WIDTH-1:0] OneOver_Mut;
|
|
|
|
//------------REGISTERED Values------------------------
|
|
reg [`BIT_WIDTH-1:0] x_mover;
|
|
reg [`BIT_WIDTH-1:0] y_mover;
|
|
reg [`BIT_WIDTH-1:0] z_mover;
|
|
reg [`BIT_WIDTH-1:0] ux_mover;
|
|
reg [`BIT_WIDTH-1:0] uy_mover;
|
|
reg [`BIT_WIDTH-1:0] uz_mover;
|
|
reg [`BIT_WIDTH-1:0] sz_mover;
|
|
reg [`BIT_WIDTH-1:0] sr_mover;
|
|
reg [`BIT_WIDTH-1:0] sleftz_mover;
|
|
reg [`BIT_WIDTH-1:0] sleftr_mover;
|
|
reg [`LAYER_WIDTH-1:0]layer_mover;
|
|
reg [`BIT_WIDTH-1:0] weight_mover;
|
|
reg dead_mover;
|
|
|
|
|
|
//Need this to deal with 'unused' inputs for ODIN II
|
|
wire bigOr;
|
|
assign bigOr = sr_moverMux[0] | sr_moverMux[1] | sr_moverMux[2] | sr_moverMux[3] | sr_moverMux[4] | sr_moverMux[5] |
|
|
sr_moverMux[6] | sr_moverMux[7] | sr_moverMux[8] | sr_moverMux[9] | sr_moverMux[10] | sr_moverMux[11] |
|
|
sr_moverMux[12] | sr_moverMux[13] | sr_moverMux[14] | sr_moverMux[15] | sr_moverMux[16] | sr_moverMux[17] |
|
|
sr_moverMux[18] | sr_moverMux[19] | sr_moverMux[20] | sr_moverMux[21] | sr_moverMux[22] | sr_moverMux[23] |
|
|
sr_moverMux[24] | sr_moverMux[25] | sr_moverMux[26] | sr_moverMux[27] | sr_moverMux[28] | sr_moverMux[29] |
|
|
sr_moverMux[30] | sr_moverMux[31] |
|
|
sz_moverMux[0] | sz_moverMux[1] | sz_moverMux[2] | sz_moverMux[3] | sz_moverMux[4] | sz_moverMux[5] |
|
|
sz_moverMux[6] | sz_moverMux[7] | sz_moverMux[8] | sz_moverMux[9] | sz_moverMux[10] | sz_moverMux[11] |
|
|
sz_moverMux[12] | sz_moverMux[13] | sz_moverMux[14] | sz_moverMux[15] | sz_moverMux[16] | sz_moverMux[17] |
|
|
sz_moverMux[18] | sz_moverMux[19] | sz_moverMux[20] | sz_moverMux[21] | sz_moverMux[22] | sz_moverMux[23] |
|
|
sz_moverMux[24] | sz_moverMux[25] | sz_moverMux[26] | sz_moverMux[27] | sz_moverMux[28] | sz_moverMux[29] |
|
|
sz_moverMux[30] | sz_moverMux[31] |
|
|
1'b1;
|
|
wire reset_new;
|
|
assign reset_new = reset & bigOr;
|
|
|
|
// multiplex constants
|
|
always @(layer_moverMux or OneOver_MutMaxrad_0 or OneOver_MutMaxdep_0 or OneOver_Mut_0 or
|
|
OneOver_MutMaxrad_1 or OneOver_MutMaxdep_1 or OneOver_Mut_1 or
|
|
OneOver_MutMaxrad_2 or OneOver_MutMaxdep_2 or OneOver_Mut_2 or
|
|
OneOver_MutMaxrad_3 or OneOver_MutMaxdep_3 or OneOver_Mut_3 or
|
|
OneOver_MutMaxrad_4 or OneOver_MutMaxdep_4 or OneOver_Mut_4 or
|
|
OneOver_MutMaxrad_5 or OneOver_MutMaxdep_5 or OneOver_Mut_5)
|
|
begin
|
|
case(layer_moverMux)
|
|
3'b000:
|
|
begin
|
|
OneOver_MutMaxrad = OneOver_MutMaxrad_0;
|
|
OneOver_MutMaxdep = OneOver_MutMaxdep_0;
|
|
OneOver_Mut = OneOver_Mut_0;
|
|
end
|
|
3'b001:
|
|
begin
|
|
OneOver_MutMaxrad = OneOver_MutMaxrad_1;
|
|
OneOver_MutMaxdep = OneOver_MutMaxdep_1;
|
|
OneOver_Mut = OneOver_Mut_1;
|
|
end
|
|
3'b010:
|
|
begin
|
|
OneOver_MutMaxrad = OneOver_MutMaxrad_2;
|
|
OneOver_MutMaxdep = OneOver_MutMaxdep_2;
|
|
OneOver_Mut = OneOver_Mut_2;
|
|
end
|
|
3'b011:
|
|
begin
|
|
OneOver_MutMaxrad = OneOver_MutMaxrad_3;
|
|
OneOver_MutMaxdep = OneOver_MutMaxdep_3;
|
|
OneOver_Mut = OneOver_Mut_3;
|
|
end
|
|
3'b100:
|
|
begin
|
|
OneOver_MutMaxrad = OneOver_MutMaxrad_4;
|
|
OneOver_MutMaxdep = OneOver_MutMaxdep_4;
|
|
OneOver_Mut = OneOver_Mut_4;
|
|
end
|
|
3'b101:
|
|
begin
|
|
OneOver_MutMaxrad = OneOver_MutMaxrad_5;
|
|
OneOver_MutMaxdep = OneOver_MutMaxdep_5;
|
|
OneOver_Mut = OneOver_Mut_5;
|
|
end
|
|
default:
|
|
begin
|
|
OneOver_MutMaxrad = 0;
|
|
OneOver_MutMaxdep = 0;
|
|
OneOver_Mut = 0;
|
|
end
|
|
endcase
|
|
end
|
|
|
|
// Determine move value
|
|
always @(sleftz_moverMux or log_rand_num or OneOver_MutMaxrad or OneOver_MutMaxdep or sleftr_moverMux or
|
|
OneOver_Mut)
|
|
begin
|
|
// Resource sharing for multipliers
|
|
if(sleftz_moverMux == 32'b0)
|
|
begin
|
|
c_r_op0 = `MAXLOG - log_rand_num;
|
|
c_r_op1 = OneOver_MutMaxrad;
|
|
c_z_op0 = `MAXLOG - log_rand_num;
|
|
c_z_op1 = OneOver_MutMaxdep;
|
|
end
|
|
else
|
|
begin
|
|
c_r_op0 = sleftr_moverMux;
|
|
c_r_op1 = OneOver_Mut;
|
|
c_z_op0 = sleftz_moverMux;
|
|
c_z_op1 = OneOver_Mut;
|
|
end
|
|
end
|
|
|
|
// Determine move value
|
|
always @(sleftz_moverMux or c_r_op0 or c_r_op1 or c_z_op0 or c_z_op1 or sleftr_moverMux)
|
|
begin
|
|
c_sr_big = c_r_op0 * c_r_op1;
|
|
c_sz_big = c_z_op0 * c_z_op1;
|
|
if(sleftz_moverMux == 32'b0)
|
|
begin
|
|
c_sr = c_sr_big[2*`BIT_WIDTH - `LOGSCALEFACTOR - 1:`BIT_WIDTH - `LOGSCALEFACTOR];
|
|
c_sz = c_sz_big[2*`BIT_WIDTH - `LOGSCALEFACTOR - 1:`BIT_WIDTH - `LOGSCALEFACTOR];
|
|
|
|
c_sleftr = sleftr_moverMux;
|
|
c_sleftz = 0;
|
|
|
|
//c_sr = `CONST_MOVE_AMOUNT;
|
|
//c_sz = `CONST_MOVE_AMOUNT;
|
|
end
|
|
else
|
|
begin
|
|
c_sr = c_sr_big[2*`BIT_WIDTH - `MUTMAX_BITS - 1 - 1:`BIT_WIDTH - `MUTMAX_BITS - 1];
|
|
c_sz = c_sz_big[2*`BIT_WIDTH - `MUTMAX_BITS - 1 - 1:`BIT_WIDTH - `MUTMAX_BITS - 1];
|
|
|
|
c_sleftz = 0;
|
|
c_sleftr = 0;
|
|
end
|
|
end
|
|
|
|
// latch values
|
|
always @ (posedge clock)
|
|
begin
|
|
if (reset_new)
|
|
begin
|
|
// Photon variables
|
|
x_mover <= 0;
|
|
y_mover <= 0;
|
|
z_mover <= 0;
|
|
ux_mover <= 0;
|
|
uy_mover <= 0;
|
|
uz_mover <= 0;
|
|
sz_mover <= 0;
|
|
sr_mover <= 0;
|
|
sleftz_mover <= 0;
|
|
sleftr_mover <= 0;
|
|
layer_mover <= 0;
|
|
weight_mover <= 0;
|
|
dead_mover <= 1'b1;
|
|
end
|
|
else
|
|
begin
|
|
if(enable)
|
|
begin
|
|
// Photon variables
|
|
x_mover <= x_moverMux;
|
|
y_mover <= y_moverMux;
|
|
z_mover <= z_moverMux;
|
|
ux_mover <= ux_moverMux;
|
|
uy_mover <= uy_moverMux;
|
|
uz_mover <= uz_moverMux;
|
|
layer_mover <= layer_moverMux;
|
|
weight_mover <= weight_moverMux;
|
|
dead_mover <= dead_moverMux;
|
|
|
|
sz_mover <= c_sz;
|
|
sr_mover <= c_sr;
|
|
sleftz_mover <= c_sleftz;
|
|
sleftr_mover <= c_sleftr;
|
|
end
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
module Boundary ( //INPUTS
|
|
clock, reset, enable,
|
|
x_mover, y_mover, z_mover,
|
|
ux_mover, uy_mover, uz_mover,
|
|
sz_mover, sr_mover,
|
|
sleftz_mover, sleftr_mover,
|
|
layer_mover, weight_mover, dead_mover,
|
|
|
|
//OUTPUTS
|
|
x_boundaryChecker, y_boundaryChecker, z_boundaryChecker,
|
|
ux_boundaryChecker, uy_boundaryChecker, uz_boundaryChecker,
|
|
sz_boundaryChecker, sr_boundaryChecker,
|
|
sleftz_boundaryChecker, sleftr_boundaryChecker,
|
|
layer_boundaryChecker, weight_boundaryChecker, dead_boundaryChecker, hit_boundaryChecker,
|
|
|
|
//CONSTANTS
|
|
z1_0, z1_1, z1_2, z1_3, z1_4, z1_5,
|
|
z0_0, z0_1, z0_2, z0_3, z0_4, z0_5,
|
|
mut_0, mut_1, mut_2, mut_3, mut_4, mut_5,
|
|
maxDepth_over_maxRadius
|
|
);
|
|
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter LAYER_WIDTH=3;
|
|
//parameter INTMAX=2147483647;
|
|
//parameter INTMIN=-2147483648;
|
|
//parameter DIVIDER_LATENCY=30;
|
|
//parameter FINAL_LATENCY=28;
|
|
//parameter MULT_LATENCY=1;
|
|
//parameter ASPECT_RATIO = 7;
|
|
//parameter TOTAL_LATENCY = `DIVIDER_LATENCY + `FINAL_LATENCY + `MULT_LATENCY + `MULT_LATENCY;
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [`BIT_WIDTH-1:0] x_mover;
|
|
input [`BIT_WIDTH-1:0] y_mover;
|
|
input [`BIT_WIDTH-1:0] z_mover;
|
|
input [`BIT_WIDTH-1:0] ux_mover;
|
|
input [`BIT_WIDTH-1:0] uy_mover;
|
|
input [`BIT_WIDTH-1:0] uz_mover;
|
|
input [`BIT_WIDTH-1:0] sz_mover;
|
|
input [`BIT_WIDTH-1:0] sr_mover;
|
|
input [`BIT_WIDTH-1:0] sleftz_mover;
|
|
input [`BIT_WIDTH-1:0] sleftr_mover;
|
|
input [`LAYER_WIDTH-1:0] layer_mover;
|
|
input [`BIT_WIDTH-1:0] weight_mover;
|
|
input dead_mover;
|
|
|
|
output [`BIT_WIDTH-1:0] x_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] y_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] z_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] ux_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] uy_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] uz_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] sz_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] sr_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] sleftz_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] sleftr_boundaryChecker;
|
|
output [`LAYER_WIDTH-1:0]layer_boundaryChecker;
|
|
output [`BIT_WIDTH-1:0] weight_boundaryChecker;
|
|
output dead_boundaryChecker;
|
|
output hit_boundaryChecker;
|
|
|
|
// Constants
|
|
input [`BIT_WIDTH-1:0] z1_0;
|
|
input [`BIT_WIDTH-1:0] z1_1;
|
|
input [`BIT_WIDTH-1:0] z1_2;
|
|
input [`BIT_WIDTH-1:0] z1_3;
|
|
input [`BIT_WIDTH-1:0] z1_4;
|
|
input [`BIT_WIDTH-1:0] z1_5;
|
|
input [`BIT_WIDTH-1:0] z0_0;
|
|
input [`BIT_WIDTH-1:0] z0_1;
|
|
input [`BIT_WIDTH-1:0] z0_2;
|
|
input [`BIT_WIDTH-1:0] z0_3;
|
|
input [`BIT_WIDTH-1:0] z0_4;
|
|
input [`BIT_WIDTH-1:0] z0_5;
|
|
input [`BIT_WIDTH-1:0] mut_0;
|
|
input [`BIT_WIDTH-1:0] mut_1;
|
|
input [`BIT_WIDTH-1:0] mut_2;
|
|
input [`BIT_WIDTH-1:0] mut_3;
|
|
input [`BIT_WIDTH-1:0] mut_4;
|
|
input [`BIT_WIDTH-1:0] mut_5;
|
|
input [`BIT_WIDTH-1:0] maxDepth_over_maxRadius;
|
|
|
|
|
|
//WIRES FOR CONNECTING REGISTERS
|
|
//reg [BIT_WIDTH-1:0] c_x [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_y [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_z [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_ux [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_uy [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_uz [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_sz [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_sr [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_sleftz [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_sleftr [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_weight [TOTAL_LATENCY - 1:0];
|
|
//reg [LAYER_WIDTH-1:0] c_layer [TOTAL_LATENCY - 1:0];
|
|
//reg c_dead [TOTAL_LATENCY - 1:0];
|
|
//reg c_hit [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_diff[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_dl_b[TOTAL_LATENCY - 1:0];
|
|
//reg [2*BIT_WIDTH-1:0] c_numer[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_z1[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_z0[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] c_mut[TOTAL_LATENCY - 1:0];
|
|
|
|
//reg [BIT_WIDTH-1:0] r_x [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_y [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_z [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_ux [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_uy [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_uz [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_sz [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_sr [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_sleftz [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_sleftr [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_weight [TOTAL_LATENCY - 1:0];
|
|
//reg [LAYER_WIDTH-1:0] r_layer [TOTAL_LATENCY - 1:0];
|
|
//reg r_dead [TOTAL_LATENCY - 1:0];
|
|
//reg r_hit [TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_diff[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_dl_b[TOTAL_LATENCY - 1:0];
|
|
//reg [2*BIT_WIDTH-1:0] r_numer[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_z1[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_z0[TOTAL_LATENCY - 1:0];
|
|
//reg [BIT_WIDTH-1:0] r_mut[TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
//EXPANDED FOR ODIN
|
|
//reg [BIT_WIDTH-1:0] c_x [TOTAL_LATENCY - 1:0];
|
|
reg [`BIT_WIDTH-1:0] c_x__0;
|
|
reg [`BIT_WIDTH-1:0] c_x__1;
|
|
reg [`BIT_WIDTH-1:0] c_x__2;
|
|
reg [`BIT_WIDTH-1:0] c_x__3;
|
|
reg [`BIT_WIDTH-1:0] c_x__4;
|
|
reg [`BIT_WIDTH-1:0] c_x__5;
|
|
reg [`BIT_WIDTH-1:0] c_x__6;
|
|
reg [`BIT_WIDTH-1:0] c_x__7;
|
|
reg [`BIT_WIDTH-1:0] c_x__8;
|
|
reg [`BIT_WIDTH-1:0] c_x__9;
|
|
reg [`BIT_WIDTH-1:0] c_x__10;
|
|
reg [`BIT_WIDTH-1:0] c_x__11;
|
|
reg [`BIT_WIDTH-1:0] c_x__12;
|
|
reg [`BIT_WIDTH-1:0] c_x__13;
|
|
reg [`BIT_WIDTH-1:0] c_x__14;
|
|
reg [`BIT_WIDTH-1:0] c_x__15;
|
|
reg [`BIT_WIDTH-1:0] c_x__16;
|
|
reg [`BIT_WIDTH-1:0] c_x__17;
|
|
reg [`BIT_WIDTH-1:0] c_x__18;
|
|
reg [`BIT_WIDTH-1:0] c_x__19;
|
|
reg [`BIT_WIDTH-1:0] c_x__20;
|
|
reg [`BIT_WIDTH-1:0] c_x__21;
|
|
reg [`BIT_WIDTH-1:0] c_x__22;
|
|
reg [`BIT_WIDTH-1:0] c_x__23;
|
|
reg [`BIT_WIDTH-1:0] c_x__24;
|
|
reg [`BIT_WIDTH-1:0] c_x__25;
|
|
reg [`BIT_WIDTH-1:0] c_x__26;
|
|
reg [`BIT_WIDTH-1:0] c_x__27;
|
|
reg [`BIT_WIDTH-1:0] c_x__28;
|
|
reg [`BIT_WIDTH-1:0] c_x__29;
|
|
reg [`BIT_WIDTH-1:0] c_x__30;
|
|
reg [`BIT_WIDTH-1:0] c_x__31;
|
|
reg [`BIT_WIDTH-1:0] c_x__32;
|
|
reg [`BIT_WIDTH-1:0] c_x__33;
|
|
reg [`BIT_WIDTH-1:0] c_x__34;
|
|
reg [`BIT_WIDTH-1:0] c_x__35;
|
|
reg [`BIT_WIDTH-1:0] c_x__36;
|
|
reg [`BIT_WIDTH-1:0] c_x__37;
|
|
reg [`BIT_WIDTH-1:0] c_x__38;
|
|
reg [`BIT_WIDTH-1:0] c_x__39;
|
|
reg [`BIT_WIDTH-1:0] c_x__40;
|
|
reg [`BIT_WIDTH-1:0] c_x__41;
|
|
reg [`BIT_WIDTH-1:0] c_x__42;
|
|
reg [`BIT_WIDTH-1:0] c_x__43;
|
|
reg [`BIT_WIDTH-1:0] c_x__44;
|
|
reg [`BIT_WIDTH-1:0] c_x__45;
|
|
reg [`BIT_WIDTH-1:0] c_x__46;
|
|
reg [`BIT_WIDTH-1:0] c_x__47;
|
|
reg [`BIT_WIDTH-1:0] c_x__48;
|
|
reg [`BIT_WIDTH-1:0] c_x__49;
|
|
reg [`BIT_WIDTH-1:0] c_x__50;
|
|
reg [`BIT_WIDTH-1:0] c_x__51;
|
|
reg [`BIT_WIDTH-1:0] c_x__52;
|
|
reg [`BIT_WIDTH-1:0] c_x__53;
|
|
reg [`BIT_WIDTH-1:0] c_x__54;
|
|
reg [`BIT_WIDTH-1:0] c_x__55;
|
|
reg [`BIT_WIDTH-1:0] c_x__56;
|
|
reg [`BIT_WIDTH-1:0] c_x__57;
|
|
reg [`BIT_WIDTH-1:0] c_x__58;
|
|
reg [`BIT_WIDTH-1:0] c_x__59;
|
|
|
|
//reg [BIT_WIDTH-1:0] c_y [TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] c_y__0;
|
|
reg [`BIT_WIDTH-1:0] c_y__1;
|
|
reg [`BIT_WIDTH-1:0] c_y__2;
|
|
reg [`BIT_WIDTH-1:0] c_y__3;
|
|
reg [`BIT_WIDTH-1:0] c_y__4;
|
|
reg [`BIT_WIDTH-1:0] c_y__5;
|
|
reg [`BIT_WIDTH-1:0] c_y__6;
|
|
reg [`BIT_WIDTH-1:0] c_y__7;
|
|
reg [`BIT_WIDTH-1:0] c_y__8;
|
|
reg [`BIT_WIDTH-1:0] c_y__9;
|
|
reg [`BIT_WIDTH-1:0] c_y__10;
|
|
reg [`BIT_WIDTH-1:0] c_y__11;
|
|
reg [`BIT_WIDTH-1:0] c_y__12;
|
|
reg [`BIT_WIDTH-1:0] c_y__13;
|
|
reg [`BIT_WIDTH-1:0] c_y__14;
|
|
reg [`BIT_WIDTH-1:0] c_y__15;
|
|
reg [`BIT_WIDTH-1:0] c_y__16;
|
|
reg [`BIT_WIDTH-1:0] c_y__17;
|
|
reg [`BIT_WIDTH-1:0] c_y__18;
|
|
reg [`BIT_WIDTH-1:0] c_y__19;
|
|
reg [`BIT_WIDTH-1:0] c_y__20;
|
|
reg [`BIT_WIDTH-1:0] c_y__21;
|
|
reg [`BIT_WIDTH-1:0] c_y__22;
|
|
reg [`BIT_WIDTH-1:0] c_y__23;
|
|
reg [`BIT_WIDTH-1:0] c_y__24;
|
|
reg [`BIT_WIDTH-1:0] c_y__25;
|
|
reg [`BIT_WIDTH-1:0] c_y__26;
|
|
reg [`BIT_WIDTH-1:0] c_y__27;
|
|
reg [`BIT_WIDTH-1:0] c_y__28;
|
|
reg [`BIT_WIDTH-1:0] c_y__29;
|
|
reg [`BIT_WIDTH-1:0] c_y__30;
|
|
reg [`BIT_WIDTH-1:0] c_y__31;
|
|
reg [`BIT_WIDTH-1:0] c_y__32;
|
|
reg [`BIT_WIDTH-1:0] c_y__33;
|
|
reg [`BIT_WIDTH-1:0] c_y__34;
|
|
reg [`BIT_WIDTH-1:0] c_y__35;
|
|
reg [`BIT_WIDTH-1:0] c_y__36;
|
|
reg [`BIT_WIDTH-1:0] c_y__37;
|
|
reg [`BIT_WIDTH-1:0] c_y__38;
|
|
reg [`BIT_WIDTH-1:0] c_y__39;
|
|
reg [`BIT_WIDTH-1:0] c_y__40;
|
|
reg [`BIT_WIDTH-1:0] c_y__41;
|
|
reg [`BIT_WIDTH-1:0] c_y__42;
|
|
reg [`BIT_WIDTH-1:0] c_y__43;
|
|
reg [`BIT_WIDTH-1:0] c_y__44;
|
|
reg [`BIT_WIDTH-1:0] c_y__45;
|
|
reg [`BIT_WIDTH-1:0] c_y__46;
|
|
reg [`BIT_WIDTH-1:0] c_y__47;
|
|
reg [`BIT_WIDTH-1:0] c_y__48;
|
|
reg [`BIT_WIDTH-1:0] c_y__49;
|
|
reg [`BIT_WIDTH-1:0] c_y__50;
|
|
reg [`BIT_WIDTH-1:0] c_y__51;
|
|
reg [`BIT_WIDTH-1:0] c_y__52;
|
|
reg [`BIT_WIDTH-1:0] c_y__53;
|
|
reg [`BIT_WIDTH-1:0] c_y__54;
|
|
reg [`BIT_WIDTH-1:0] c_y__55;
|
|
reg [`BIT_WIDTH-1:0] c_y__56;
|
|
reg [`BIT_WIDTH-1:0] c_y__57;
|
|
reg [`BIT_WIDTH-1:0] c_y__58;
|
|
reg [`BIT_WIDTH-1:0] c_y__59;
|
|
|
|
|
|
//reg [BIT_WIDTH-1:0] c_z [TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] c_z__0;
|
|
reg [`BIT_WIDTH-1:0] c_z__1;
|
|
reg [`BIT_WIDTH-1:0] c_z__2;
|
|
reg [`BIT_WIDTH-1:0] c_z__3;
|
|
reg [`BIT_WIDTH-1:0] c_z__4;
|
|
reg [`BIT_WIDTH-1:0] c_z__5;
|
|
reg [`BIT_WIDTH-1:0] c_z__6;
|
|
reg [`BIT_WIDTH-1:0] c_z__7;
|
|
reg [`BIT_WIDTH-1:0] c_z__8;
|
|
reg [`BIT_WIDTH-1:0] c_z__9;
|
|
reg [`BIT_WIDTH-1:0] c_z__10;
|
|
reg [`BIT_WIDTH-1:0] c_z__11;
|
|
reg [`BIT_WIDTH-1:0] c_z__12;
|
|
reg [`BIT_WIDTH-1:0] c_z__13;
|
|
reg [`BIT_WIDTH-1:0] c_z__14;
|
|
reg [`BIT_WIDTH-1:0] c_z__15;
|
|
reg [`BIT_WIDTH-1:0] c_z__16;
|
|
reg [`BIT_WIDTH-1:0] c_z__17;
|
|
reg [`BIT_WIDTH-1:0] c_z__18;
|
|
reg [`BIT_WIDTH-1:0] c_z__19;
|
|
reg [`BIT_WIDTH-1:0] c_z__20;
|
|
reg [`BIT_WIDTH-1:0] c_z__21;
|
|
reg [`BIT_WIDTH-1:0] c_z__22;
|
|
reg [`BIT_WIDTH-1:0] c_z__23;
|
|
reg [`BIT_WIDTH-1:0] c_z__24;
|
|
reg [`BIT_WIDTH-1:0] c_z__25;
|
|
reg [`BIT_WIDTH-1:0] c_z__26;
|
|
reg [`BIT_WIDTH-1:0] c_z__27;
|
|
reg [`BIT_WIDTH-1:0] c_z__28;
|
|
reg [`BIT_WIDTH-1:0] c_z__29;
|
|
reg [`BIT_WIDTH-1:0] c_z__30;
|
|
reg [`BIT_WIDTH-1:0] c_z__31;
|
|
reg [`BIT_WIDTH-1:0] c_z__32;
|
|
reg [`BIT_WIDTH-1:0] c_z__33;
|
|
reg [`BIT_WIDTH-1:0] c_z__34;
|
|
reg [`BIT_WIDTH-1:0] c_z__35;
|
|
reg [`BIT_WIDTH-1:0] c_z__36;
|
|
reg [`BIT_WIDTH-1:0] c_z__37;
|
|
reg [`BIT_WIDTH-1:0] c_z__38;
|
|
reg [`BIT_WIDTH-1:0] c_z__39;
|
|
reg [`BIT_WIDTH-1:0] c_z__40;
|
|
reg [`BIT_WIDTH-1:0] c_z__41;
|
|
reg [`BIT_WIDTH-1:0] c_z__42;
|
|
reg [`BIT_WIDTH-1:0] c_z__43;
|
|
reg [`BIT_WIDTH-1:0] c_z__44;
|
|
reg [`BIT_WIDTH-1:0] c_z__45;
|
|
reg [`BIT_WIDTH-1:0] c_z__46;
|
|
reg [`BIT_WIDTH-1:0] c_z__47;
|
|
reg [`BIT_WIDTH-1:0] c_z__48;
|
|
reg [`BIT_WIDTH-1:0] c_z__49;
|
|
reg [`BIT_WIDTH-1:0] c_z__50;
|
|
reg [`BIT_WIDTH-1:0] c_z__51;
|
|
reg [`BIT_WIDTH-1:0] c_z__52;
|
|
reg [`BIT_WIDTH-1:0] c_z__53;
|
|
reg [`BIT_WIDTH-1:0] c_z__54;
|
|
reg [`BIT_WIDTH-1:0] c_z__55;
|
|
reg [`BIT_WIDTH-1:0] c_z__56;
|
|
reg [`BIT_WIDTH-1:0] c_z__57;
|
|
reg [`BIT_WIDTH-1:0] c_z__58;
|
|
reg [`BIT_WIDTH-1:0] c_z__59;
|
|
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] c_ux [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_ux__0;
|
|
reg [`BIT_WIDTH-1:0] c_ux__1;
|
|
reg [`BIT_WIDTH-1:0] c_ux__2;
|
|
reg [`BIT_WIDTH-1:0] c_ux__3;
|
|
reg [`BIT_WIDTH-1:0] c_ux__4;
|
|
reg [`BIT_WIDTH-1:0] c_ux__5;
|
|
reg [`BIT_WIDTH-1:0] c_ux__6;
|
|
reg [`BIT_WIDTH-1:0] c_ux__7;
|
|
reg [`BIT_WIDTH-1:0] c_ux__8;
|
|
reg [`BIT_WIDTH-1:0] c_ux__9;
|
|
reg [`BIT_WIDTH-1:0] c_ux__10;
|
|
reg [`BIT_WIDTH-1:0] c_ux__11;
|
|
reg [`BIT_WIDTH-1:0] c_ux__12;
|
|
reg [`BIT_WIDTH-1:0] c_ux__13;
|
|
reg [`BIT_WIDTH-1:0] c_ux__14;
|
|
reg [`BIT_WIDTH-1:0] c_ux__15;
|
|
reg [`BIT_WIDTH-1:0] c_ux__16;
|
|
reg [`BIT_WIDTH-1:0] c_ux__17;
|
|
reg [`BIT_WIDTH-1:0] c_ux__18;
|
|
reg [`BIT_WIDTH-1:0] c_ux__19;
|
|
reg [`BIT_WIDTH-1:0] c_ux__20;
|
|
reg [`BIT_WIDTH-1:0] c_ux__21;
|
|
reg [`BIT_WIDTH-1:0] c_ux__22;
|
|
reg [`BIT_WIDTH-1:0] c_ux__23;
|
|
reg [`BIT_WIDTH-1:0] c_ux__24;
|
|
reg [`BIT_WIDTH-1:0] c_ux__25;
|
|
reg [`BIT_WIDTH-1:0] c_ux__26;
|
|
reg [`BIT_WIDTH-1:0] c_ux__27;
|
|
reg [`BIT_WIDTH-1:0] c_ux__28;
|
|
reg [`BIT_WIDTH-1:0] c_ux__29;
|
|
reg [`BIT_WIDTH-1:0] c_ux__30;
|
|
reg [`BIT_WIDTH-1:0] c_ux__31;
|
|
reg [`BIT_WIDTH-1:0] c_ux__32;
|
|
reg [`BIT_WIDTH-1:0] c_ux__33;
|
|
reg [`BIT_WIDTH-1:0] c_ux__34;
|
|
reg [`BIT_WIDTH-1:0] c_ux__35;
|
|
reg [`BIT_WIDTH-1:0] c_ux__36;
|
|
reg [`BIT_WIDTH-1:0] c_ux__37;
|
|
reg [`BIT_WIDTH-1:0] c_ux__38;
|
|
reg [`BIT_WIDTH-1:0] c_ux__39;
|
|
reg [`BIT_WIDTH-1:0] c_ux__40;
|
|
reg [`BIT_WIDTH-1:0] c_ux__41;
|
|
reg [`BIT_WIDTH-1:0] c_ux__42;
|
|
reg [`BIT_WIDTH-1:0] c_ux__43;
|
|
reg [`BIT_WIDTH-1:0] c_ux__44;
|
|
reg [`BIT_WIDTH-1:0] c_ux__45;
|
|
reg [`BIT_WIDTH-1:0] c_ux__46;
|
|
reg [`BIT_WIDTH-1:0] c_ux__47;
|
|
reg [`BIT_WIDTH-1:0] c_ux__48;
|
|
reg [`BIT_WIDTH-1:0] c_ux__49;
|
|
reg [`BIT_WIDTH-1:0] c_ux__50;
|
|
reg [`BIT_WIDTH-1:0] c_ux__51;
|
|
reg [`BIT_WIDTH-1:0] c_ux__52;
|
|
reg [`BIT_WIDTH-1:0] c_ux__53;
|
|
reg [`BIT_WIDTH-1:0] c_ux__54;
|
|
reg [`BIT_WIDTH-1:0] c_ux__55;
|
|
reg [`BIT_WIDTH-1:0] c_ux__56;
|
|
reg [`BIT_WIDTH-1:0] c_ux__57;
|
|
reg [`BIT_WIDTH-1:0] c_ux__58;
|
|
reg [`BIT_WIDTH-1:0] c_ux__59;
|
|
//reg [`BIT_WIDTH-1:0] c_uy [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_uy__0;
|
|
reg [`BIT_WIDTH-1:0] c_uy__1;
|
|
reg [`BIT_WIDTH-1:0] c_uy__2;
|
|
reg [`BIT_WIDTH-1:0] c_uy__3;
|
|
reg [`BIT_WIDTH-1:0] c_uy__4;
|
|
reg [`BIT_WIDTH-1:0] c_uy__5;
|
|
reg [`BIT_WIDTH-1:0] c_uy__6;
|
|
reg [`BIT_WIDTH-1:0] c_uy__7;
|
|
reg [`BIT_WIDTH-1:0] c_uy__8;
|
|
reg [`BIT_WIDTH-1:0] c_uy__9;
|
|
reg [`BIT_WIDTH-1:0] c_uy__10;
|
|
reg [`BIT_WIDTH-1:0] c_uy__11;
|
|
reg [`BIT_WIDTH-1:0] c_uy__12;
|
|
reg [`BIT_WIDTH-1:0] c_uy__13;
|
|
reg [`BIT_WIDTH-1:0] c_uy__14;
|
|
reg [`BIT_WIDTH-1:0] c_uy__15;
|
|
reg [`BIT_WIDTH-1:0] c_uy__16;
|
|
reg [`BIT_WIDTH-1:0] c_uy__17;
|
|
reg [`BIT_WIDTH-1:0] c_uy__18;
|
|
reg [`BIT_WIDTH-1:0] c_uy__19;
|
|
reg [`BIT_WIDTH-1:0] c_uy__20;
|
|
reg [`BIT_WIDTH-1:0] c_uy__21;
|
|
reg [`BIT_WIDTH-1:0] c_uy__22;
|
|
reg [`BIT_WIDTH-1:0] c_uy__23;
|
|
reg [`BIT_WIDTH-1:0] c_uy__24;
|
|
reg [`BIT_WIDTH-1:0] c_uy__25;
|
|
reg [`BIT_WIDTH-1:0] c_uy__26;
|
|
reg [`BIT_WIDTH-1:0] c_uy__27;
|
|
reg [`BIT_WIDTH-1:0] c_uy__28;
|
|
reg [`BIT_WIDTH-1:0] c_uy__29;
|
|
reg [`BIT_WIDTH-1:0] c_uy__30;
|
|
reg [`BIT_WIDTH-1:0] c_uy__31;
|
|
reg [`BIT_WIDTH-1:0] c_uy__32;
|
|
reg [`BIT_WIDTH-1:0] c_uy__33;
|
|
reg [`BIT_WIDTH-1:0] c_uy__34;
|
|
reg [`BIT_WIDTH-1:0] c_uy__35;
|
|
reg [`BIT_WIDTH-1:0] c_uy__36;
|
|
reg [`BIT_WIDTH-1:0] c_uy__37;
|
|
reg [`BIT_WIDTH-1:0] c_uy__38;
|
|
reg [`BIT_WIDTH-1:0] c_uy__39;
|
|
reg [`BIT_WIDTH-1:0] c_uy__40;
|
|
reg [`BIT_WIDTH-1:0] c_uy__41;
|
|
reg [`BIT_WIDTH-1:0] c_uy__42;
|
|
reg [`BIT_WIDTH-1:0] c_uy__43;
|
|
reg [`BIT_WIDTH-1:0] c_uy__44;
|
|
reg [`BIT_WIDTH-1:0] c_uy__45;
|
|
reg [`BIT_WIDTH-1:0] c_uy__46;
|
|
reg [`BIT_WIDTH-1:0] c_uy__47;
|
|
reg [`BIT_WIDTH-1:0] c_uy__48;
|
|
reg [`BIT_WIDTH-1:0] c_uy__49;
|
|
reg [`BIT_WIDTH-1:0] c_uy__50;
|
|
reg [`BIT_WIDTH-1:0] c_uy__51;
|
|
reg [`BIT_WIDTH-1:0] c_uy__52;
|
|
reg [`BIT_WIDTH-1:0] c_uy__53;
|
|
reg [`BIT_WIDTH-1:0] c_uy__54;
|
|
reg [`BIT_WIDTH-1:0] c_uy__55;
|
|
reg [`BIT_WIDTH-1:0] c_uy__56;
|
|
reg [`BIT_WIDTH-1:0] c_uy__57;
|
|
reg [`BIT_WIDTH-1:0] c_uy__58;
|
|
reg [`BIT_WIDTH-1:0] c_uy__59;
|
|
//reg [`BIT_WIDTH-1:0] c_uz [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_uz__0;
|
|
reg [`BIT_WIDTH-1:0] c_uz__1;
|
|
reg [`BIT_WIDTH-1:0] c_uz__2;
|
|
reg [`BIT_WIDTH-1:0] c_uz__3;
|
|
reg [`BIT_WIDTH-1:0] c_uz__4;
|
|
reg [`BIT_WIDTH-1:0] c_uz__5;
|
|
reg [`BIT_WIDTH-1:0] c_uz__6;
|
|
reg [`BIT_WIDTH-1:0] c_uz__7;
|
|
reg [`BIT_WIDTH-1:0] c_uz__8;
|
|
reg [`BIT_WIDTH-1:0] c_uz__9;
|
|
reg [`BIT_WIDTH-1:0] c_uz__10;
|
|
reg [`BIT_WIDTH-1:0] c_uz__11;
|
|
reg [`BIT_WIDTH-1:0] c_uz__12;
|
|
reg [`BIT_WIDTH-1:0] c_uz__13;
|
|
reg [`BIT_WIDTH-1:0] c_uz__14;
|
|
reg [`BIT_WIDTH-1:0] c_uz__15;
|
|
reg [`BIT_WIDTH-1:0] c_uz__16;
|
|
reg [`BIT_WIDTH-1:0] c_uz__17;
|
|
reg [`BIT_WIDTH-1:0] c_uz__18;
|
|
reg [`BIT_WIDTH-1:0] c_uz__19;
|
|
reg [`BIT_WIDTH-1:0] c_uz__20;
|
|
reg [`BIT_WIDTH-1:0] c_uz__21;
|
|
reg [`BIT_WIDTH-1:0] c_uz__22;
|
|
reg [`BIT_WIDTH-1:0] c_uz__23;
|
|
reg [`BIT_WIDTH-1:0] c_uz__24;
|
|
reg [`BIT_WIDTH-1:0] c_uz__25;
|
|
reg [`BIT_WIDTH-1:0] c_uz__26;
|
|
reg [`BIT_WIDTH-1:0] c_uz__27;
|
|
reg [`BIT_WIDTH-1:0] c_uz__28;
|
|
reg [`BIT_WIDTH-1:0] c_uz__29;
|
|
reg [`BIT_WIDTH-1:0] c_uz__30;
|
|
reg [`BIT_WIDTH-1:0] c_uz__31;
|
|
reg [`BIT_WIDTH-1:0] c_uz__32;
|
|
reg [`BIT_WIDTH-1:0] c_uz__33;
|
|
reg [`BIT_WIDTH-1:0] c_uz__34;
|
|
reg [`BIT_WIDTH-1:0] c_uz__35;
|
|
reg [`BIT_WIDTH-1:0] c_uz__36;
|
|
reg [`BIT_WIDTH-1:0] c_uz__37;
|
|
reg [`BIT_WIDTH-1:0] c_uz__38;
|
|
reg [`BIT_WIDTH-1:0] c_uz__39;
|
|
reg [`BIT_WIDTH-1:0] c_uz__40;
|
|
reg [`BIT_WIDTH-1:0] c_uz__41;
|
|
reg [`BIT_WIDTH-1:0] c_uz__42;
|
|
reg [`BIT_WIDTH-1:0] c_uz__43;
|
|
reg [`BIT_WIDTH-1:0] c_uz__44;
|
|
reg [`BIT_WIDTH-1:0] c_uz__45;
|
|
reg [`BIT_WIDTH-1:0] c_uz__46;
|
|
reg [`BIT_WIDTH-1:0] c_uz__47;
|
|
reg [`BIT_WIDTH-1:0] c_uz__48;
|
|
reg [`BIT_WIDTH-1:0] c_uz__49;
|
|
reg [`BIT_WIDTH-1:0] c_uz__50;
|
|
reg [`BIT_WIDTH-1:0] c_uz__51;
|
|
reg [`BIT_WIDTH-1:0] c_uz__52;
|
|
reg [`BIT_WIDTH-1:0] c_uz__53;
|
|
reg [`BIT_WIDTH-1:0] c_uz__54;
|
|
reg [`BIT_WIDTH-1:0] c_uz__55;
|
|
reg [`BIT_WIDTH-1:0] c_uz__56;
|
|
reg [`BIT_WIDTH-1:0] c_uz__57;
|
|
reg [`BIT_WIDTH-1:0] c_uz__58;
|
|
reg [`BIT_WIDTH-1:0] c_uz__59;
|
|
//reg [`BIT_WIDTH-1:0] c_sz [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_sz__0;
|
|
reg [`BIT_WIDTH-1:0] c_sz__1;
|
|
reg [`BIT_WIDTH-1:0] c_sz__2;
|
|
reg [`BIT_WIDTH-1:0] c_sz__3;
|
|
reg [`BIT_WIDTH-1:0] c_sz__4;
|
|
reg [`BIT_WIDTH-1:0] c_sz__5;
|
|
reg [`BIT_WIDTH-1:0] c_sz__6;
|
|
reg [`BIT_WIDTH-1:0] c_sz__7;
|
|
reg [`BIT_WIDTH-1:0] c_sz__8;
|
|
reg [`BIT_WIDTH-1:0] c_sz__9;
|
|
reg [`BIT_WIDTH-1:0] c_sz__10;
|
|
reg [`BIT_WIDTH-1:0] c_sz__11;
|
|
reg [`BIT_WIDTH-1:0] c_sz__12;
|
|
reg [`BIT_WIDTH-1:0] c_sz__13;
|
|
reg [`BIT_WIDTH-1:0] c_sz__14;
|
|
reg [`BIT_WIDTH-1:0] c_sz__15;
|
|
reg [`BIT_WIDTH-1:0] c_sz__16;
|
|
reg [`BIT_WIDTH-1:0] c_sz__17;
|
|
reg [`BIT_WIDTH-1:0] c_sz__18;
|
|
reg [`BIT_WIDTH-1:0] c_sz__19;
|
|
reg [`BIT_WIDTH-1:0] c_sz__20;
|
|
reg [`BIT_WIDTH-1:0] c_sz__21;
|
|
reg [`BIT_WIDTH-1:0] c_sz__22;
|
|
reg [`BIT_WIDTH-1:0] c_sz__23;
|
|
reg [`BIT_WIDTH-1:0] c_sz__24;
|
|
reg [`BIT_WIDTH-1:0] c_sz__25;
|
|
reg [`BIT_WIDTH-1:0] c_sz__26;
|
|
reg [`BIT_WIDTH-1:0] c_sz__27;
|
|
reg [`BIT_WIDTH-1:0] c_sz__28;
|
|
reg [`BIT_WIDTH-1:0] c_sz__29;
|
|
reg [`BIT_WIDTH-1:0] c_sz__30;
|
|
reg [`BIT_WIDTH-1:0] c_sz__31;
|
|
reg [`BIT_WIDTH-1:0] c_sz__32;
|
|
reg [`BIT_WIDTH-1:0] c_sz__33;
|
|
reg [`BIT_WIDTH-1:0] c_sz__34;
|
|
reg [`BIT_WIDTH-1:0] c_sz__35;
|
|
reg [`BIT_WIDTH-1:0] c_sz__36;
|
|
reg [`BIT_WIDTH-1:0] c_sz__37;
|
|
reg [`BIT_WIDTH-1:0] c_sz__38;
|
|
reg [`BIT_WIDTH-1:0] c_sz__39;
|
|
reg [`BIT_WIDTH-1:0] c_sz__40;
|
|
reg [`BIT_WIDTH-1:0] c_sz__41;
|
|
reg [`BIT_WIDTH-1:0] c_sz__42;
|
|
reg [`BIT_WIDTH-1:0] c_sz__43;
|
|
reg [`BIT_WIDTH-1:0] c_sz__44;
|
|
reg [`BIT_WIDTH-1:0] c_sz__45;
|
|
reg [`BIT_WIDTH-1:0] c_sz__46;
|
|
reg [`BIT_WIDTH-1:0] c_sz__47;
|
|
reg [`BIT_WIDTH-1:0] c_sz__48;
|
|
reg [`BIT_WIDTH-1:0] c_sz__49;
|
|
reg [`BIT_WIDTH-1:0] c_sz__50;
|
|
reg [`BIT_WIDTH-1:0] c_sz__51;
|
|
reg [`BIT_WIDTH-1:0] c_sz__52;
|
|
reg [`BIT_WIDTH-1:0] c_sz__53;
|
|
reg [`BIT_WIDTH-1:0] c_sz__54;
|
|
reg [`BIT_WIDTH-1:0] c_sz__55;
|
|
reg [`BIT_WIDTH-1:0] c_sz__56;
|
|
reg [`BIT_WIDTH-1:0] c_sz__57;
|
|
reg [`BIT_WIDTH-1:0] c_sz__58;
|
|
reg [`BIT_WIDTH-1:0] c_sz__59;
|
|
//reg [`BIT_WIDTH-1:0] c_sr [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_sr__0;
|
|
reg [`BIT_WIDTH-1:0] c_sr__1;
|
|
reg [`BIT_WIDTH-1:0] c_sr__2;
|
|
reg [`BIT_WIDTH-1:0] c_sr__3;
|
|
reg [`BIT_WIDTH-1:0] c_sr__4;
|
|
reg [`BIT_WIDTH-1:0] c_sr__5;
|
|
reg [`BIT_WIDTH-1:0] c_sr__6;
|
|
reg [`BIT_WIDTH-1:0] c_sr__7;
|
|
reg [`BIT_WIDTH-1:0] c_sr__8;
|
|
reg [`BIT_WIDTH-1:0] c_sr__9;
|
|
reg [`BIT_WIDTH-1:0] c_sr__10;
|
|
reg [`BIT_WIDTH-1:0] c_sr__11;
|
|
reg [`BIT_WIDTH-1:0] c_sr__12;
|
|
reg [`BIT_WIDTH-1:0] c_sr__13;
|
|
reg [`BIT_WIDTH-1:0] c_sr__14;
|
|
reg [`BIT_WIDTH-1:0] c_sr__15;
|
|
reg [`BIT_WIDTH-1:0] c_sr__16;
|
|
reg [`BIT_WIDTH-1:0] c_sr__17;
|
|
reg [`BIT_WIDTH-1:0] c_sr__18;
|
|
reg [`BIT_WIDTH-1:0] c_sr__19;
|
|
reg [`BIT_WIDTH-1:0] c_sr__20;
|
|
reg [`BIT_WIDTH-1:0] c_sr__21;
|
|
reg [`BIT_WIDTH-1:0] c_sr__22;
|
|
reg [`BIT_WIDTH-1:0] c_sr__23;
|
|
reg [`BIT_WIDTH-1:0] c_sr__24;
|
|
reg [`BIT_WIDTH-1:0] c_sr__25;
|
|
reg [`BIT_WIDTH-1:0] c_sr__26;
|
|
reg [`BIT_WIDTH-1:0] c_sr__27;
|
|
reg [`BIT_WIDTH-1:0] c_sr__28;
|
|
reg [`BIT_WIDTH-1:0] c_sr__29;
|
|
reg [`BIT_WIDTH-1:0] c_sr__30;
|
|
reg [`BIT_WIDTH-1:0] c_sr__31;
|
|
reg [`BIT_WIDTH-1:0] c_sr__32;
|
|
reg [`BIT_WIDTH-1:0] c_sr__33;
|
|
reg [`BIT_WIDTH-1:0] c_sr__34;
|
|
reg [`BIT_WIDTH-1:0] c_sr__35;
|
|
reg [`BIT_WIDTH-1:0] c_sr__36;
|
|
reg [`BIT_WIDTH-1:0] c_sr__37;
|
|
reg [`BIT_WIDTH-1:0] c_sr__38;
|
|
reg [`BIT_WIDTH-1:0] c_sr__39;
|
|
reg [`BIT_WIDTH-1:0] c_sr__40;
|
|
reg [`BIT_WIDTH-1:0] c_sr__41;
|
|
reg [`BIT_WIDTH-1:0] c_sr__42;
|
|
reg [`BIT_WIDTH-1:0] c_sr__43;
|
|
reg [`BIT_WIDTH-1:0] c_sr__44;
|
|
reg [`BIT_WIDTH-1:0] c_sr__45;
|
|
reg [`BIT_WIDTH-1:0] c_sr__46;
|
|
reg [`BIT_WIDTH-1:0] c_sr__47;
|
|
reg [`BIT_WIDTH-1:0] c_sr__48;
|
|
reg [`BIT_WIDTH-1:0] c_sr__49;
|
|
reg [`BIT_WIDTH-1:0] c_sr__50;
|
|
reg [`BIT_WIDTH-1:0] c_sr__51;
|
|
reg [`BIT_WIDTH-1:0] c_sr__52;
|
|
reg [`BIT_WIDTH-1:0] c_sr__53;
|
|
reg [`BIT_WIDTH-1:0] c_sr__54;
|
|
reg [`BIT_WIDTH-1:0] c_sr__55;
|
|
reg [`BIT_WIDTH-1:0] c_sr__56;
|
|
reg [`BIT_WIDTH-1:0] c_sr__57;
|
|
reg [`BIT_WIDTH-1:0] c_sr__58;
|
|
reg [`BIT_WIDTH-1:0] c_sr__59;
|
|
//reg [`BIT_WIDTH-1:0] c_sleftz [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__0;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__1;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__2;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__3;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__4;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__5;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__6;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__7;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__8;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__9;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__10;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__11;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__12;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__13;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__14;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__15;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__16;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__17;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__18;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__19;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__20;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__21;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__22;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__23;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__24;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__25;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__26;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__27;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__28;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__29;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__30;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__31;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__32;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__33;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__34;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__35;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__36;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__37;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__38;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__39;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__40;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__41;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__42;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__43;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__44;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__45;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__46;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__47;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__48;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__49;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__50;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__51;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__52;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__53;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__54;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__55;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__56;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__57;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__58;
|
|
reg [`BIT_WIDTH-1:0] c_sleftz__59;
|
|
//reg [`BIT_WIDTH-1:0] c_sleftr [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__0;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__1;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__2;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__3;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__4;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__5;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__6;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__7;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__8;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__9;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__10;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__11;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__12;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__13;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__14;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__15;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__16;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__17;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__18;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__19;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__20;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__21;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__22;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__23;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__24;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__25;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__26;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__27;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__28;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__29;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__30;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__31;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__32;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__33;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__34;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__35;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__36;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__37;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__38;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__39;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__40;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__41;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__42;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__43;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__44;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__45;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__46;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__47;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__48;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__49;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__50;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__51;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__52;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__53;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__54;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__55;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__56;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__57;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__58;
|
|
reg [`BIT_WIDTH-1:0] c_sleftr__59;
|
|
//reg [`BIT_WIDTH-1:0] c_weight [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_weight__0;
|
|
reg [`BIT_WIDTH-1:0] c_weight__1;
|
|
reg [`BIT_WIDTH-1:0] c_weight__2;
|
|
reg [`BIT_WIDTH-1:0] c_weight__3;
|
|
reg [`BIT_WIDTH-1:0] c_weight__4;
|
|
reg [`BIT_WIDTH-1:0] c_weight__5;
|
|
reg [`BIT_WIDTH-1:0] c_weight__6;
|
|
reg [`BIT_WIDTH-1:0] c_weight__7;
|
|
reg [`BIT_WIDTH-1:0] c_weight__8;
|
|
reg [`BIT_WIDTH-1:0] c_weight__9;
|
|
reg [`BIT_WIDTH-1:0] c_weight__10;
|
|
reg [`BIT_WIDTH-1:0] c_weight__11;
|
|
reg [`BIT_WIDTH-1:0] c_weight__12;
|
|
reg [`BIT_WIDTH-1:0] c_weight__13;
|
|
reg [`BIT_WIDTH-1:0] c_weight__14;
|
|
reg [`BIT_WIDTH-1:0] c_weight__15;
|
|
reg [`BIT_WIDTH-1:0] c_weight__16;
|
|
reg [`BIT_WIDTH-1:0] c_weight__17;
|
|
reg [`BIT_WIDTH-1:0] c_weight__18;
|
|
reg [`BIT_WIDTH-1:0] c_weight__19;
|
|
reg [`BIT_WIDTH-1:0] c_weight__20;
|
|
reg [`BIT_WIDTH-1:0] c_weight__21;
|
|
reg [`BIT_WIDTH-1:0] c_weight__22;
|
|
reg [`BIT_WIDTH-1:0] c_weight__23;
|
|
reg [`BIT_WIDTH-1:0] c_weight__24;
|
|
reg [`BIT_WIDTH-1:0] c_weight__25;
|
|
reg [`BIT_WIDTH-1:0] c_weight__26;
|
|
reg [`BIT_WIDTH-1:0] c_weight__27;
|
|
reg [`BIT_WIDTH-1:0] c_weight__28;
|
|
reg [`BIT_WIDTH-1:0] c_weight__29;
|
|
reg [`BIT_WIDTH-1:0] c_weight__30;
|
|
reg [`BIT_WIDTH-1:0] c_weight__31;
|
|
reg [`BIT_WIDTH-1:0] c_weight__32;
|
|
reg [`BIT_WIDTH-1:0] c_weight__33;
|
|
reg [`BIT_WIDTH-1:0] c_weight__34;
|
|
reg [`BIT_WIDTH-1:0] c_weight__35;
|
|
reg [`BIT_WIDTH-1:0] c_weight__36;
|
|
reg [`BIT_WIDTH-1:0] c_weight__37;
|
|
reg [`BIT_WIDTH-1:0] c_weight__38;
|
|
reg [`BIT_WIDTH-1:0] c_weight__39;
|
|
reg [`BIT_WIDTH-1:0] c_weight__40;
|
|
reg [`BIT_WIDTH-1:0] c_weight__41;
|
|
reg [`BIT_WIDTH-1:0] c_weight__42;
|
|
reg [`BIT_WIDTH-1:0] c_weight__43;
|
|
reg [`BIT_WIDTH-1:0] c_weight__44;
|
|
reg [`BIT_WIDTH-1:0] c_weight__45;
|
|
reg [`BIT_WIDTH-1:0] c_weight__46;
|
|
reg [`BIT_WIDTH-1:0] c_weight__47;
|
|
reg [`BIT_WIDTH-1:0] c_weight__48;
|
|
reg [`BIT_WIDTH-1:0] c_weight__49;
|
|
reg [`BIT_WIDTH-1:0] c_weight__50;
|
|
reg [`BIT_WIDTH-1:0] c_weight__51;
|
|
reg [`BIT_WIDTH-1:0] c_weight__52;
|
|
reg [`BIT_WIDTH-1:0] c_weight__53;
|
|
reg [`BIT_WIDTH-1:0] c_weight__54;
|
|
reg [`BIT_WIDTH-1:0] c_weight__55;
|
|
reg [`BIT_WIDTH-1:0] c_weight__56;
|
|
reg [`BIT_WIDTH-1:0] c_weight__57;
|
|
reg [`BIT_WIDTH-1:0] c_weight__58;
|
|
reg [`BIT_WIDTH-1:0] c_weight__59;
|
|
|
|
//reg [`LAYER_WIDTH-1:0] c_layer [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`LAYER_WIDTH-1:0] c_layer__0;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__1;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__2;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__3;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__4;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__5;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__6;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__7;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__8;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__9;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__10;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__11;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__12;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__13;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__14;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__15;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__16;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__17;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__18;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__19;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__20;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__21;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__22;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__23;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__24;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__25;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__26;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__27;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__28;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__29;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__30;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__31;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__32;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__33;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__34;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__35;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__36;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__37;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__38;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__39;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__40;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__41;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__42;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__43;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__44;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__45;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__46;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__47;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__48;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__49;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__50;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__51;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__52;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__53;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__54;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__55;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__56;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__57;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__58;
|
|
reg [`LAYER_WIDTH-1:0] c_layer__59;
|
|
|
|
|
|
|
|
//reg c_dead [TOTAL_LATENCY - 1:0];
|
|
|
|
reg c_dead__0;
|
|
reg c_dead__1;
|
|
reg c_dead__2;
|
|
reg c_dead__3;
|
|
reg c_dead__4;
|
|
reg c_dead__5;
|
|
reg c_dead__6;
|
|
reg c_dead__7;
|
|
reg c_dead__8;
|
|
reg c_dead__9;
|
|
reg c_dead__10;
|
|
reg c_dead__11;
|
|
reg c_dead__12;
|
|
reg c_dead__13;
|
|
reg c_dead__14;
|
|
reg c_dead__15;
|
|
reg c_dead__16;
|
|
reg c_dead__17;
|
|
reg c_dead__18;
|
|
reg c_dead__19;
|
|
reg c_dead__20;
|
|
reg c_dead__21;
|
|
reg c_dead__22;
|
|
reg c_dead__23;
|
|
reg c_dead__24;
|
|
reg c_dead__25;
|
|
reg c_dead__26;
|
|
reg c_dead__27;
|
|
reg c_dead__28;
|
|
reg c_dead__29;
|
|
reg c_dead__30;
|
|
reg c_dead__31;
|
|
reg c_dead__32;
|
|
reg c_dead__33;
|
|
reg c_dead__34;
|
|
reg c_dead__35;
|
|
reg c_dead__36;
|
|
reg c_dead__37;
|
|
reg c_dead__38;
|
|
reg c_dead__39;
|
|
reg c_dead__40;
|
|
reg c_dead__41;
|
|
reg c_dead__42;
|
|
reg c_dead__43;
|
|
reg c_dead__44;
|
|
reg c_dead__45;
|
|
reg c_dead__46;
|
|
reg c_dead__47;
|
|
reg c_dead__48;
|
|
reg c_dead__49;
|
|
reg c_dead__50;
|
|
reg c_dead__51;
|
|
reg c_dead__52;
|
|
reg c_dead__53;
|
|
reg c_dead__54;
|
|
reg c_dead__55;
|
|
reg c_dead__56;
|
|
reg c_dead__57;
|
|
reg c_dead__58;
|
|
reg c_dead__59;
|
|
|
|
|
|
//reg c_hit [TOTAL_LATENCY - 1:0];
|
|
|
|
reg c_hit__0;
|
|
reg c_hit__1;
|
|
reg c_hit__2;
|
|
reg c_hit__3;
|
|
reg c_hit__4;
|
|
reg c_hit__5;
|
|
reg c_hit__6;
|
|
reg c_hit__7;
|
|
reg c_hit__8;
|
|
reg c_hit__9;
|
|
reg c_hit__10;
|
|
reg c_hit__11;
|
|
reg c_hit__12;
|
|
reg c_hit__13;
|
|
reg c_hit__14;
|
|
reg c_hit__15;
|
|
reg c_hit__16;
|
|
reg c_hit__17;
|
|
reg c_hit__18;
|
|
reg c_hit__19;
|
|
reg c_hit__20;
|
|
reg c_hit__21;
|
|
reg c_hit__22;
|
|
reg c_hit__23;
|
|
reg c_hit__24;
|
|
reg c_hit__25;
|
|
reg c_hit__26;
|
|
reg c_hit__27;
|
|
reg c_hit__28;
|
|
reg c_hit__29;
|
|
reg c_hit__30;
|
|
reg c_hit__31;
|
|
reg c_hit__32;
|
|
reg c_hit__33;
|
|
reg c_hit__34;
|
|
reg c_hit__35;
|
|
reg c_hit__36;
|
|
reg c_hit__37;
|
|
reg c_hit__38;
|
|
reg c_hit__39;
|
|
reg c_hit__40;
|
|
reg c_hit__41;
|
|
reg c_hit__42;
|
|
reg c_hit__43;
|
|
reg c_hit__44;
|
|
reg c_hit__45;
|
|
reg c_hit__46;
|
|
reg c_hit__47;
|
|
reg c_hit__48;
|
|
reg c_hit__49;
|
|
reg c_hit__50;
|
|
reg c_hit__51;
|
|
reg c_hit__52;
|
|
reg c_hit__53;
|
|
reg c_hit__54;
|
|
reg c_hit__55;
|
|
reg c_hit__56;
|
|
reg c_hit__57;
|
|
reg c_hit__58;
|
|
reg c_hit__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] c_diff[TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] c_diff__0;
|
|
reg [`BIT_WIDTH-1:0] c_diff__1;
|
|
reg [`BIT_WIDTH-1:0] c_diff__2;
|
|
reg [`BIT_WIDTH-1:0] c_diff__3;
|
|
reg [`BIT_WIDTH-1:0] c_diff__4;
|
|
reg [`BIT_WIDTH-1:0] c_diff__5;
|
|
reg [`BIT_WIDTH-1:0] c_diff__6;
|
|
reg [`BIT_WIDTH-1:0] c_diff__7;
|
|
reg [`BIT_WIDTH-1:0] c_diff__8;
|
|
reg [`BIT_WIDTH-1:0] c_diff__9;
|
|
reg [`BIT_WIDTH-1:0] c_diff__10;
|
|
reg [`BIT_WIDTH-1:0] c_diff__11;
|
|
reg [`BIT_WIDTH-1:0] c_diff__12;
|
|
reg [`BIT_WIDTH-1:0] c_diff__13;
|
|
reg [`BIT_WIDTH-1:0] c_diff__14;
|
|
reg [`BIT_WIDTH-1:0] c_diff__15;
|
|
reg [`BIT_WIDTH-1:0] c_diff__16;
|
|
reg [`BIT_WIDTH-1:0] c_diff__17;
|
|
reg [`BIT_WIDTH-1:0] c_diff__18;
|
|
reg [`BIT_WIDTH-1:0] c_diff__19;
|
|
reg [`BIT_WIDTH-1:0] c_diff__20;
|
|
reg [`BIT_WIDTH-1:0] c_diff__21;
|
|
reg [`BIT_WIDTH-1:0] c_diff__22;
|
|
reg [`BIT_WIDTH-1:0] c_diff__23;
|
|
reg [`BIT_WIDTH-1:0] c_diff__24;
|
|
reg [`BIT_WIDTH-1:0] c_diff__25;
|
|
reg [`BIT_WIDTH-1:0] c_diff__26;
|
|
reg [`BIT_WIDTH-1:0] c_diff__27;
|
|
reg [`BIT_WIDTH-1:0] c_diff__28;
|
|
reg [`BIT_WIDTH-1:0] c_diff__29;
|
|
reg [`BIT_WIDTH-1:0] c_diff__30;
|
|
reg [`BIT_WIDTH-1:0] c_diff__31;
|
|
reg [`BIT_WIDTH-1:0] c_diff__32;
|
|
reg [`BIT_WIDTH-1:0] c_diff__33;
|
|
reg [`BIT_WIDTH-1:0] c_diff__34;
|
|
reg [`BIT_WIDTH-1:0] c_diff__35;
|
|
reg [`BIT_WIDTH-1:0] c_diff__36;
|
|
reg [`BIT_WIDTH-1:0] c_diff__37;
|
|
reg [`BIT_WIDTH-1:0] c_diff__38;
|
|
reg [`BIT_WIDTH-1:0] c_diff__39;
|
|
reg [`BIT_WIDTH-1:0] c_diff__40;
|
|
reg [`BIT_WIDTH-1:0] c_diff__41;
|
|
reg [`BIT_WIDTH-1:0] c_diff__42;
|
|
reg [`BIT_WIDTH-1:0] c_diff__43;
|
|
reg [`BIT_WIDTH-1:0] c_diff__44;
|
|
reg [`BIT_WIDTH-1:0] c_diff__45;
|
|
reg [`BIT_WIDTH-1:0] c_diff__46;
|
|
reg [`BIT_WIDTH-1:0] c_diff__47;
|
|
reg [`BIT_WIDTH-1:0] c_diff__48;
|
|
reg [`BIT_WIDTH-1:0] c_diff__49;
|
|
reg [`BIT_WIDTH-1:0] c_diff__50;
|
|
reg [`BIT_WIDTH-1:0] c_diff__51;
|
|
reg [`BIT_WIDTH-1:0] c_diff__52;
|
|
reg [`BIT_WIDTH-1:0] c_diff__53;
|
|
reg [`BIT_WIDTH-1:0] c_diff__54;
|
|
reg [`BIT_WIDTH-1:0] c_diff__55;
|
|
reg [`BIT_WIDTH-1:0] c_diff__56;
|
|
reg [`BIT_WIDTH-1:0] c_diff__57;
|
|
reg [`BIT_WIDTH-1:0] c_diff__58;
|
|
reg [`BIT_WIDTH-1:0] c_diff__59;
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] c_dl_b[TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__0;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__1;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__2;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__3;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__4;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__5;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__6;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__7;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__8;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__9;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__10;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__11;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__12;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__13;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__14;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__15;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__16;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__17;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__18;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__19;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__20;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__21;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__22;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__23;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__24;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__25;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__26;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__27;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__28;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__29;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__30;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__31;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__32;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__33;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__34;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__35;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__36;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__37;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__38;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__39;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__40;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__41;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__42;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__43;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__44;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__45;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__46;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__47;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__48;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__49;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__50;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__51;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__52;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__53;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__54;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__55;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__56;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__57;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__58;
|
|
reg [`BIT_WIDTH-1:0] c_dl_b__59;
|
|
|
|
|
|
//reg [2*`BIT_WIDTH-1:0] c_numer[TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__0;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__1;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__2;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__3;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__4;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__5;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__6;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__7;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__8;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__9;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__10;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__11;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__12;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__13;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__14;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__15;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__16;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__17;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__18;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__19;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__20;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__21;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__22;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__23;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__24;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__25;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__26;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__27;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__28;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__29;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__30;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__31;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__32;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__33;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__34;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__35;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__36;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__37;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__38;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__39;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__40;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__41;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__42;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__43;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__44;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__45;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__46;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__47;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__48;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__49;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__50;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__51;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__52;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__53;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__54;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__55;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__56;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__57;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__58;
|
|
reg [2*`BIT_WIDTH-1:0] c_numer__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] c_z1[TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] c_z1__0;
|
|
reg [`BIT_WIDTH-1:0] c_z1__1;
|
|
reg [`BIT_WIDTH-1:0] c_z1__2;
|
|
reg [`BIT_WIDTH-1:0] c_z1__3;
|
|
reg [`BIT_WIDTH-1:0] c_z1__4;
|
|
reg [`BIT_WIDTH-1:0] c_z1__5;
|
|
reg [`BIT_WIDTH-1:0] c_z1__6;
|
|
reg [`BIT_WIDTH-1:0] c_z1__7;
|
|
reg [`BIT_WIDTH-1:0] c_z1__8;
|
|
reg [`BIT_WIDTH-1:0] c_z1__9;
|
|
reg [`BIT_WIDTH-1:0] c_z1__10;
|
|
reg [`BIT_WIDTH-1:0] c_z1__11;
|
|
reg [`BIT_WIDTH-1:0] c_z1__12;
|
|
reg [`BIT_WIDTH-1:0] c_z1__13;
|
|
reg [`BIT_WIDTH-1:0] c_z1__14;
|
|
reg [`BIT_WIDTH-1:0] c_z1__15;
|
|
reg [`BIT_WIDTH-1:0] c_z1__16;
|
|
reg [`BIT_WIDTH-1:0] c_z1__17;
|
|
reg [`BIT_WIDTH-1:0] c_z1__18;
|
|
reg [`BIT_WIDTH-1:0] c_z1__19;
|
|
reg [`BIT_WIDTH-1:0] c_z1__20;
|
|
reg [`BIT_WIDTH-1:0] c_z1__21;
|
|
reg [`BIT_WIDTH-1:0] c_z1__22;
|
|
reg [`BIT_WIDTH-1:0] c_z1__23;
|
|
reg [`BIT_WIDTH-1:0] c_z1__24;
|
|
reg [`BIT_WIDTH-1:0] c_z1__25;
|
|
reg [`BIT_WIDTH-1:0] c_z1__26;
|
|
reg [`BIT_WIDTH-1:0] c_z1__27;
|
|
reg [`BIT_WIDTH-1:0] c_z1__28;
|
|
reg [`BIT_WIDTH-1:0] c_z1__29;
|
|
reg [`BIT_WIDTH-1:0] c_z1__30;
|
|
reg [`BIT_WIDTH-1:0] c_z1__31;
|
|
reg [`BIT_WIDTH-1:0] c_z1__32;
|
|
reg [`BIT_WIDTH-1:0] c_z1__33;
|
|
reg [`BIT_WIDTH-1:0] c_z1__34;
|
|
reg [`BIT_WIDTH-1:0] c_z1__35;
|
|
reg [`BIT_WIDTH-1:0] c_z1__36;
|
|
reg [`BIT_WIDTH-1:0] c_z1__37;
|
|
reg [`BIT_WIDTH-1:0] c_z1__38;
|
|
reg [`BIT_WIDTH-1:0] c_z1__39;
|
|
reg [`BIT_WIDTH-1:0] c_z1__40;
|
|
reg [`BIT_WIDTH-1:0] c_z1__41;
|
|
reg [`BIT_WIDTH-1:0] c_z1__42;
|
|
reg [`BIT_WIDTH-1:0] c_z1__43;
|
|
reg [`BIT_WIDTH-1:0] c_z1__44;
|
|
reg [`BIT_WIDTH-1:0] c_z1__45;
|
|
reg [`BIT_WIDTH-1:0] c_z1__46;
|
|
reg [`BIT_WIDTH-1:0] c_z1__47;
|
|
reg [`BIT_WIDTH-1:0] c_z1__48;
|
|
reg [`BIT_WIDTH-1:0] c_z1__49;
|
|
reg [`BIT_WIDTH-1:0] c_z1__50;
|
|
reg [`BIT_WIDTH-1:0] c_z1__51;
|
|
reg [`BIT_WIDTH-1:0] c_z1__52;
|
|
reg [`BIT_WIDTH-1:0] c_z1__53;
|
|
reg [`BIT_WIDTH-1:0] c_z1__54;
|
|
reg [`BIT_WIDTH-1:0] c_z1__55;
|
|
reg [`BIT_WIDTH-1:0] c_z1__56;
|
|
reg [`BIT_WIDTH-1:0] c_z1__57;
|
|
reg [`BIT_WIDTH-1:0] c_z1__58;
|
|
reg [`BIT_WIDTH-1:0] c_z1__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] c_z0[TOTAL_LATENCY - 1:0];
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] c_z0__0;
|
|
reg [`BIT_WIDTH-1:0] c_z0__1;
|
|
reg [`BIT_WIDTH-1:0] c_z0__2;
|
|
reg [`BIT_WIDTH-1:0] c_z0__3;
|
|
reg [`BIT_WIDTH-1:0] c_z0__4;
|
|
reg [`BIT_WIDTH-1:0] c_z0__5;
|
|
reg [`BIT_WIDTH-1:0] c_z0__6;
|
|
reg [`BIT_WIDTH-1:0] c_z0__7;
|
|
reg [`BIT_WIDTH-1:0] c_z0__8;
|
|
reg [`BIT_WIDTH-1:0] c_z0__9;
|
|
reg [`BIT_WIDTH-1:0] c_z0__10;
|
|
reg [`BIT_WIDTH-1:0] c_z0__11;
|
|
reg [`BIT_WIDTH-1:0] c_z0__12;
|
|
reg [`BIT_WIDTH-1:0] c_z0__13;
|
|
reg [`BIT_WIDTH-1:0] c_z0__14;
|
|
reg [`BIT_WIDTH-1:0] c_z0__15;
|
|
reg [`BIT_WIDTH-1:0] c_z0__16;
|
|
reg [`BIT_WIDTH-1:0] c_z0__17;
|
|
reg [`BIT_WIDTH-1:0] c_z0__18;
|
|
reg [`BIT_WIDTH-1:0] c_z0__19;
|
|
reg [`BIT_WIDTH-1:0] c_z0__20;
|
|
reg [`BIT_WIDTH-1:0] c_z0__21;
|
|
reg [`BIT_WIDTH-1:0] c_z0__22;
|
|
reg [`BIT_WIDTH-1:0] c_z0__23;
|
|
reg [`BIT_WIDTH-1:0] c_z0__24;
|
|
reg [`BIT_WIDTH-1:0] c_z0__25;
|
|
reg [`BIT_WIDTH-1:0] c_z0__26;
|
|
reg [`BIT_WIDTH-1:0] c_z0__27;
|
|
reg [`BIT_WIDTH-1:0] c_z0__28;
|
|
reg [`BIT_WIDTH-1:0] c_z0__29;
|
|
reg [`BIT_WIDTH-1:0] c_z0__30;
|
|
reg [`BIT_WIDTH-1:0] c_z0__31;
|
|
reg [`BIT_WIDTH-1:0] c_z0__32;
|
|
reg [`BIT_WIDTH-1:0] c_z0__33;
|
|
reg [`BIT_WIDTH-1:0] c_z0__34;
|
|
reg [`BIT_WIDTH-1:0] c_z0__35;
|
|
reg [`BIT_WIDTH-1:0] c_z0__36;
|
|
reg [`BIT_WIDTH-1:0] c_z0__37;
|
|
reg [`BIT_WIDTH-1:0] c_z0__38;
|
|
reg [`BIT_WIDTH-1:0] c_z0__39;
|
|
reg [`BIT_WIDTH-1:0] c_z0__40;
|
|
reg [`BIT_WIDTH-1:0] c_z0__41;
|
|
reg [`BIT_WIDTH-1:0] c_z0__42;
|
|
reg [`BIT_WIDTH-1:0] c_z0__43;
|
|
reg [`BIT_WIDTH-1:0] c_z0__44;
|
|
reg [`BIT_WIDTH-1:0] c_z0__45;
|
|
reg [`BIT_WIDTH-1:0] c_z0__46;
|
|
reg [`BIT_WIDTH-1:0] c_z0__47;
|
|
reg [`BIT_WIDTH-1:0] c_z0__48;
|
|
reg [`BIT_WIDTH-1:0] c_z0__49;
|
|
reg [`BIT_WIDTH-1:0] c_z0__50;
|
|
reg [`BIT_WIDTH-1:0] c_z0__51;
|
|
reg [`BIT_WIDTH-1:0] c_z0__52;
|
|
reg [`BIT_WIDTH-1:0] c_z0__53;
|
|
reg [`BIT_WIDTH-1:0] c_z0__54;
|
|
reg [`BIT_WIDTH-1:0] c_z0__55;
|
|
reg [`BIT_WIDTH-1:0] c_z0__56;
|
|
reg [`BIT_WIDTH-1:0] c_z0__57;
|
|
reg [`BIT_WIDTH-1:0] c_z0__58;
|
|
reg [`BIT_WIDTH-1:0] c_z0__59;
|
|
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] c_mut[TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] c_mut__0;
|
|
reg [`BIT_WIDTH-1:0] c_mut__1;
|
|
reg [`BIT_WIDTH-1:0] c_mut__2;
|
|
reg [`BIT_WIDTH-1:0] c_mut__3;
|
|
reg [`BIT_WIDTH-1:0] c_mut__4;
|
|
reg [`BIT_WIDTH-1:0] c_mut__5;
|
|
reg [`BIT_WIDTH-1:0] c_mut__6;
|
|
reg [`BIT_WIDTH-1:0] c_mut__7;
|
|
reg [`BIT_WIDTH-1:0] c_mut__8;
|
|
reg [`BIT_WIDTH-1:0] c_mut__9;
|
|
reg [`BIT_WIDTH-1:0] c_mut__10;
|
|
reg [`BIT_WIDTH-1:0] c_mut__11;
|
|
reg [`BIT_WIDTH-1:0] c_mut__12;
|
|
reg [`BIT_WIDTH-1:0] c_mut__13;
|
|
reg [`BIT_WIDTH-1:0] c_mut__14;
|
|
reg [`BIT_WIDTH-1:0] c_mut__15;
|
|
reg [`BIT_WIDTH-1:0] c_mut__16;
|
|
reg [`BIT_WIDTH-1:0] c_mut__17;
|
|
reg [`BIT_WIDTH-1:0] c_mut__18;
|
|
reg [`BIT_WIDTH-1:0] c_mut__19;
|
|
reg [`BIT_WIDTH-1:0] c_mut__20;
|
|
reg [`BIT_WIDTH-1:0] c_mut__21;
|
|
reg [`BIT_WIDTH-1:0] c_mut__22;
|
|
reg [`BIT_WIDTH-1:0] c_mut__23;
|
|
reg [`BIT_WIDTH-1:0] c_mut__24;
|
|
reg [`BIT_WIDTH-1:0] c_mut__25;
|
|
reg [`BIT_WIDTH-1:0] c_mut__26;
|
|
reg [`BIT_WIDTH-1:0] c_mut__27;
|
|
reg [`BIT_WIDTH-1:0] c_mut__28;
|
|
reg [`BIT_WIDTH-1:0] c_mut__29;
|
|
reg [`BIT_WIDTH-1:0] c_mut__30;
|
|
reg [`BIT_WIDTH-1:0] c_mut__31;
|
|
reg [`BIT_WIDTH-1:0] c_mut__32;
|
|
reg [`BIT_WIDTH-1:0] c_mut__33;
|
|
reg [`BIT_WIDTH-1:0] c_mut__34;
|
|
reg [`BIT_WIDTH-1:0] c_mut__35;
|
|
reg [`BIT_WIDTH-1:0] c_mut__36;
|
|
reg [`BIT_WIDTH-1:0] c_mut__37;
|
|
reg [`BIT_WIDTH-1:0] c_mut__38;
|
|
reg [`BIT_WIDTH-1:0] c_mut__39;
|
|
reg [`BIT_WIDTH-1:0] c_mut__40;
|
|
reg [`BIT_WIDTH-1:0] c_mut__41;
|
|
reg [`BIT_WIDTH-1:0] c_mut__42;
|
|
reg [`BIT_WIDTH-1:0] c_mut__43;
|
|
reg [`BIT_WIDTH-1:0] c_mut__44;
|
|
reg [`BIT_WIDTH-1:0] c_mut__45;
|
|
reg [`BIT_WIDTH-1:0] c_mut__46;
|
|
reg [`BIT_WIDTH-1:0] c_mut__47;
|
|
reg [`BIT_WIDTH-1:0] c_mut__48;
|
|
reg [`BIT_WIDTH-1:0] c_mut__49;
|
|
reg [`BIT_WIDTH-1:0] c_mut__50;
|
|
reg [`BIT_WIDTH-1:0] c_mut__51;
|
|
reg [`BIT_WIDTH-1:0] c_mut__52;
|
|
reg [`BIT_WIDTH-1:0] c_mut__53;
|
|
reg [`BIT_WIDTH-1:0] c_mut__54;
|
|
reg [`BIT_WIDTH-1:0] c_mut__55;
|
|
reg [`BIT_WIDTH-1:0] c_mut__56;
|
|
reg [`BIT_WIDTH-1:0] c_mut__57;
|
|
reg [`BIT_WIDTH-1:0] c_mut__58;
|
|
reg [`BIT_WIDTH-1:0] c_mut__59;
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_x [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_x__0;
|
|
reg [`BIT_WIDTH-1:0] r_x__1;
|
|
reg [`BIT_WIDTH-1:0] r_x__2;
|
|
reg [`BIT_WIDTH-1:0] r_x__3;
|
|
reg [`BIT_WIDTH-1:0] r_x__4;
|
|
reg [`BIT_WIDTH-1:0] r_x__5;
|
|
reg [`BIT_WIDTH-1:0] r_x__6;
|
|
reg [`BIT_WIDTH-1:0] r_x__7;
|
|
reg [`BIT_WIDTH-1:0] r_x__8;
|
|
reg [`BIT_WIDTH-1:0] r_x__9;
|
|
reg [`BIT_WIDTH-1:0] r_x__10;
|
|
reg [`BIT_WIDTH-1:0] r_x__11;
|
|
reg [`BIT_WIDTH-1:0] r_x__12;
|
|
reg [`BIT_WIDTH-1:0] r_x__13;
|
|
reg [`BIT_WIDTH-1:0] r_x__14;
|
|
reg [`BIT_WIDTH-1:0] r_x__15;
|
|
reg [`BIT_WIDTH-1:0] r_x__16;
|
|
reg [`BIT_WIDTH-1:0] r_x__17;
|
|
reg [`BIT_WIDTH-1:0] r_x__18;
|
|
reg [`BIT_WIDTH-1:0] r_x__19;
|
|
reg [`BIT_WIDTH-1:0] r_x__20;
|
|
reg [`BIT_WIDTH-1:0] r_x__21;
|
|
reg [`BIT_WIDTH-1:0] r_x__22;
|
|
reg [`BIT_WIDTH-1:0] r_x__23;
|
|
reg [`BIT_WIDTH-1:0] r_x__24;
|
|
reg [`BIT_WIDTH-1:0] r_x__25;
|
|
reg [`BIT_WIDTH-1:0] r_x__26;
|
|
reg [`BIT_WIDTH-1:0] r_x__27;
|
|
reg [`BIT_WIDTH-1:0] r_x__28;
|
|
reg [`BIT_WIDTH-1:0] r_x__29;
|
|
reg [`BIT_WIDTH-1:0] r_x__30;
|
|
reg [`BIT_WIDTH-1:0] r_x__31;
|
|
reg [`BIT_WIDTH-1:0] r_x__32;
|
|
reg [`BIT_WIDTH-1:0] r_x__33;
|
|
reg [`BIT_WIDTH-1:0] r_x__34;
|
|
reg [`BIT_WIDTH-1:0] r_x__35;
|
|
reg [`BIT_WIDTH-1:0] r_x__36;
|
|
reg [`BIT_WIDTH-1:0] r_x__37;
|
|
reg [`BIT_WIDTH-1:0] r_x__38;
|
|
reg [`BIT_WIDTH-1:0] r_x__39;
|
|
reg [`BIT_WIDTH-1:0] r_x__40;
|
|
reg [`BIT_WIDTH-1:0] r_x__41;
|
|
reg [`BIT_WIDTH-1:0] r_x__42;
|
|
reg [`BIT_WIDTH-1:0] r_x__43;
|
|
reg [`BIT_WIDTH-1:0] r_x__44;
|
|
reg [`BIT_WIDTH-1:0] r_x__45;
|
|
reg [`BIT_WIDTH-1:0] r_x__46;
|
|
reg [`BIT_WIDTH-1:0] r_x__47;
|
|
reg [`BIT_WIDTH-1:0] r_x__48;
|
|
reg [`BIT_WIDTH-1:0] r_x__49;
|
|
reg [`BIT_WIDTH-1:0] r_x__50;
|
|
reg [`BIT_WIDTH-1:0] r_x__51;
|
|
reg [`BIT_WIDTH-1:0] r_x__52;
|
|
reg [`BIT_WIDTH-1:0] r_x__53;
|
|
reg [`BIT_WIDTH-1:0] r_x__54;
|
|
reg [`BIT_WIDTH-1:0] r_x__55;
|
|
reg [`BIT_WIDTH-1:0] r_x__56;
|
|
reg [`BIT_WIDTH-1:0] r_x__57;
|
|
reg [`BIT_WIDTH-1:0] r_x__58;
|
|
reg [`BIT_WIDTH-1:0] r_x__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_y [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_y__0;
|
|
reg [`BIT_WIDTH-1:0] r_y__1;
|
|
reg [`BIT_WIDTH-1:0] r_y__2;
|
|
reg [`BIT_WIDTH-1:0] r_y__3;
|
|
reg [`BIT_WIDTH-1:0] r_y__4;
|
|
reg [`BIT_WIDTH-1:0] r_y__5;
|
|
reg [`BIT_WIDTH-1:0] r_y__6;
|
|
reg [`BIT_WIDTH-1:0] r_y__7;
|
|
reg [`BIT_WIDTH-1:0] r_y__8;
|
|
reg [`BIT_WIDTH-1:0] r_y__9;
|
|
reg [`BIT_WIDTH-1:0] r_y__10;
|
|
reg [`BIT_WIDTH-1:0] r_y__11;
|
|
reg [`BIT_WIDTH-1:0] r_y__12;
|
|
reg [`BIT_WIDTH-1:0] r_y__13;
|
|
reg [`BIT_WIDTH-1:0] r_y__14;
|
|
reg [`BIT_WIDTH-1:0] r_y__15;
|
|
reg [`BIT_WIDTH-1:0] r_y__16;
|
|
reg [`BIT_WIDTH-1:0] r_y__17;
|
|
reg [`BIT_WIDTH-1:0] r_y__18;
|
|
reg [`BIT_WIDTH-1:0] r_y__19;
|
|
reg [`BIT_WIDTH-1:0] r_y__20;
|
|
reg [`BIT_WIDTH-1:0] r_y__21;
|
|
reg [`BIT_WIDTH-1:0] r_y__22;
|
|
reg [`BIT_WIDTH-1:0] r_y__23;
|
|
reg [`BIT_WIDTH-1:0] r_y__24;
|
|
reg [`BIT_WIDTH-1:0] r_y__25;
|
|
reg [`BIT_WIDTH-1:0] r_y__26;
|
|
reg [`BIT_WIDTH-1:0] r_y__27;
|
|
reg [`BIT_WIDTH-1:0] r_y__28;
|
|
reg [`BIT_WIDTH-1:0] r_y__29;
|
|
reg [`BIT_WIDTH-1:0] r_y__30;
|
|
reg [`BIT_WIDTH-1:0] r_y__31;
|
|
reg [`BIT_WIDTH-1:0] r_y__32;
|
|
reg [`BIT_WIDTH-1:0] r_y__33;
|
|
reg [`BIT_WIDTH-1:0] r_y__34;
|
|
reg [`BIT_WIDTH-1:0] r_y__35;
|
|
reg [`BIT_WIDTH-1:0] r_y__36;
|
|
reg [`BIT_WIDTH-1:0] r_y__37;
|
|
reg [`BIT_WIDTH-1:0] r_y__38;
|
|
reg [`BIT_WIDTH-1:0] r_y__39;
|
|
reg [`BIT_WIDTH-1:0] r_y__40;
|
|
reg [`BIT_WIDTH-1:0] r_y__41;
|
|
reg [`BIT_WIDTH-1:0] r_y__42;
|
|
reg [`BIT_WIDTH-1:0] r_y__43;
|
|
reg [`BIT_WIDTH-1:0] r_y__44;
|
|
reg [`BIT_WIDTH-1:0] r_y__45;
|
|
reg [`BIT_WIDTH-1:0] r_y__46;
|
|
reg [`BIT_WIDTH-1:0] r_y__47;
|
|
reg [`BIT_WIDTH-1:0] r_y__48;
|
|
reg [`BIT_WIDTH-1:0] r_y__49;
|
|
reg [`BIT_WIDTH-1:0] r_y__50;
|
|
reg [`BIT_WIDTH-1:0] r_y__51;
|
|
reg [`BIT_WIDTH-1:0] r_y__52;
|
|
reg [`BIT_WIDTH-1:0] r_y__53;
|
|
reg [`BIT_WIDTH-1:0] r_y__54;
|
|
reg [`BIT_WIDTH-1:0] r_y__55;
|
|
reg [`BIT_WIDTH-1:0] r_y__56;
|
|
reg [`BIT_WIDTH-1:0] r_y__57;
|
|
reg [`BIT_WIDTH-1:0] r_y__58;
|
|
reg [`BIT_WIDTH-1:0] r_y__59;
|
|
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_z [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_z__0;
|
|
reg [`BIT_WIDTH-1:0] r_z__1;
|
|
reg [`BIT_WIDTH-1:0] r_z__2;
|
|
reg [`BIT_WIDTH-1:0] r_z__3;
|
|
reg [`BIT_WIDTH-1:0] r_z__4;
|
|
reg [`BIT_WIDTH-1:0] r_z__5;
|
|
reg [`BIT_WIDTH-1:0] r_z__6;
|
|
reg [`BIT_WIDTH-1:0] r_z__7;
|
|
reg [`BIT_WIDTH-1:0] r_z__8;
|
|
reg [`BIT_WIDTH-1:0] r_z__9;
|
|
reg [`BIT_WIDTH-1:0] r_z__10;
|
|
reg [`BIT_WIDTH-1:0] r_z__11;
|
|
reg [`BIT_WIDTH-1:0] r_z__12;
|
|
reg [`BIT_WIDTH-1:0] r_z__13;
|
|
reg [`BIT_WIDTH-1:0] r_z__14;
|
|
reg [`BIT_WIDTH-1:0] r_z__15;
|
|
reg [`BIT_WIDTH-1:0] r_z__16;
|
|
reg [`BIT_WIDTH-1:0] r_z__17;
|
|
reg [`BIT_WIDTH-1:0] r_z__18;
|
|
reg [`BIT_WIDTH-1:0] r_z__19;
|
|
reg [`BIT_WIDTH-1:0] r_z__20;
|
|
reg [`BIT_WIDTH-1:0] r_z__21;
|
|
reg [`BIT_WIDTH-1:0] r_z__22;
|
|
reg [`BIT_WIDTH-1:0] r_z__23;
|
|
reg [`BIT_WIDTH-1:0] r_z__24;
|
|
reg [`BIT_WIDTH-1:0] r_z__25;
|
|
reg [`BIT_WIDTH-1:0] r_z__26;
|
|
reg [`BIT_WIDTH-1:0] r_z__27;
|
|
reg [`BIT_WIDTH-1:0] r_z__28;
|
|
reg [`BIT_WIDTH-1:0] r_z__29;
|
|
reg [`BIT_WIDTH-1:0] r_z__30;
|
|
reg [`BIT_WIDTH-1:0] r_z__31;
|
|
reg [`BIT_WIDTH-1:0] r_z__32;
|
|
reg [`BIT_WIDTH-1:0] r_z__33;
|
|
reg [`BIT_WIDTH-1:0] r_z__34;
|
|
reg [`BIT_WIDTH-1:0] r_z__35;
|
|
reg [`BIT_WIDTH-1:0] r_z__36;
|
|
reg [`BIT_WIDTH-1:0] r_z__37;
|
|
reg [`BIT_WIDTH-1:0] r_z__38;
|
|
reg [`BIT_WIDTH-1:0] r_z__39;
|
|
reg [`BIT_WIDTH-1:0] r_z__40;
|
|
reg [`BIT_WIDTH-1:0] r_z__41;
|
|
reg [`BIT_WIDTH-1:0] r_z__42;
|
|
reg [`BIT_WIDTH-1:0] r_z__43;
|
|
reg [`BIT_WIDTH-1:0] r_z__44;
|
|
reg [`BIT_WIDTH-1:0] r_z__45;
|
|
reg [`BIT_WIDTH-1:0] r_z__46;
|
|
reg [`BIT_WIDTH-1:0] r_z__47;
|
|
reg [`BIT_WIDTH-1:0] r_z__48;
|
|
reg [`BIT_WIDTH-1:0] r_z__49;
|
|
reg [`BIT_WIDTH-1:0] r_z__50;
|
|
reg [`BIT_WIDTH-1:0] r_z__51;
|
|
reg [`BIT_WIDTH-1:0] r_z__52;
|
|
reg [`BIT_WIDTH-1:0] r_z__53;
|
|
reg [`BIT_WIDTH-1:0] r_z__54;
|
|
reg [`BIT_WIDTH-1:0] r_z__55;
|
|
reg [`BIT_WIDTH-1:0] r_z__56;
|
|
reg [`BIT_WIDTH-1:0] r_z__57;
|
|
reg [`BIT_WIDTH-1:0] r_z__58;
|
|
reg [`BIT_WIDTH-1:0] r_z__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_ux [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_ux__0;
|
|
reg [`BIT_WIDTH-1:0] r_ux__1;
|
|
reg [`BIT_WIDTH-1:0] r_ux__2;
|
|
reg [`BIT_WIDTH-1:0] r_ux__3;
|
|
reg [`BIT_WIDTH-1:0] r_ux__4;
|
|
reg [`BIT_WIDTH-1:0] r_ux__5;
|
|
reg [`BIT_WIDTH-1:0] r_ux__6;
|
|
reg [`BIT_WIDTH-1:0] r_ux__7;
|
|
reg [`BIT_WIDTH-1:0] r_ux__8;
|
|
reg [`BIT_WIDTH-1:0] r_ux__9;
|
|
reg [`BIT_WIDTH-1:0] r_ux__10;
|
|
reg [`BIT_WIDTH-1:0] r_ux__11;
|
|
reg [`BIT_WIDTH-1:0] r_ux__12;
|
|
reg [`BIT_WIDTH-1:0] r_ux__13;
|
|
reg [`BIT_WIDTH-1:0] r_ux__14;
|
|
reg [`BIT_WIDTH-1:0] r_ux__15;
|
|
reg [`BIT_WIDTH-1:0] r_ux__16;
|
|
reg [`BIT_WIDTH-1:0] r_ux__17;
|
|
reg [`BIT_WIDTH-1:0] r_ux__18;
|
|
reg [`BIT_WIDTH-1:0] r_ux__19;
|
|
reg [`BIT_WIDTH-1:0] r_ux__20;
|
|
reg [`BIT_WIDTH-1:0] r_ux__21;
|
|
reg [`BIT_WIDTH-1:0] r_ux__22;
|
|
reg [`BIT_WIDTH-1:0] r_ux__23;
|
|
reg [`BIT_WIDTH-1:0] r_ux__24;
|
|
reg [`BIT_WIDTH-1:0] r_ux__25;
|
|
reg [`BIT_WIDTH-1:0] r_ux__26;
|
|
reg [`BIT_WIDTH-1:0] r_ux__27;
|
|
reg [`BIT_WIDTH-1:0] r_ux__28;
|
|
reg [`BIT_WIDTH-1:0] r_ux__29;
|
|
reg [`BIT_WIDTH-1:0] r_ux__30;
|
|
reg [`BIT_WIDTH-1:0] r_ux__31;
|
|
reg [`BIT_WIDTH-1:0] r_ux__32;
|
|
reg [`BIT_WIDTH-1:0] r_ux__33;
|
|
reg [`BIT_WIDTH-1:0] r_ux__34;
|
|
reg [`BIT_WIDTH-1:0] r_ux__35;
|
|
reg [`BIT_WIDTH-1:0] r_ux__36;
|
|
reg [`BIT_WIDTH-1:0] r_ux__37;
|
|
reg [`BIT_WIDTH-1:0] r_ux__38;
|
|
reg [`BIT_WIDTH-1:0] r_ux__39;
|
|
reg [`BIT_WIDTH-1:0] r_ux__40;
|
|
reg [`BIT_WIDTH-1:0] r_ux__41;
|
|
reg [`BIT_WIDTH-1:0] r_ux__42;
|
|
reg [`BIT_WIDTH-1:0] r_ux__43;
|
|
reg [`BIT_WIDTH-1:0] r_ux__44;
|
|
reg [`BIT_WIDTH-1:0] r_ux__45;
|
|
reg [`BIT_WIDTH-1:0] r_ux__46;
|
|
reg [`BIT_WIDTH-1:0] r_ux__47;
|
|
reg [`BIT_WIDTH-1:0] r_ux__48;
|
|
reg [`BIT_WIDTH-1:0] r_ux__49;
|
|
reg [`BIT_WIDTH-1:0] r_ux__50;
|
|
reg [`BIT_WIDTH-1:0] r_ux__51;
|
|
reg [`BIT_WIDTH-1:0] r_ux__52;
|
|
reg [`BIT_WIDTH-1:0] r_ux__53;
|
|
reg [`BIT_WIDTH-1:0] r_ux__54;
|
|
reg [`BIT_WIDTH-1:0] r_ux__55;
|
|
reg [`BIT_WIDTH-1:0] r_ux__56;
|
|
reg [`BIT_WIDTH-1:0] r_ux__57;
|
|
reg [`BIT_WIDTH-1:0] r_ux__58;
|
|
reg [`BIT_WIDTH-1:0] r_ux__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_uy [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_uy__0;
|
|
reg [`BIT_WIDTH-1:0] r_uy__1;
|
|
reg [`BIT_WIDTH-1:0] r_uy__2;
|
|
reg [`BIT_WIDTH-1:0] r_uy__3;
|
|
reg [`BIT_WIDTH-1:0] r_uy__4;
|
|
reg [`BIT_WIDTH-1:0] r_uy__5;
|
|
reg [`BIT_WIDTH-1:0] r_uy__6;
|
|
reg [`BIT_WIDTH-1:0] r_uy__7;
|
|
reg [`BIT_WIDTH-1:0] r_uy__8;
|
|
reg [`BIT_WIDTH-1:0] r_uy__9;
|
|
reg [`BIT_WIDTH-1:0] r_uy__10;
|
|
reg [`BIT_WIDTH-1:0] r_uy__11;
|
|
reg [`BIT_WIDTH-1:0] r_uy__12;
|
|
reg [`BIT_WIDTH-1:0] r_uy__13;
|
|
reg [`BIT_WIDTH-1:0] r_uy__14;
|
|
reg [`BIT_WIDTH-1:0] r_uy__15;
|
|
reg [`BIT_WIDTH-1:0] r_uy__16;
|
|
reg [`BIT_WIDTH-1:0] r_uy__17;
|
|
reg [`BIT_WIDTH-1:0] r_uy__18;
|
|
reg [`BIT_WIDTH-1:0] r_uy__19;
|
|
reg [`BIT_WIDTH-1:0] r_uy__20;
|
|
reg [`BIT_WIDTH-1:0] r_uy__21;
|
|
reg [`BIT_WIDTH-1:0] r_uy__22;
|
|
reg [`BIT_WIDTH-1:0] r_uy__23;
|
|
reg [`BIT_WIDTH-1:0] r_uy__24;
|
|
reg [`BIT_WIDTH-1:0] r_uy__25;
|
|
reg [`BIT_WIDTH-1:0] r_uy__26;
|
|
reg [`BIT_WIDTH-1:0] r_uy__27;
|
|
reg [`BIT_WIDTH-1:0] r_uy__28;
|
|
reg [`BIT_WIDTH-1:0] r_uy__29;
|
|
reg [`BIT_WIDTH-1:0] r_uy__30;
|
|
reg [`BIT_WIDTH-1:0] r_uy__31;
|
|
reg [`BIT_WIDTH-1:0] r_uy__32;
|
|
reg [`BIT_WIDTH-1:0] r_uy__33;
|
|
reg [`BIT_WIDTH-1:0] r_uy__34;
|
|
reg [`BIT_WIDTH-1:0] r_uy__35;
|
|
reg [`BIT_WIDTH-1:0] r_uy__36;
|
|
reg [`BIT_WIDTH-1:0] r_uy__37;
|
|
reg [`BIT_WIDTH-1:0] r_uy__38;
|
|
reg [`BIT_WIDTH-1:0] r_uy__39;
|
|
reg [`BIT_WIDTH-1:0] r_uy__40;
|
|
reg [`BIT_WIDTH-1:0] r_uy__41;
|
|
reg [`BIT_WIDTH-1:0] r_uy__42;
|
|
reg [`BIT_WIDTH-1:0] r_uy__43;
|
|
reg [`BIT_WIDTH-1:0] r_uy__44;
|
|
reg [`BIT_WIDTH-1:0] r_uy__45;
|
|
reg [`BIT_WIDTH-1:0] r_uy__46;
|
|
reg [`BIT_WIDTH-1:0] r_uy__47;
|
|
reg [`BIT_WIDTH-1:0] r_uy__48;
|
|
reg [`BIT_WIDTH-1:0] r_uy__49;
|
|
reg [`BIT_WIDTH-1:0] r_uy__50;
|
|
reg [`BIT_WIDTH-1:0] r_uy__51;
|
|
reg [`BIT_WIDTH-1:0] r_uy__52;
|
|
reg [`BIT_WIDTH-1:0] r_uy__53;
|
|
reg [`BIT_WIDTH-1:0] r_uy__54;
|
|
reg [`BIT_WIDTH-1:0] r_uy__55;
|
|
reg [`BIT_WIDTH-1:0] r_uy__56;
|
|
reg [`BIT_WIDTH-1:0] r_uy__57;
|
|
reg [`BIT_WIDTH-1:0] r_uy__58;
|
|
reg [`BIT_WIDTH-1:0] r_uy__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_uz [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_uz__0;
|
|
reg [`BIT_WIDTH-1:0] r_uz__1;
|
|
reg [`BIT_WIDTH-1:0] r_uz__2;
|
|
reg [`BIT_WIDTH-1:0] r_uz__3;
|
|
reg [`BIT_WIDTH-1:0] r_uz__4;
|
|
reg [`BIT_WIDTH-1:0] r_uz__5;
|
|
reg [`BIT_WIDTH-1:0] r_uz__6;
|
|
reg [`BIT_WIDTH-1:0] r_uz__7;
|
|
reg [`BIT_WIDTH-1:0] r_uz__8;
|
|
reg [`BIT_WIDTH-1:0] r_uz__9;
|
|
reg [`BIT_WIDTH-1:0] r_uz__10;
|
|
reg [`BIT_WIDTH-1:0] r_uz__11;
|
|
reg [`BIT_WIDTH-1:0] r_uz__12;
|
|
reg [`BIT_WIDTH-1:0] r_uz__13;
|
|
reg [`BIT_WIDTH-1:0] r_uz__14;
|
|
reg [`BIT_WIDTH-1:0] r_uz__15;
|
|
reg [`BIT_WIDTH-1:0] r_uz__16;
|
|
reg [`BIT_WIDTH-1:0] r_uz__17;
|
|
reg [`BIT_WIDTH-1:0] r_uz__18;
|
|
reg [`BIT_WIDTH-1:0] r_uz__19;
|
|
reg [`BIT_WIDTH-1:0] r_uz__20;
|
|
reg [`BIT_WIDTH-1:0] r_uz__21;
|
|
reg [`BIT_WIDTH-1:0] r_uz__22;
|
|
reg [`BIT_WIDTH-1:0] r_uz__23;
|
|
reg [`BIT_WIDTH-1:0] r_uz__24;
|
|
reg [`BIT_WIDTH-1:0] r_uz__25;
|
|
reg [`BIT_WIDTH-1:0] r_uz__26;
|
|
reg [`BIT_WIDTH-1:0] r_uz__27;
|
|
reg [`BIT_WIDTH-1:0] r_uz__28;
|
|
reg [`BIT_WIDTH-1:0] r_uz__29;
|
|
reg [`BIT_WIDTH-1:0] r_uz__30;
|
|
reg [`BIT_WIDTH-1:0] r_uz__31;
|
|
reg [`BIT_WIDTH-1:0] r_uz__32;
|
|
reg [`BIT_WIDTH-1:0] r_uz__33;
|
|
reg [`BIT_WIDTH-1:0] r_uz__34;
|
|
reg [`BIT_WIDTH-1:0] r_uz__35;
|
|
reg [`BIT_WIDTH-1:0] r_uz__36;
|
|
reg [`BIT_WIDTH-1:0] r_uz__37;
|
|
reg [`BIT_WIDTH-1:0] r_uz__38;
|
|
reg [`BIT_WIDTH-1:0] r_uz__39;
|
|
reg [`BIT_WIDTH-1:0] r_uz__40;
|
|
reg [`BIT_WIDTH-1:0] r_uz__41;
|
|
reg [`BIT_WIDTH-1:0] r_uz__42;
|
|
reg [`BIT_WIDTH-1:0] r_uz__43;
|
|
reg [`BIT_WIDTH-1:0] r_uz__44;
|
|
reg [`BIT_WIDTH-1:0] r_uz__45;
|
|
reg [`BIT_WIDTH-1:0] r_uz__46;
|
|
reg [`BIT_WIDTH-1:0] r_uz__47;
|
|
reg [`BIT_WIDTH-1:0] r_uz__48;
|
|
reg [`BIT_WIDTH-1:0] r_uz__49;
|
|
reg [`BIT_WIDTH-1:0] r_uz__50;
|
|
reg [`BIT_WIDTH-1:0] r_uz__51;
|
|
reg [`BIT_WIDTH-1:0] r_uz__52;
|
|
reg [`BIT_WIDTH-1:0] r_uz__53;
|
|
reg [`BIT_WIDTH-1:0] r_uz__54;
|
|
reg [`BIT_WIDTH-1:0] r_uz__55;
|
|
reg [`BIT_WIDTH-1:0] r_uz__56;
|
|
reg [`BIT_WIDTH-1:0] r_uz__57;
|
|
reg [`BIT_WIDTH-1:0] r_uz__58;
|
|
reg [`BIT_WIDTH-1:0] r_uz__59;
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_sz [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_sz__0;
|
|
reg [`BIT_WIDTH-1:0] r_sz__1;
|
|
reg [`BIT_WIDTH-1:0] r_sz__2;
|
|
reg [`BIT_WIDTH-1:0] r_sz__3;
|
|
reg [`BIT_WIDTH-1:0] r_sz__4;
|
|
reg [`BIT_WIDTH-1:0] r_sz__5;
|
|
reg [`BIT_WIDTH-1:0] r_sz__6;
|
|
reg [`BIT_WIDTH-1:0] r_sz__7;
|
|
reg [`BIT_WIDTH-1:0] r_sz__8;
|
|
reg [`BIT_WIDTH-1:0] r_sz__9;
|
|
reg [`BIT_WIDTH-1:0] r_sz__10;
|
|
reg [`BIT_WIDTH-1:0] r_sz__11;
|
|
reg [`BIT_WIDTH-1:0] r_sz__12;
|
|
reg [`BIT_WIDTH-1:0] r_sz__13;
|
|
reg [`BIT_WIDTH-1:0] r_sz__14;
|
|
reg [`BIT_WIDTH-1:0] r_sz__15;
|
|
reg [`BIT_WIDTH-1:0] r_sz__16;
|
|
reg [`BIT_WIDTH-1:0] r_sz__17;
|
|
reg [`BIT_WIDTH-1:0] r_sz__18;
|
|
reg [`BIT_WIDTH-1:0] r_sz__19;
|
|
reg [`BIT_WIDTH-1:0] r_sz__20;
|
|
reg [`BIT_WIDTH-1:0] r_sz__21;
|
|
reg [`BIT_WIDTH-1:0] r_sz__22;
|
|
reg [`BIT_WIDTH-1:0] r_sz__23;
|
|
reg [`BIT_WIDTH-1:0] r_sz__24;
|
|
reg [`BIT_WIDTH-1:0] r_sz__25;
|
|
reg [`BIT_WIDTH-1:0] r_sz__26;
|
|
reg [`BIT_WIDTH-1:0] r_sz__27;
|
|
reg [`BIT_WIDTH-1:0] r_sz__28;
|
|
reg [`BIT_WIDTH-1:0] r_sz__29;
|
|
reg [`BIT_WIDTH-1:0] r_sz__30;
|
|
reg [`BIT_WIDTH-1:0] r_sz__31;
|
|
reg [`BIT_WIDTH-1:0] r_sz__32;
|
|
reg [`BIT_WIDTH-1:0] r_sz__33;
|
|
reg [`BIT_WIDTH-1:0] r_sz__34;
|
|
reg [`BIT_WIDTH-1:0] r_sz__35;
|
|
reg [`BIT_WIDTH-1:0] r_sz__36;
|
|
reg [`BIT_WIDTH-1:0] r_sz__37;
|
|
reg [`BIT_WIDTH-1:0] r_sz__38;
|
|
reg [`BIT_WIDTH-1:0] r_sz__39;
|
|
reg [`BIT_WIDTH-1:0] r_sz__40;
|
|
reg [`BIT_WIDTH-1:0] r_sz__41;
|
|
reg [`BIT_WIDTH-1:0] r_sz__42;
|
|
reg [`BIT_WIDTH-1:0] r_sz__43;
|
|
reg [`BIT_WIDTH-1:0] r_sz__44;
|
|
reg [`BIT_WIDTH-1:0] r_sz__45;
|
|
reg [`BIT_WIDTH-1:0] r_sz__46;
|
|
reg [`BIT_WIDTH-1:0] r_sz__47;
|
|
reg [`BIT_WIDTH-1:0] r_sz__48;
|
|
reg [`BIT_WIDTH-1:0] r_sz__49;
|
|
reg [`BIT_WIDTH-1:0] r_sz__50;
|
|
reg [`BIT_WIDTH-1:0] r_sz__51;
|
|
reg [`BIT_WIDTH-1:0] r_sz__52;
|
|
reg [`BIT_WIDTH-1:0] r_sz__53;
|
|
reg [`BIT_WIDTH-1:0] r_sz__54;
|
|
reg [`BIT_WIDTH-1:0] r_sz__55;
|
|
reg [`BIT_WIDTH-1:0] r_sz__56;
|
|
reg [`BIT_WIDTH-1:0] r_sz__57;
|
|
reg [`BIT_WIDTH-1:0] r_sz__58;
|
|
reg [`BIT_WIDTH-1:0] r_sz__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_sr [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_sr__0;
|
|
reg [`BIT_WIDTH-1:0] r_sr__1;
|
|
reg [`BIT_WIDTH-1:0] r_sr__2;
|
|
reg [`BIT_WIDTH-1:0] r_sr__3;
|
|
reg [`BIT_WIDTH-1:0] r_sr__4;
|
|
reg [`BIT_WIDTH-1:0] r_sr__5;
|
|
reg [`BIT_WIDTH-1:0] r_sr__6;
|
|
reg [`BIT_WIDTH-1:0] r_sr__7;
|
|
reg [`BIT_WIDTH-1:0] r_sr__8;
|
|
reg [`BIT_WIDTH-1:0] r_sr__9;
|
|
reg [`BIT_WIDTH-1:0] r_sr__10;
|
|
reg [`BIT_WIDTH-1:0] r_sr__11;
|
|
reg [`BIT_WIDTH-1:0] r_sr__12;
|
|
reg [`BIT_WIDTH-1:0] r_sr__13;
|
|
reg [`BIT_WIDTH-1:0] r_sr__14;
|
|
reg [`BIT_WIDTH-1:0] r_sr__15;
|
|
reg [`BIT_WIDTH-1:0] r_sr__16;
|
|
reg [`BIT_WIDTH-1:0] r_sr__17;
|
|
reg [`BIT_WIDTH-1:0] r_sr__18;
|
|
reg [`BIT_WIDTH-1:0] r_sr__19;
|
|
reg [`BIT_WIDTH-1:0] r_sr__20;
|
|
reg [`BIT_WIDTH-1:0] r_sr__21;
|
|
reg [`BIT_WIDTH-1:0] r_sr__22;
|
|
reg [`BIT_WIDTH-1:0] r_sr__23;
|
|
reg [`BIT_WIDTH-1:0] r_sr__24;
|
|
reg [`BIT_WIDTH-1:0] r_sr__25;
|
|
reg [`BIT_WIDTH-1:0] r_sr__26;
|
|
reg [`BIT_WIDTH-1:0] r_sr__27;
|
|
reg [`BIT_WIDTH-1:0] r_sr__28;
|
|
reg [`BIT_WIDTH-1:0] r_sr__29;
|
|
reg [`BIT_WIDTH-1:0] r_sr__30;
|
|
reg [`BIT_WIDTH-1:0] r_sr__31;
|
|
reg [`BIT_WIDTH-1:0] r_sr__32;
|
|
reg [`BIT_WIDTH-1:0] r_sr__33;
|
|
reg [`BIT_WIDTH-1:0] r_sr__34;
|
|
reg [`BIT_WIDTH-1:0] r_sr__35;
|
|
reg [`BIT_WIDTH-1:0] r_sr__36;
|
|
reg [`BIT_WIDTH-1:0] r_sr__37;
|
|
reg [`BIT_WIDTH-1:0] r_sr__38;
|
|
reg [`BIT_WIDTH-1:0] r_sr__39;
|
|
reg [`BIT_WIDTH-1:0] r_sr__40;
|
|
reg [`BIT_WIDTH-1:0] r_sr__41;
|
|
reg [`BIT_WIDTH-1:0] r_sr__42;
|
|
reg [`BIT_WIDTH-1:0] r_sr__43;
|
|
reg [`BIT_WIDTH-1:0] r_sr__44;
|
|
reg [`BIT_WIDTH-1:0] r_sr__45;
|
|
reg [`BIT_WIDTH-1:0] r_sr__46;
|
|
reg [`BIT_WIDTH-1:0] r_sr__47;
|
|
reg [`BIT_WIDTH-1:0] r_sr__48;
|
|
reg [`BIT_WIDTH-1:0] r_sr__49;
|
|
reg [`BIT_WIDTH-1:0] r_sr__50;
|
|
reg [`BIT_WIDTH-1:0] r_sr__51;
|
|
reg [`BIT_WIDTH-1:0] r_sr__52;
|
|
reg [`BIT_WIDTH-1:0] r_sr__53;
|
|
reg [`BIT_WIDTH-1:0] r_sr__54;
|
|
reg [`BIT_WIDTH-1:0] r_sr__55;
|
|
reg [`BIT_WIDTH-1:0] r_sr__56;
|
|
reg [`BIT_WIDTH-1:0] r_sr__57;
|
|
reg [`BIT_WIDTH-1:0] r_sr__58;
|
|
reg [`BIT_WIDTH-1:0] r_sr__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_sleftz [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__0;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__1;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__2;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__3;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__4;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__5;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__6;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__7;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__8;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__9;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__10;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__11;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__12;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__13;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__14;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__15;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__16;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__17;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__18;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__19;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__20;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__21;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__22;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__23;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__24;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__25;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__26;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__27;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__28;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__29;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__30;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__31;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__32;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__33;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__34;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__35;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__36;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__37;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__38;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__39;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__40;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__41;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__42;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__43;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__44;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__45;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__46;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__47;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__48;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__49;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__50;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__51;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__52;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__53;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__54;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__55;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__56;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__57;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__58;
|
|
reg [`BIT_WIDTH-1:0] r_sleftz__59;
|
|
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_sleftr [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__0;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__1;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__2;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__3;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__4;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__5;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__6;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__7;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__8;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__9;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__10;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__11;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__12;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__13;
|
|
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__14;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__15;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__16;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__17;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__18;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__19;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__20;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__21;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__22;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__23;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__24;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__25;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__26;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__27;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__28;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__29;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__30;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__31;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__32;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__33;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__34;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__35;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__36;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__37;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__38;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__39;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__40;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__41;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__42;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__43;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__44;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__45;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__46;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__47;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__48;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__49;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__50;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__51;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__52;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__53;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__54;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__55;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__56;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__57;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__58;
|
|
reg [`BIT_WIDTH-1:0] r_sleftr__59;
|
|
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_weight [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_weight__0;
|
|
reg [`BIT_WIDTH-1:0] r_weight__1;
|
|
reg [`BIT_WIDTH-1:0] r_weight__2;
|
|
reg [`BIT_WIDTH-1:0] r_weight__3;
|
|
reg [`BIT_WIDTH-1:0] r_weight__4;
|
|
reg [`BIT_WIDTH-1:0] r_weight__5;
|
|
reg [`BIT_WIDTH-1:0] r_weight__6;
|
|
reg [`BIT_WIDTH-1:0] r_weight__7;
|
|
reg [`BIT_WIDTH-1:0] r_weight__8;
|
|
reg [`BIT_WIDTH-1:0] r_weight__9;
|
|
reg [`BIT_WIDTH-1:0] r_weight__10;
|
|
reg [`BIT_WIDTH-1:0] r_weight__11;
|
|
reg [`BIT_WIDTH-1:0] r_weight__12;
|
|
reg [`BIT_WIDTH-1:0] r_weight__13;
|
|
reg [`BIT_WIDTH-1:0] r_weight__14;
|
|
reg [`BIT_WIDTH-1:0] r_weight__15;
|
|
reg [`BIT_WIDTH-1:0] r_weight__16;
|
|
reg [`BIT_WIDTH-1:0] r_weight__17;
|
|
reg [`BIT_WIDTH-1:0] r_weight__18;
|
|
reg [`BIT_WIDTH-1:0] r_weight__19;
|
|
reg [`BIT_WIDTH-1:0] r_weight__20;
|
|
reg [`BIT_WIDTH-1:0] r_weight__21;
|
|
reg [`BIT_WIDTH-1:0] r_weight__22;
|
|
reg [`BIT_WIDTH-1:0] r_weight__23;
|
|
reg [`BIT_WIDTH-1:0] r_weight__24;
|
|
reg [`BIT_WIDTH-1:0] r_weight__25;
|
|
reg [`BIT_WIDTH-1:0] r_weight__26;
|
|
reg [`BIT_WIDTH-1:0] r_weight__27;
|
|
reg [`BIT_WIDTH-1:0] r_weight__28;
|
|
reg [`BIT_WIDTH-1:0] r_weight__29;
|
|
reg [`BIT_WIDTH-1:0] r_weight__30;
|
|
reg [`BIT_WIDTH-1:0] r_weight__31;
|
|
reg [`BIT_WIDTH-1:0] r_weight__32;
|
|
reg [`BIT_WIDTH-1:0] r_weight__33;
|
|
reg [`BIT_WIDTH-1:0] r_weight__34;
|
|
reg [`BIT_WIDTH-1:0] r_weight__35;
|
|
reg [`BIT_WIDTH-1:0] r_weight__36;
|
|
reg [`BIT_WIDTH-1:0] r_weight__37;
|
|
reg [`BIT_WIDTH-1:0] r_weight__38;
|
|
reg [`BIT_WIDTH-1:0] r_weight__39;
|
|
reg [`BIT_WIDTH-1:0] r_weight__40;
|
|
reg [`BIT_WIDTH-1:0] r_weight__41;
|
|
reg [`BIT_WIDTH-1:0] r_weight__42;
|
|
reg [`BIT_WIDTH-1:0] r_weight__43;
|
|
reg [`BIT_WIDTH-1:0] r_weight__44;
|
|
reg [`BIT_WIDTH-1:0] r_weight__45;
|
|
reg [`BIT_WIDTH-1:0] r_weight__46;
|
|
reg [`BIT_WIDTH-1:0] r_weight__47;
|
|
reg [`BIT_WIDTH-1:0] r_weight__48;
|
|
reg [`BIT_WIDTH-1:0] r_weight__49;
|
|
reg [`BIT_WIDTH-1:0] r_weight__50;
|
|
reg [`BIT_WIDTH-1:0] r_weight__51;
|
|
reg [`BIT_WIDTH-1:0] r_weight__52;
|
|
reg [`BIT_WIDTH-1:0] r_weight__53;
|
|
reg [`BIT_WIDTH-1:0] r_weight__54;
|
|
reg [`BIT_WIDTH-1:0] r_weight__55;
|
|
reg [`BIT_WIDTH-1:0] r_weight__56;
|
|
reg [`BIT_WIDTH-1:0] r_weight__57;
|
|
reg [`BIT_WIDTH-1:0] r_weight__58;
|
|
reg [`BIT_WIDTH-1:0] r_weight__59;
|
|
|
|
//reg [`LAYER_WIDTH-1:0] r_layer [TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`LAYER_WIDTH-1:0] r_layer__0;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__1;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__2;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__3;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__4;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__5;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__6;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__7;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__8;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__9;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__10;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__11;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__12;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__13;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__14;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__15;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__16;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__17;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__18;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__19;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__20;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__21;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__22;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__23;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__24;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__25;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__26;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__27;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__28;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__29;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__30;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__31;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__32;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__33;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__34;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__35;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__36;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__37;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__38;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__39;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__40;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__41;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__42;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__43;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__44;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__45;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__46;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__47;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__48;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__49;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__50;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__51;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__52;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__53;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__54;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__55;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__56;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__57;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__58;
|
|
reg [`LAYER_WIDTH-1:0] r_layer__59;
|
|
|
|
//reg r_dead [TOTAL_LATENCY - 1:0];
|
|
|
|
reg r_dead__0;
|
|
reg r_dead__1;
|
|
reg r_dead__2;
|
|
reg r_dead__3;
|
|
reg r_dead__4;
|
|
reg r_dead__5;
|
|
reg r_dead__6;
|
|
reg r_dead__7;
|
|
reg r_dead__8;
|
|
reg r_dead__9;
|
|
reg r_dead__10;
|
|
reg r_dead__11;
|
|
reg r_dead__12;
|
|
reg r_dead__13;
|
|
reg r_dead__14;
|
|
reg r_dead__15;
|
|
reg r_dead__16;
|
|
reg r_dead__17;
|
|
reg r_dead__18;
|
|
reg r_dead__19;
|
|
reg r_dead__20;
|
|
reg r_dead__21;
|
|
reg r_dead__22;
|
|
reg r_dead__23;
|
|
reg r_dead__24;
|
|
reg r_dead__25;
|
|
reg r_dead__26;
|
|
reg r_dead__27;
|
|
reg r_dead__28;
|
|
reg r_dead__29;
|
|
reg r_dead__30;
|
|
reg r_dead__31;
|
|
reg r_dead__32;
|
|
reg r_dead__33;
|
|
reg r_dead__34;
|
|
reg r_dead__35;
|
|
reg r_dead__36;
|
|
reg r_dead__37;
|
|
reg r_dead__38;
|
|
reg r_dead__39;
|
|
reg r_dead__40;
|
|
reg r_dead__41;
|
|
reg r_dead__42;
|
|
reg r_dead__43;
|
|
reg r_dead__44;
|
|
reg r_dead__45;
|
|
reg r_dead__46;
|
|
reg r_dead__47;
|
|
reg r_dead__48;
|
|
reg r_dead__49;
|
|
reg r_dead__50;
|
|
reg r_dead__51;
|
|
reg r_dead__52;
|
|
reg r_dead__53;
|
|
reg r_dead__54;
|
|
reg r_dead__55;
|
|
reg r_dead__56;
|
|
reg r_dead__57;
|
|
reg r_dead__58;
|
|
reg r_dead__59;
|
|
|
|
//reg r_hit [TOTAL_LATENCY - 1:0];
|
|
|
|
reg r_hit__0;
|
|
reg r_hit__1;
|
|
reg r_hit__2;
|
|
reg r_hit__3;
|
|
reg r_hit__4;
|
|
reg r_hit__5;
|
|
reg r_hit__6;
|
|
reg r_hit__7;
|
|
reg r_hit__8;
|
|
reg r_hit__9;
|
|
reg r_hit__10;
|
|
reg r_hit__11;
|
|
reg r_hit__12;
|
|
reg r_hit__13;
|
|
reg r_hit__14;
|
|
reg r_hit__15;
|
|
reg r_hit__16;
|
|
reg r_hit__17;
|
|
reg r_hit__18;
|
|
reg r_hit__19;
|
|
reg r_hit__20;
|
|
reg r_hit__21;
|
|
reg r_hit__22;
|
|
reg r_hit__23;
|
|
reg r_hit__24;
|
|
reg r_hit__25;
|
|
reg r_hit__26;
|
|
reg r_hit__27;
|
|
reg r_hit__28;
|
|
reg r_hit__29;
|
|
reg r_hit__30;
|
|
reg r_hit__31;
|
|
reg r_hit__32;
|
|
reg r_hit__33;
|
|
reg r_hit__34;
|
|
reg r_hit__35;
|
|
reg r_hit__36;
|
|
reg r_hit__37;
|
|
reg r_hit__38;
|
|
reg r_hit__39;
|
|
reg r_hit__40;
|
|
reg r_hit__41;
|
|
reg r_hit__42;
|
|
reg r_hit__43;
|
|
reg r_hit__44;
|
|
reg r_hit__45;
|
|
reg r_hit__46;
|
|
reg r_hit__47;
|
|
reg r_hit__48;
|
|
reg r_hit__49;
|
|
reg r_hit__50;
|
|
reg r_hit__51;
|
|
reg r_hit__52;
|
|
reg r_hit__53;
|
|
reg r_hit__54;
|
|
reg r_hit__55;
|
|
reg r_hit__56;
|
|
reg r_hit__57;
|
|
reg r_hit__58;
|
|
reg r_hit__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_diff[TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_diff__0;
|
|
reg [`BIT_WIDTH-1:0] r_diff__1;
|
|
reg [`BIT_WIDTH-1:0] r_diff__2;
|
|
reg [`BIT_WIDTH-1:0] r_diff__3;
|
|
reg [`BIT_WIDTH-1:0] r_diff__4;
|
|
reg [`BIT_WIDTH-1:0] r_diff__5;
|
|
reg [`BIT_WIDTH-1:0] r_diff__6;
|
|
reg [`BIT_WIDTH-1:0] r_diff__7;
|
|
reg [`BIT_WIDTH-1:0] r_diff__8;
|
|
reg [`BIT_WIDTH-1:0] r_diff__9;
|
|
reg [`BIT_WIDTH-1:0] r_diff__10;
|
|
reg [`BIT_WIDTH-1:0] r_diff__11;
|
|
reg [`BIT_WIDTH-1:0] r_diff__12;
|
|
reg [`BIT_WIDTH-1:0] r_diff__13;
|
|
reg [`BIT_WIDTH-1:0] r_diff__14;
|
|
reg [`BIT_WIDTH-1:0] r_diff__15;
|
|
reg [`BIT_WIDTH-1:0] r_diff__16;
|
|
reg [`BIT_WIDTH-1:0] r_diff__17;
|
|
reg [`BIT_WIDTH-1:0] r_diff__18;
|
|
reg [`BIT_WIDTH-1:0] r_diff__19;
|
|
reg [`BIT_WIDTH-1:0] r_diff__20;
|
|
reg [`BIT_WIDTH-1:0] r_diff__21;
|
|
reg [`BIT_WIDTH-1:0] r_diff__22;
|
|
reg [`BIT_WIDTH-1:0] r_diff__23;
|
|
reg [`BIT_WIDTH-1:0] r_diff__24;
|
|
reg [`BIT_WIDTH-1:0] r_diff__25;
|
|
reg [`BIT_WIDTH-1:0] r_diff__26;
|
|
reg [`BIT_WIDTH-1:0] r_diff__27;
|
|
reg [`BIT_WIDTH-1:0] r_diff__28;
|
|
reg [`BIT_WIDTH-1:0] r_diff__29;
|
|
reg [`BIT_WIDTH-1:0] r_diff__30;
|
|
reg [`BIT_WIDTH-1:0] r_diff__31;
|
|
reg [`BIT_WIDTH-1:0] r_diff__32;
|
|
reg [`BIT_WIDTH-1:0] r_diff__33;
|
|
reg [`BIT_WIDTH-1:0] r_diff__34;
|
|
reg [`BIT_WIDTH-1:0] r_diff__35;
|
|
reg [`BIT_WIDTH-1:0] r_diff__36;
|
|
reg [`BIT_WIDTH-1:0] r_diff__37;
|
|
reg [`BIT_WIDTH-1:0] r_diff__38;
|
|
reg [`BIT_WIDTH-1:0] r_diff__39;
|
|
reg [`BIT_WIDTH-1:0] r_diff__40;
|
|
reg [`BIT_WIDTH-1:0] r_diff__41;
|
|
reg [`BIT_WIDTH-1:0] r_diff__42;
|
|
reg [`BIT_WIDTH-1:0] r_diff__43;
|
|
reg [`BIT_WIDTH-1:0] r_diff__44;
|
|
reg [`BIT_WIDTH-1:0] r_diff__45;
|
|
reg [`BIT_WIDTH-1:0] r_diff__46;
|
|
reg [`BIT_WIDTH-1:0] r_diff__47;
|
|
reg [`BIT_WIDTH-1:0] r_diff__48;
|
|
reg [`BIT_WIDTH-1:0] r_diff__49;
|
|
reg [`BIT_WIDTH-1:0] r_diff__50;
|
|
reg [`BIT_WIDTH-1:0] r_diff__51;
|
|
reg [`BIT_WIDTH-1:0] r_diff__52;
|
|
reg [`BIT_WIDTH-1:0] r_diff__53;
|
|
reg [`BIT_WIDTH-1:0] r_diff__54;
|
|
reg [`BIT_WIDTH-1:0] r_diff__55;
|
|
reg [`BIT_WIDTH-1:0] r_diff__56;
|
|
reg [`BIT_WIDTH-1:0] r_diff__57;
|
|
reg [`BIT_WIDTH-1:0] r_diff__58;
|
|
reg [`BIT_WIDTH-1:0] r_diff__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_dl_b[TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__0;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__1;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__2;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__3;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__4;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__5;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__6;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__7;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__8;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__9;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__10;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__11;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__12;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__13;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__14;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__15;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__16;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__17;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__18;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__19;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__20;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__21;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__22;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__23;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__24;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__25;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__26;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__27;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__28;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__29;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__30;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__31;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__32;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__33;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__34;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__35;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__36;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__37;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__38;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__39;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__40;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__41;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__42;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__43;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__44;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__45;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__46;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__47;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__48;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__49;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__50;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__51;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__52;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__53;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__54;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__55;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__56;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__57;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__58;
|
|
reg [`BIT_WIDTH-1:0] r_dl_b__59;
|
|
|
|
//reg [2*`BIT_WIDTH-1:0] r_numer[TOTAL_LATENCY - 1:0];
|
|
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__0;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__1;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__2;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__3;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__4;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__5;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__6;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__7;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__8;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__9;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__10;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__11;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__12;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__13;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__14;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__15;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__16;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__17;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__18;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__19;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__20;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__21;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__22;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__23;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__24;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__25;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__26;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__27;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__28;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__29;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__30;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__31;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__32;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__33;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__34;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__35;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__36;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__37;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__38;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__39;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__40;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__41;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__42;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__43;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__44;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__45;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__46;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__47;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__48;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__49;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__50;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__51;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__52;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__53;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__54;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__55;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__56;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__57;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__58;
|
|
reg [2*`BIT_WIDTH-1:0] r_numer__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_z1[TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_z1__0;
|
|
reg [`BIT_WIDTH-1:0] r_z1__1;
|
|
reg [`BIT_WIDTH-1:0] r_z1__2;
|
|
reg [`BIT_WIDTH-1:0] r_z1__3;
|
|
reg [`BIT_WIDTH-1:0] r_z1__4;
|
|
reg [`BIT_WIDTH-1:0] r_z1__5;
|
|
reg [`BIT_WIDTH-1:0] r_z1__6;
|
|
reg [`BIT_WIDTH-1:0] r_z1__7;
|
|
reg [`BIT_WIDTH-1:0] r_z1__8;
|
|
reg [`BIT_WIDTH-1:0] r_z1__9;
|
|
reg [`BIT_WIDTH-1:0] r_z1__10;
|
|
reg [`BIT_WIDTH-1:0] r_z1__11;
|
|
reg [`BIT_WIDTH-1:0] r_z1__12;
|
|
reg [`BIT_WIDTH-1:0] r_z1__13;
|
|
reg [`BIT_WIDTH-1:0] r_z1__14;
|
|
reg [`BIT_WIDTH-1:0] r_z1__15;
|
|
reg [`BIT_WIDTH-1:0] r_z1__16;
|
|
reg [`BIT_WIDTH-1:0] r_z1__17;
|
|
reg [`BIT_WIDTH-1:0] r_z1__18;
|
|
reg [`BIT_WIDTH-1:0] r_z1__19;
|
|
reg [`BIT_WIDTH-1:0] r_z1__20;
|
|
reg [`BIT_WIDTH-1:0] r_z1__21;
|
|
reg [`BIT_WIDTH-1:0] r_z1__22;
|
|
reg [`BIT_WIDTH-1:0] r_z1__23;
|
|
reg [`BIT_WIDTH-1:0] r_z1__24;
|
|
reg [`BIT_WIDTH-1:0] r_z1__25;
|
|
reg [`BIT_WIDTH-1:0] r_z1__26;
|
|
reg [`BIT_WIDTH-1:0] r_z1__27;
|
|
reg [`BIT_WIDTH-1:0] r_z1__28;
|
|
reg [`BIT_WIDTH-1:0] r_z1__29;
|
|
reg [`BIT_WIDTH-1:0] r_z1__30;
|
|
reg [`BIT_WIDTH-1:0] r_z1__31;
|
|
reg [`BIT_WIDTH-1:0] r_z1__32;
|
|
reg [`BIT_WIDTH-1:0] r_z1__33;
|
|
reg [`BIT_WIDTH-1:0] r_z1__34;
|
|
reg [`BIT_WIDTH-1:0] r_z1__35;
|
|
reg [`BIT_WIDTH-1:0] r_z1__36;
|
|
reg [`BIT_WIDTH-1:0] r_z1__37;
|
|
reg [`BIT_WIDTH-1:0] r_z1__38;
|
|
reg [`BIT_WIDTH-1:0] r_z1__39;
|
|
reg [`BIT_WIDTH-1:0] r_z1__40;
|
|
reg [`BIT_WIDTH-1:0] r_z1__41;
|
|
reg [`BIT_WIDTH-1:0] r_z1__42;
|
|
reg [`BIT_WIDTH-1:0] r_z1__43;
|
|
reg [`BIT_WIDTH-1:0] r_z1__44;
|
|
reg [`BIT_WIDTH-1:0] r_z1__45;
|
|
reg [`BIT_WIDTH-1:0] r_z1__46;
|
|
reg [`BIT_WIDTH-1:0] r_z1__47;
|
|
reg [`BIT_WIDTH-1:0] r_z1__48;
|
|
reg [`BIT_WIDTH-1:0] r_z1__49;
|
|
reg [`BIT_WIDTH-1:0] r_z1__50;
|
|
reg [`BIT_WIDTH-1:0] r_z1__51;
|
|
reg [`BIT_WIDTH-1:0] r_z1__52;
|
|
reg [`BIT_WIDTH-1:0] r_z1__53;
|
|
reg [`BIT_WIDTH-1:0] r_z1__54;
|
|
reg [`BIT_WIDTH-1:0] r_z1__55;
|
|
reg [`BIT_WIDTH-1:0] r_z1__56;
|
|
reg [`BIT_WIDTH-1:0] r_z1__57;
|
|
reg [`BIT_WIDTH-1:0] r_z1__58;
|
|
reg [`BIT_WIDTH-1:0] r_z1__59;
|
|
|
|
//reg [`BIT_WIDTH-1:0] r_z0[TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_z0__0;
|
|
reg [`BIT_WIDTH-1:0] r_z0__1;
|
|
reg [`BIT_WIDTH-1:0] r_z0__2;
|
|
reg [`BIT_WIDTH-1:0] r_z0__3;
|
|
reg [`BIT_WIDTH-1:0] r_z0__4;
|
|
reg [`BIT_WIDTH-1:0] r_z0__5;
|
|
reg [`BIT_WIDTH-1:0] r_z0__6;
|
|
reg [`BIT_WIDTH-1:0] r_z0__7;
|
|
reg [`BIT_WIDTH-1:0] r_z0__8;
|
|
reg [`BIT_WIDTH-1:0] r_z0__9;
|
|
reg [`BIT_WIDTH-1:0] r_z0__10;
|
|
reg [`BIT_WIDTH-1:0] r_z0__11;
|
|
reg [`BIT_WIDTH-1:0] r_z0__12;
|
|
reg [`BIT_WIDTH-1:0] r_z0__13;
|
|
reg [`BIT_WIDTH-1:0] r_z0__14;
|
|
reg [`BIT_WIDTH-1:0] r_z0__15;
|
|
reg [`BIT_WIDTH-1:0] r_z0__16;
|
|
reg [`BIT_WIDTH-1:0] r_z0__17;
|
|
reg [`BIT_WIDTH-1:0] r_z0__18;
|
|
reg [`BIT_WIDTH-1:0] r_z0__19;
|
|
reg [`BIT_WIDTH-1:0] r_z0__20;
|
|
reg [`BIT_WIDTH-1:0] r_z0__21;
|
|
reg [`BIT_WIDTH-1:0] r_z0__22;
|
|
reg [`BIT_WIDTH-1:0] r_z0__23;
|
|
reg [`BIT_WIDTH-1:0] r_z0__24;
|
|
reg [`BIT_WIDTH-1:0] r_z0__25;
|
|
reg [`BIT_WIDTH-1:0] r_z0__26;
|
|
reg [`BIT_WIDTH-1:0] r_z0__27;
|
|
reg [`BIT_WIDTH-1:0] r_z0__28;
|
|
reg [`BIT_WIDTH-1:0] r_z0__29;
|
|
reg [`BIT_WIDTH-1:0] r_z0__30;
|
|
reg [`BIT_WIDTH-1:0] r_z0__31;
|
|
reg [`BIT_WIDTH-1:0] r_z0__32;
|
|
reg [`BIT_WIDTH-1:0] r_z0__33;
|
|
reg [`BIT_WIDTH-1:0] r_z0__34;
|
|
reg [`BIT_WIDTH-1:0] r_z0__35;
|
|
reg [`BIT_WIDTH-1:0] r_z0__36;
|
|
reg [`BIT_WIDTH-1:0] r_z0__37;
|
|
reg [`BIT_WIDTH-1:0] r_z0__38;
|
|
reg [`BIT_WIDTH-1:0] r_z0__39;
|
|
reg [`BIT_WIDTH-1:0] r_z0__40;
|
|
reg [`BIT_WIDTH-1:0] r_z0__41;
|
|
reg [`BIT_WIDTH-1:0] r_z0__42;
|
|
reg [`BIT_WIDTH-1:0] r_z0__43;
|
|
reg [`BIT_WIDTH-1:0] r_z0__44;
|
|
reg [`BIT_WIDTH-1:0] r_z0__45;
|
|
reg [`BIT_WIDTH-1:0] r_z0__46;
|
|
reg [`BIT_WIDTH-1:0] r_z0__47;
|
|
reg [`BIT_WIDTH-1:0] r_z0__48;
|
|
reg [`BIT_WIDTH-1:0] r_z0__49;
|
|
reg [`BIT_WIDTH-1:0] r_z0__50;
|
|
reg [`BIT_WIDTH-1:0] r_z0__51;
|
|
reg [`BIT_WIDTH-1:0] r_z0__52;
|
|
reg [`BIT_WIDTH-1:0] r_z0__53;
|
|
reg [`BIT_WIDTH-1:0] r_z0__54;
|
|
reg [`BIT_WIDTH-1:0] r_z0__55;
|
|
reg [`BIT_WIDTH-1:0] r_z0__56;
|
|
reg [`BIT_WIDTH-1:0] r_z0__57;
|
|
reg [`BIT_WIDTH-1:0] r_z0__58;
|
|
reg [`BIT_WIDTH-1:0] r_z0__59;
|
|
//reg [`BIT_WIDTH-1:0] r_mut[TOTAL_LATENCY - 1:0];
|
|
|
|
reg [`BIT_WIDTH-1:0] r_mut__0;
|
|
reg [`BIT_WIDTH-1:0] r_mut__1;
|
|
reg [`BIT_WIDTH-1:0] r_mut__2;
|
|
reg [`BIT_WIDTH-1:0] r_mut__3;
|
|
reg [`BIT_WIDTH-1:0] r_mut__4;
|
|
reg [`BIT_WIDTH-1:0] r_mut__5;
|
|
reg [`BIT_WIDTH-1:0] r_mut__6;
|
|
reg [`BIT_WIDTH-1:0] r_mut__7;
|
|
reg [`BIT_WIDTH-1:0] r_mut__8;
|
|
reg [`BIT_WIDTH-1:0] r_mut__9;
|
|
reg [`BIT_WIDTH-1:0] r_mut__10;
|
|
reg [`BIT_WIDTH-1:0] r_mut__11;
|
|
reg [`BIT_WIDTH-1:0] r_mut__12;
|
|
reg [`BIT_WIDTH-1:0] r_mut__13;
|
|
reg [`BIT_WIDTH-1:0] r_mut__14;
|
|
reg [`BIT_WIDTH-1:0] r_mut__15;
|
|
reg [`BIT_WIDTH-1:0] r_mut__16;
|
|
reg [`BIT_WIDTH-1:0] r_mut__17;
|
|
reg [`BIT_WIDTH-1:0] r_mut__18;
|
|
reg [`BIT_WIDTH-1:0] r_mut__19;
|
|
reg [`BIT_WIDTH-1:0] r_mut__20;
|
|
reg [`BIT_WIDTH-1:0] r_mut__21;
|
|
reg [`BIT_WIDTH-1:0] r_mut__22;
|
|
reg [`BIT_WIDTH-1:0] r_mut__23;
|
|
reg [`BIT_WIDTH-1:0] r_mut__24;
|
|
reg [`BIT_WIDTH-1:0] r_mut__25;
|
|
reg [`BIT_WIDTH-1:0] r_mut__26;
|
|
reg [`BIT_WIDTH-1:0] r_mut__27;
|
|
reg [`BIT_WIDTH-1:0] r_mut__28;
|
|
reg [`BIT_WIDTH-1:0] r_mut__29;
|
|
reg [`BIT_WIDTH-1:0] r_mut__30;
|
|
reg [`BIT_WIDTH-1:0] r_mut__31;
|
|
reg [`BIT_WIDTH-1:0] r_mut__32;
|
|
reg [`BIT_WIDTH-1:0] r_mut__33;
|
|
reg [`BIT_WIDTH-1:0] r_mut__34;
|
|
reg [`BIT_WIDTH-1:0] r_mut__35;
|
|
reg [`BIT_WIDTH-1:0] r_mut__36;
|
|
reg [`BIT_WIDTH-1:0] r_mut__37;
|
|
reg [`BIT_WIDTH-1:0] r_mut__38;
|
|
reg [`BIT_WIDTH-1:0] r_mut__39;
|
|
reg [`BIT_WIDTH-1:0] r_mut__40;
|
|
reg [`BIT_WIDTH-1:0] r_mut__41;
|
|
reg [`BIT_WIDTH-1:0] r_mut__42;
|
|
reg [`BIT_WIDTH-1:0] r_mut__43;
|
|
reg [`BIT_WIDTH-1:0] r_mut__44;
|
|
reg [`BIT_WIDTH-1:0] r_mut__45;
|
|
reg [`BIT_WIDTH-1:0] r_mut__46;
|
|
reg [`BIT_WIDTH-1:0] r_mut__47;
|
|
reg [`BIT_WIDTH-1:0] r_mut__48;
|
|
reg [`BIT_WIDTH-1:0] r_mut__49;
|
|
reg [`BIT_WIDTH-1:0] r_mut__50;
|
|
reg [`BIT_WIDTH-1:0] r_mut__51;
|
|
reg [`BIT_WIDTH-1:0] r_mut__52;
|
|
reg [`BIT_WIDTH-1:0] r_mut__53;
|
|
reg [`BIT_WIDTH-1:0] r_mut__54;
|
|
reg [`BIT_WIDTH-1:0] r_mut__55;
|
|
reg [`BIT_WIDTH-1:0] r_mut__56;
|
|
reg [`BIT_WIDTH-1:0] r_mut__57;
|
|
reg [`BIT_WIDTH-1:0] r_mut__58;
|
|
reg [`BIT_WIDTH-1:0] r_mut__59;
|
|
|
|
wire [2*`BIT_WIDTH-1:0] sleftz_big;
|
|
wire [2*`BIT_WIDTH-1:0] sleftr_big;
|
|
wire [2*`BIT_WIDTH-1:0] sr_big;
|
|
wire [`BIT_WIDTH-1:0] remainder_div1;
|
|
wire [2*`BIT_WIDTH-1:0] quotient_div1;
|
|
|
|
//ASSIGNMENTS FROM PIPE TO OUTPUT
|
|
assign x_boundaryChecker = r_x__59;
|
|
assign y_boundaryChecker = r_y__59;
|
|
assign z_boundaryChecker = r_z__59;
|
|
assign ux_boundaryChecker = r_ux__59;
|
|
assign uy_boundaryChecker = r_uy__59;
|
|
assign uz_boundaryChecker = r_uz__59;
|
|
assign sz_boundaryChecker = r_sz__59;
|
|
assign sr_boundaryChecker = r_sr__59;
|
|
assign sleftz_boundaryChecker = r_sleftz__59;
|
|
assign sleftr_boundaryChecker = r_sleftr__59;
|
|
assign weight_boundaryChecker = r_weight__59;
|
|
assign layer_boundaryChecker = r_layer__59;
|
|
assign dead_boundaryChecker = r_dead__59;
|
|
assign hit_boundaryChecker = r_hit__59;
|
|
|
|
// divider
|
|
signed_div_30 divide_u1 (
|
|
.clock(clock),
|
|
.denom(c_uz__0),
|
|
.numer(c_numer__0),
|
|
.quotient(quotient_div1),
|
|
.remain(remainder_div1));
|
|
|
|
// multipliers
|
|
mult_signed_32_bc mult_u1(
|
|
.clock(clock),
|
|
.dataa(c_diff__30),
|
|
.datab(c_mut__30),
|
|
.result(sleftz_big));
|
|
|
|
mult_signed_32_bc mult_u2(
|
|
.clock(clock),
|
|
.dataa(maxDepth_over_maxRadius),
|
|
.datab(c_sleftz__31),
|
|
.result(sleftr_big));
|
|
|
|
mult_signed_32_bc mult_u3(
|
|
.clock(clock),
|
|
.dataa(maxDepth_over_maxRadius),
|
|
.datab(c_dl_b__30),
|
|
.result(sr_big));
|
|
|
|
// multiplexor to find z1 and z0
|
|
always @(c_layer__0 or z1_0 or z0_0 or mut_0 or
|
|
z1_1 or z0_1 or mut_1 or
|
|
z1_2 or z0_2 or mut_2 or
|
|
z1_3 or z0_3 or mut_3 or
|
|
z1_4 or z0_4 or mut_4 or
|
|
z1_5 or z0_5 or mut_5)
|
|
begin
|
|
case(c_layer__0)
|
|
3'b000:
|
|
begin
|
|
c_z1__0 = z1_0;
|
|
c_z0__0 = z0_0;
|
|
c_mut__0 = mut_0;
|
|
end
|
|
3'b001:
|
|
begin
|
|
c_z1__0 = z1_1;
|
|
c_z0__0 = z0_1;
|
|
c_mut__0 = mut_1;
|
|
end
|
|
3'b010:
|
|
begin
|
|
c_z1__0 = z1_2;
|
|
c_z0__0 = z0_2;
|
|
c_mut__0 = mut_2;
|
|
end
|
|
3'b011:
|
|
begin
|
|
c_z1__0 = z1_3;
|
|
c_z0__0 = z0_3;
|
|
c_mut__0 = mut_3;
|
|
end
|
|
3'b100:
|
|
begin
|
|
c_z1__0 = z1_4;
|
|
c_z0__0 = z0_4;
|
|
c_mut__0 = mut_4;
|
|
end
|
|
3'b101:
|
|
begin
|
|
c_z1__0 = z1_5;
|
|
c_z0__0 = z0_5;
|
|
c_mut__0 = mut_5;
|
|
end
|
|
default:
|
|
begin
|
|
c_z1__0 = 0;
|
|
c_z0__0 = 0;
|
|
c_mut__0 = 0;
|
|
end
|
|
endcase
|
|
end
|
|
|
|
// May have to change block staments on this one for odin
|
|
// set numerator
|
|
always @(c_uz__0 or c_z1__0 or c_z__0 or c_z0__0)
|
|
begin
|
|
//c_numer__0 = 63'b0;
|
|
if(c_uz__0[31] == 1'b0)
|
|
begin
|
|
c_numer__0[63:32] = c_z1__0 - c_z__0;
|
|
c_numer__0[31:0] = 32'b0;
|
|
end
|
|
else if(c_uz__0[31] == 1'b1)
|
|
begin
|
|
c_numer__0[63:32] = c_z0__0 - c_z__0;
|
|
c_numer__0[31:0] = 32'b0;
|
|
end
|
|
else
|
|
begin
|
|
c_numer__0 = 63'b0;
|
|
end
|
|
end
|
|
|
|
// initialize uninitialized data in pipeline
|
|
always @(x_mover or y_mover or z_mover or
|
|
ux_mover or uy_mover or uz_mover or
|
|
sz_mover or sr_mover or sleftz_mover or sleftr_mover or
|
|
weight_mover or layer_mover or dead_mover)
|
|
begin
|
|
c_x__0 = x_mover;
|
|
c_y__0 = y_mover;
|
|
c_z__0 = z_mover;
|
|
c_ux__0 = ux_mover;
|
|
c_uy__0 = uy_mover;
|
|
c_uz__0 = uz_mover;
|
|
c_sz__0 = sz_mover;
|
|
c_sr__0 = sr_mover;
|
|
c_sleftz__0 = sleftz_mover;
|
|
c_sleftr__0 = sleftr_mover;
|
|
c_weight__0 = weight_mover;
|
|
c_layer__0 = layer_mover;
|
|
c_dead__0 = dead_mover;
|
|
c_hit__0 = 1'b0;
|
|
c_diff__0 = 32'b0;
|
|
c_dl_b__0 = 32'b0;
|
|
end
|
|
|
|
// Determine new (x,y,z) coordinates
|
|
always @(r_x__0 or r_y__0 or r_z__0 or r_ux__0 or r_uy__0 or r_uz__0 or r_sz__0 or r_sr__0 or r_sleftz__0 or r_sleftr__0 or
|
|
r_weight__0 or r_layer__0 or r_dead__0 or r_hit__0 or r_diff__0 or r_dl_b__0 or r_numer__0 or r_z1__0 or r_z0__0 or r_mut__0 or
|
|
|
|
r_x__1 or r_y__1 or r_z__1 or r_ux__1 or r_uy__1 or r_uz__1 or r_sz__1 or r_sr__1 or r_sleftz__1 or r_sleftr__1 or
|
|
r_weight__1 or r_layer__1 or r_dead__1 or r_hit__1 or r_diff__1 or r_dl_b__1 or r_numer__1 or r_z1__1 or r_z0__1 or r_mut__1 or
|
|
|
|
r_x__2 or r_y__2 or r_z__2 or r_ux__2 or r_uy__2 or r_uz__2 or r_sz__2 or r_sr__2 or r_sleftz__2 or r_sleftr__2 or
|
|
r_weight__2 or r_layer__2 or r_dead__2 or r_hit__2 or r_diff__2 or r_dl_b__2 or r_numer__2 or r_z1__2 or r_z0__2 or r_mut__2 or
|
|
|
|
r_x__3 or r_y__3 or r_z__3 or r_ux__3 or r_uy__3 or r_uz__3 or r_sz__3 or r_sr__3 or r_sleftz__3 or r_sleftr__3 or
|
|
r_weight__3 or r_layer__3 or r_dead__3 or r_hit__3 or r_diff__3 or r_dl_b__3 or r_numer__3 or r_z1__3 or r_z0__3 or r_mut__3 or
|
|
|
|
r_x__4 or r_y__4 or r_z__4 or r_ux__4 or r_uy__4 or r_uz__4 or r_sz__4 or r_sr__4 or r_sleftz__4 or r_sleftr__4 or
|
|
r_weight__4 or r_layer__4 or r_dead__4 or r_hit__4 or r_diff__4 or r_dl_b__4 or r_numer__4 or r_z1__4 or r_z0__4 or r_mut__4 or
|
|
|
|
r_x__5 or r_y__5 or r_z__5 or r_ux__5 or r_uy__5 or r_uz__5 or r_sz__5 or r_sr__5 or r_sleftz__5 or r_sleftr__5 or
|
|
r_weight__5 or r_layer__5 or r_dead__5 or r_hit__5 or r_diff__5 or r_dl_b__5 or r_numer__5 or r_z1__5 or r_z0__5 or r_mut__5 or
|
|
|
|
r_x__6 or r_y__6 or r_z__6 or r_ux__6 or r_uy__6 or r_uz__6 or r_sz__6 or r_sr__6 or r_sleftz__6 or r_sleftr__6 or
|
|
r_weight__6 or r_layer__6 or r_dead__6 or r_hit__6 or r_diff__6 or r_dl_b__6 or r_numer__6 or r_z1__6 or r_z0__6 or r_mut__6 or
|
|
|
|
r_x__7 or r_y__7 or r_z__7 or r_ux__7 or r_uy__7 or r_uz__7 or r_sz__7 or r_sr__7 or r_sleftz__7 or r_sleftr__7 or
|
|
r_weight__7 or r_layer__7 or r_dead__7 or r_hit__7 or r_diff__7 or r_dl_b__7 or r_numer__7 or r_z1__7 or r_z0__7 or r_mut__7 or
|
|
|
|
r_x__8 or r_y__8 or r_z__8 or r_ux__8 or r_uy__8 or r_uz__8 or r_sz__8 or r_sr__8 or r_sleftz__8 or r_sleftr__8 or
|
|
r_weight__8 or r_layer__8 or r_dead__8 or r_hit__8 or r_diff__8 or r_dl_b__8 or r_numer__8 or r_z1__8 or r_z0__8 or r_mut__8 or
|
|
|
|
r_x__9 or r_y__9 or r_z__9 or r_ux__9 or r_uy__9 or r_uz__9 or r_sz__9 or r_sr__9 or r_sleftz__9 or r_sleftr__9 or
|
|
r_weight__9 or r_layer__9 or r_dead__9 or r_hit__9 or r_diff__9 or r_dl_b__9 or r_numer__9 or r_z1__9 or r_z0__9 or r_mut__9 or
|
|
|
|
r_x__10 or r_y__10 or r_z__10 or r_ux__10 or r_uy__10 or r_uz__10 or r_sz__10 or r_sr__10 or r_sleftz__10 or r_sleftr__10 or
|
|
r_weight__10 or r_layer__10 or r_dead__10 or r_hit__10 or r_diff__10 or r_dl_b__10 or r_numer__10 or r_z1__10 or r_z0__10 or r_mut__10 or
|
|
|
|
r_x__11 or r_y__11 or r_z__11 or r_ux__11 or r_uy__11 or r_uz__11 or r_sz__11 or r_sr__11 or r_sleftz__11 or r_sleftr__11 or
|
|
r_weight__11 or r_layer__11 or r_dead__11 or r_hit__11 or r_diff__11 or r_dl_b__11 or r_numer__11 or r_z1__11 or r_z0__11 or r_mut__11 or
|
|
|
|
r_x__12 or r_y__12 or r_z__12 or r_ux__12 or r_uy__12 or r_uz__12 or r_sz__12 or r_sr__12 or r_sleftz__12 or r_sleftr__12 or
|
|
r_weight__12 or r_layer__12 or r_dead__12 or r_hit__12 or r_diff__12 or r_dl_b__12 or r_numer__12 or r_z1__12 or r_z0__12 or r_mut__12 or
|
|
|
|
r_x__13 or r_y__13 or r_z__13 or r_ux__13 or r_uy__13 or r_uz__13 or r_sz__13 or r_sr__13 or r_sleftz__13 or r_sleftr__13 or
|
|
r_weight__13 or r_layer__13 or r_dead__13 or r_hit__13 or r_diff__13 or r_dl_b__13 or r_numer__13 or r_z1__13 or r_z0__13 or r_mut__13 or
|
|
|
|
r_x__14 or r_y__14 or r_z__14 or r_ux__14 or r_uy__14 or r_uz__14 or r_sz__14 or r_sr__14 or r_sleftz__14 or r_sleftr__14 or
|
|
r_weight__14 or r_layer__14 or r_dead__14 or r_hit__14 or r_diff__14 or r_dl_b__14 or r_numer__14 or r_z1__14 or r_z0__14 or r_mut__14 or
|
|
|
|
r_x__15 or r_y__15 or r_z__15 or r_ux__15 or r_uy__15 or r_uz__15 or r_sz__15 or r_sr__15 or r_sleftz__15 or r_sleftr__15 or
|
|
r_weight__15 or r_layer__15 or r_dead__15 or r_hit__15 or r_diff__15 or r_dl_b__15 or r_numer__15 or r_z1__15 or r_z0__15 or r_mut__15 or
|
|
|
|
r_x__16 or r_y__16 or r_z__16 or r_ux__16 or r_uy__16 or r_uz__16 or r_sz__16 or r_sr__16 or r_sleftz__16 or r_sleftr__16 or
|
|
r_weight__16 or r_layer__16 or r_dead__16 or r_hit__16 or r_diff__16 or r_dl_b__16 or r_numer__16 or r_z1__16 or r_z0__16 or r_mut__16 or
|
|
|
|
r_x__17 or r_y__17 or r_z__17 or r_ux__17 or r_uy__17 or r_uz__17 or r_sz__17 or r_sr__17 or r_sleftz__17 or r_sleftr__17 or
|
|
r_weight__17 or r_layer__17 or r_dead__17 or r_hit__17 or r_diff__17 or r_dl_b__17 or r_numer__17 or r_z1__17 or r_z0__17 or r_mut__17 or
|
|
|
|
r_x__18 or r_y__18 or r_z__18 or r_ux__18 or r_uy__18 or r_uz__18 or r_sz__18 or r_sr__18 or r_sleftz__18 or r_sleftr__18 or
|
|
r_weight__18 or r_layer__18 or r_dead__18 or r_hit__18 or r_diff__18 or r_dl_b__18 or r_numer__18 or r_z1__18 or r_z0__18 or r_mut__18 or
|
|
|
|
r_x__19 or r_y__19 or r_z__19 or r_ux__19 or r_uy__19 or r_uz__19 or r_sz__19 or r_sr__19 or r_sleftz__19 or r_sleftr__19 or
|
|
r_weight__19 or r_layer__19 or r_dead__19 or r_hit__19 or r_diff__19 or r_dl_b__19 or r_numer__19 or r_z1__19 or r_z0__19 or r_mut__19 or
|
|
|
|
r_x__20 or r_y__20 or r_z__20 or r_ux__20 or r_uy__20 or r_uz__20 or r_sz__20 or r_sr__20 or r_sleftz__20 or r_sleftr__20 or
|
|
r_weight__20 or r_layer__20 or r_dead__20 or r_hit__20 or r_diff__20 or r_dl_b__20 or r_numer__20 or r_z1__20 or r_z0__20 or r_mut__20 or
|
|
|
|
r_x__21 or r_y__21 or r_z__21 or r_ux__21 or r_uy__21 or r_uz__21 or r_sz__21 or r_sr__21 or r_sleftz__21 or r_sleftr__21 or
|
|
r_weight__21 or r_layer__21 or r_dead__21 or r_hit__21 or r_diff__21 or r_dl_b__21 or r_numer__21 or r_z1__21 or r_z0__21 or r_mut__21 or
|
|
|
|
r_x__22 or r_y__22 or r_z__22 or r_ux__22 or r_uy__22 or r_uz__22 or r_sz__22 or r_sr__22 or r_sleftz__22 or r_sleftr__22 or
|
|
r_weight__22 or r_layer__22 or r_dead__22 or r_hit__22 or r_diff__22 or r_dl_b__22 or r_numer__22 or r_z1__22 or r_z0__22 or r_mut__22 or
|
|
|
|
r_x__23 or r_y__23 or r_z__23 or r_ux__23 or r_uy__23 or r_uz__23 or r_sz__23 or r_sr__23 or r_sleftz__23 or r_sleftr__23 or
|
|
r_weight__23 or r_layer__23 or r_dead__23 or r_hit__23 or r_diff__23 or r_dl_b__23 or r_numer__23 or r_z1__23 or r_z0__23 or r_mut__23 or
|
|
|
|
r_x__24 or r_y__24 or r_z__24 or r_ux__24 or r_uy__24 or r_uz__24 or r_sz__24 or r_sr__24 or r_sleftz__24 or r_sleftr__24 or
|
|
r_weight__24 or r_layer__24 or r_dead__24 or r_hit__24 or r_diff__24 or r_dl_b__24 or r_numer__24 or r_z1__24 or r_z0__24 or r_mut__24 or
|
|
|
|
r_x__25 or r_y__25 or r_z__25 or r_ux__25 or r_uy__25 or r_uz__25 or r_sz__25 or r_sr__25 or r_sleftz__25 or r_sleftr__25 or
|
|
r_weight__25 or r_layer__25 or r_dead__25 or r_hit__25 or r_diff__25 or r_dl_b__25 or r_numer__25 or r_z1__25 or r_z0__25 or r_mut__25 or
|
|
|
|
r_x__26 or r_y__26 or r_z__26 or r_ux__26 or r_uy__26 or r_uz__26 or r_sz__26 or r_sr__26 or r_sleftz__26 or r_sleftr__26 or
|
|
r_weight__26 or r_layer__26 or r_dead__26 or r_hit__26 or r_diff__26 or r_dl_b__26 or r_numer__26 or r_z1__26 or r_z0__26 or r_mut__26 or
|
|
|
|
r_x__27 or r_y__27 or r_z__27 or r_ux__27 or r_uy__27 or r_uz__27 or r_sz__27 or r_sr__27 or r_sleftz__27 or r_sleftr__27 or
|
|
r_weight__27 or r_layer__27 or r_dead__27 or r_hit__27 or r_diff__27 or r_dl_b__27 or r_numer__27 or r_z1__27 or r_z0__27 or r_mut__27 or
|
|
|
|
r_x__28 or r_y__28 or r_z__28 or r_ux__28 or r_uy__28 or r_uz__28 or r_sz__28 or r_sr__28 or r_sleftz__28 or r_sleftr__28 or
|
|
r_weight__28 or r_layer__28 or r_dead__28 or r_hit__28 or r_diff__28 or r_dl_b__28 or r_numer__28 or r_z1__28 or r_z0__28 or r_mut__28 or
|
|
|
|
r_x__29 or r_y__29 or r_z__29 or r_ux__29 or r_uy__29 or r_uz__29 or r_sz__29 or r_sr__29 or r_sleftz__29 or r_sleftr__29 or
|
|
r_weight__29 or r_layer__29 or r_dead__29 or r_hit__29 or r_diff__29 or r_dl_b__29 or r_numer__29 or r_z1__29 or r_z0__29 or r_mut__29 or
|
|
|
|
r_x__30 or r_y__30 or r_z__30 or r_ux__30 or r_uy__30 or r_uz__30 or r_sz__30 or r_sr__30 or r_sleftz__30 or r_sleftr__30 or
|
|
r_weight__30 or r_layer__30 or r_dead__30 or r_hit__30 or r_diff__30 or r_dl_b__30 or r_numer__30 or r_z1__30 or r_z0__30 or r_mut__30 or
|
|
|
|
r_x__31 or r_y__31 or r_z__31 or r_ux__31 or r_uy__31 or r_uz__31 or r_sz__31 or r_sr__31 or r_sleftz__31 or r_sleftr__31 or
|
|
r_weight__31 or r_layer__31 or r_dead__31 or r_hit__31 or r_diff__31 or r_dl_b__31 or r_numer__31 or r_z1__31 or r_z0__31 or r_mut__31 or
|
|
|
|
r_x__32 or r_y__32 or r_z__32 or r_ux__32 or r_uy__32 or r_uz__32 or r_sz__32 or r_sr__32 or r_sleftz__32 or r_sleftr__32 or
|
|
r_weight__32 or r_layer__32 or r_dead__32 or r_hit__32 or r_diff__32 or r_dl_b__32 or r_numer__32 or r_z1__32 or r_z0__32 or r_mut__32 or
|
|
|
|
r_x__33 or r_y__33 or r_z__33 or r_ux__33 or r_uy__33 or r_uz__33 or r_sz__33 or r_sr__33 or r_sleftz__33 or r_sleftr__33 or
|
|
r_weight__33 or r_layer__33 or r_dead__33 or r_hit__33 or r_diff__33 or r_dl_b__33 or r_numer__33 or r_z1__33 or r_z0__33 or r_mut__33 or
|
|
|
|
r_x__34 or r_y__34 or r_z__34 or r_ux__34 or r_uy__34 or r_uz__34 or r_sz__34 or r_sr__34 or r_sleftz__34 or r_sleftr__34 or
|
|
r_weight__34 or r_layer__34 or r_dead__34 or r_hit__34 or r_diff__34 or r_dl_b__34 or r_numer__34 or r_z1__34 or r_z0__34 or r_mut__34 or
|
|
|
|
r_x__35 or r_y__35 or r_z__35 or r_ux__35 or r_uy__35 or r_uz__35 or r_sz__35 or r_sr__35 or r_sleftz__35 or r_sleftr__35 or
|
|
r_weight__35 or r_layer__35 or r_dead__35 or r_hit__35 or r_diff__35 or r_dl_b__35 or r_numer__35 or r_z1__35 or r_z0__35 or r_mut__35 or
|
|
|
|
r_x__36 or r_y__36 or r_z__36 or r_ux__36 or r_uy__36 or r_uz__36 or r_sz__36 or r_sr__36 or r_sleftz__36 or r_sleftr__36 or
|
|
r_weight__36 or r_layer__36 or r_dead__36 or r_hit__36 or r_diff__36 or r_dl_b__36 or r_numer__36 or r_z1__36 or r_z0__36 or r_mut__36 or
|
|
|
|
r_x__37 or r_y__37 or r_z__37 or r_ux__37 or r_uy__37 or r_uz__37 or r_sz__37 or r_sr__37 or r_sleftz__37 or r_sleftr__37 or
|
|
r_weight__37 or r_layer__37 or r_dead__37 or r_hit__37 or r_diff__37 or r_dl_b__37 or r_numer__37 or r_z1__37 or r_z0__37 or r_mut__37 or
|
|
|
|
r_x__38 or r_y__38 or r_z__38 or r_ux__38 or r_uy__38 or r_uz__38 or r_sz__38 or r_sr__38 or r_sleftz__38 or r_sleftr__38 or
|
|
r_weight__38 or r_layer__38 or r_dead__38 or r_hit__38 or r_diff__38 or r_dl_b__38 or r_numer__38 or r_z1__38 or r_z0__38 or r_mut__38 or
|
|
|
|
r_x__39 or r_y__39 or r_z__39 or r_ux__39 or r_uy__39 or r_uz__39 or r_sz__39 or r_sr__39 or r_sleftz__39 or r_sleftr__39 or
|
|
r_weight__39 or r_layer__39 or r_dead__39 or r_hit__39 or r_diff__39 or r_dl_b__39 or r_numer__39 or r_z1__39 or r_z0__39 or r_mut__39 or
|
|
|
|
r_x__40 or r_y__40 or r_z__40 or r_ux__40 or r_uy__40 or r_uz__40 or r_sz__40 or r_sr__40 or r_sleftz__40 or r_sleftr__40 or
|
|
r_weight__40 or r_layer__40 or r_dead__40 or r_hit__40 or r_diff__40 or r_dl_b__40 or r_numer__40 or r_z1__40 or r_z0__40 or r_mut__40 or
|
|
|
|
r_x__41 or r_y__41 or r_z__41 or r_ux__41 or r_uy__41 or r_uz__41 or r_sz__41 or r_sr__41 or r_sleftz__41 or r_sleftr__41 or
|
|
r_weight__41 or r_layer__41 or r_dead__41 or r_hit__41 or r_diff__41 or r_dl_b__41 or r_numer__41 or r_z1__41 or r_z0__41 or r_mut__41 or
|
|
|
|
r_x__42 or r_y__42 or r_z__42 or r_ux__42 or r_uy__42 or r_uz__42 or r_sz__42 or r_sr__42 or r_sleftz__42 or r_sleftr__42 or
|
|
r_weight__42 or r_layer__42 or r_dead__42 or r_hit__42 or r_diff__42 or r_dl_b__42 or r_numer__42 or r_z1__42 or r_z0__42 or r_mut__42 or
|
|
|
|
r_x__43 or r_y__43 or r_z__43 or r_ux__43 or r_uy__43 or r_uz__43 or r_sz__43 or r_sr__43 or r_sleftz__43 or r_sleftr__43 or
|
|
r_weight__43 or r_layer__43 or r_dead__43 or r_hit__43 or r_diff__43 or r_dl_b__43 or r_numer__43 or r_z1__43 or r_z0__43 or r_mut__43 or
|
|
|
|
r_x__44 or r_y__44 or r_z__44 or r_ux__44 or r_uy__44 or r_uz__44 or r_sz__44 or r_sr__44 or r_sleftz__44 or r_sleftr__44 or
|
|
r_weight__44 or r_layer__44 or r_dead__44 or r_hit__44 or r_diff__44 or r_dl_b__44 or r_numer__44 or r_z1__44 or r_z0__44 or r_mut__44 or
|
|
|
|
r_x__45 or r_y__45 or r_z__45 or r_ux__45 or r_uy__45 or r_uz__45 or r_sz__45 or r_sr__45 or r_sleftz__45 or r_sleftr__45 or
|
|
r_weight__45 or r_layer__45 or r_dead__45 or r_hit__45 or r_diff__45 or r_dl_b__45 or r_numer__45 or r_z1__45 or r_z0__45 or r_mut__45 or
|
|
|
|
r_x__46 or r_y__46 or r_z__46 or r_ux__46 or r_uy__46 or r_uz__46 or r_sz__46 or r_sr__46 or r_sleftz__46 or r_sleftr__46 or
|
|
r_weight__46 or r_layer__46 or r_dead__46 or r_hit__46 or r_diff__46 or r_dl_b__46 or r_numer__46 or r_z1__46 or r_z0__46 or r_mut__46 or
|
|
|
|
r_x__47 or r_y__47 or r_z__47 or r_ux__47 or r_uy__47 or r_uz__47 or r_sz__47 or r_sr__47 or r_sleftz__47 or r_sleftr__47 or
|
|
r_weight__47 or r_layer__47 or r_dead__47 or r_hit__47 or r_diff__47 or r_dl_b__47 or r_numer__47 or r_z1__47 or r_z0__47 or r_mut__47 or
|
|
|
|
r_x__48 or r_y__48 or r_z__48 or r_ux__48 or r_uy__48 or r_uz__48 or r_sz__48 or r_sr__48 or r_sleftz__48 or r_sleftr__48 or
|
|
r_weight__48 or r_layer__48 or r_dead__48 or r_hit__48 or r_diff__48 or r_dl_b__48 or r_numer__48 or r_z1__48 or r_z0__48 or r_mut__48 or
|
|
|
|
r_x__49 or r_y__49 or r_z__49 or r_ux__49 or r_uy__49 or r_uz__49 or r_sz__49 or r_sr__49 or r_sleftz__49 or r_sleftr__49 or
|
|
r_weight__49 or r_layer__49 or r_dead__49 or r_hit__49 or r_diff__49 or r_dl_b__49 or r_numer__49 or r_z1__49 or r_z0__49 or r_mut__49 or
|
|
|
|
r_x__50 or r_y__50 or r_z__50 or r_ux__50 or r_uy__50 or r_uz__50 or r_sz__50 or r_sr__50 or r_sleftz__50 or r_sleftr__50 or
|
|
r_weight__50 or r_layer__50 or r_dead__50 or r_hit__50 or r_diff__50 or r_dl_b__50 or r_numer__50 or r_z1__50 or r_z0__50 or r_mut__50 or
|
|
|
|
r_x__51 or r_y__51 or r_z__51 or r_ux__51 or r_uy__51 or r_uz__51 or r_sz__51 or r_sr__51 or r_sleftz__51 or r_sleftr__51 or
|
|
r_weight__51 or r_layer__51 or r_dead__51 or r_hit__51 or r_diff__51 or r_dl_b__51 or r_numer__51 or r_z1__51 or r_z0__51 or r_mut__51 or
|
|
|
|
r_x__52 or r_y__52 or r_z__52 or r_ux__52 or r_uy__52 or r_uz__52 or r_sz__52 or r_sr__52 or r_sleftz__52 or r_sleftr__52 or
|
|
r_weight__52 or r_layer__52 or r_dead__52 or r_hit__52 or r_diff__52 or r_dl_b__52 or r_numer__52 or r_z1__52 or r_z0__52 or r_mut__52 or
|
|
|
|
r_x__53 or r_y__53 or r_z__53 or r_ux__53 or r_uy__53 or r_uz__53 or r_sz__53 or r_sr__53 or r_sleftz__53 or r_sleftr__53 or
|
|
r_weight__53 or r_layer__53 or r_dead__53 or r_hit__53 or r_diff__53 or r_dl_b__53 or r_numer__53 or r_z1__53 or r_z0__53 or r_mut__53 or
|
|
|
|
r_x__54 or r_y__54 or r_z__54 or r_ux__54 or r_uy__54 or r_uz__54 or r_sz__54 or r_sr__54 or r_sleftz__54 or r_sleftr__54 or
|
|
r_weight__54 or r_layer__54 or r_dead__54 or r_hit__54 or r_diff__54 or r_dl_b__54 or r_numer__54 or r_z1__54 or r_z0__54 or r_mut__54 or
|
|
|
|
r_x__55 or r_y__55 or r_z__55 or r_ux__55 or r_uy__55 or r_uz__55 or r_sz__55 or r_sr__55 or r_sleftz__55 or r_sleftr__55 or
|
|
r_weight__55 or r_layer__55 or r_dead__55 or r_hit__55 or r_diff__55 or r_dl_b__55 or r_numer__55 or r_z1__55 or r_z0__55 or r_mut__55 or
|
|
|
|
r_x__56 or r_y__56 or r_z__56 or r_ux__56 or r_uy__56 or r_uz__56 or r_sz__56 or r_sr__56 or r_sleftz__56 or r_sleftr__56 or
|
|
r_weight__56 or r_layer__56 or r_dead__56 or r_hit__56 or r_diff__56 or r_dl_b__56 or r_numer__56 or r_z1__56 or r_z0__56 or r_mut__56 or
|
|
|
|
r_x__57 or r_y__57 or r_z__57 or r_ux__57 or r_uy__57 or r_uz__57 or r_sz__57 or r_sr__57 or r_sleftz__57 or r_sleftr__57 or
|
|
r_weight__57 or r_layer__57 or r_dead__57 or r_hit__57 or r_diff__57 or r_dl_b__57 or r_numer__57 or r_z1__57 or r_z0__57 or r_mut__57 or
|
|
|
|
r_x__58 or r_y__58 or r_z__58 or r_ux__58 or r_uy__58 or r_uz__58 or r_sz__58 or r_sr__58 or r_sleftz__58 or r_sleftr__58 or
|
|
r_weight__58 or r_layer__58 or r_dead__58 or r_hit__58 or r_diff__58 or r_dl_b__58 or r_numer__58 or r_z1__58 or r_z0__58 or r_mut__58 or
|
|
|
|
r_x__59 or r_y__59 or r_z__59 or r_ux__59 or r_uy__59 or r_uz__59 or r_sz__59 or r_sr__59 or r_sleftz__59 or r_sleftr__59 or
|
|
r_weight__59 or r_layer__59 or r_dead__59 or r_hit__59 or r_diff__59 or r_dl_b__59 or r_numer__59 or r_z1__59 or r_z0__59 or r_mut__59 or
|
|
|
|
sr_big or sleftz_big or sleftr_big or quotient_div1)
|
|
|
|
// default
|
|
// setup standard pipeline
|
|
// for(i = 1; i < `TOTAL_LATENCY; i = i + 1)
|
|
// begin
|
|
// c_x[i] = r_x[i-1];
|
|
// c_y[i] = r_y[i-1];
|
|
// c_z[i] = r_z[i-1];
|
|
// c_ux[i] = r_ux[i-1];
|
|
// c_uy[i] = r_uy[i-1];
|
|
// c_uz[i] = r_uz[i-1];
|
|
// c_sz[i] = r_sz[i-1];
|
|
// c_sr[i] = r_sr[i-1];
|
|
// c_sleftz[i] = r_sleftz[i-1];
|
|
// c_sleftr[i] = r_sleftr[i-1];
|
|
// c_weight[i] = r_weight[i-1];
|
|
// c_layer[i] = r_layer[i-1];
|
|
// c_dead[i] = r_dead[i-1];
|
|
// c_hit[i] = r_hit[i-1];
|
|
// c_diff[i] = r_diff[i-1];
|
|
// c_dl_b[i] = r_dl_b[i-1];
|
|
// c_numer[i] = r_numer[i-1];
|
|
// c_z1[i] = r_z1[i-1];
|
|
// c_z0[i] = r_z0[i-1];
|
|
// c_mut[i] = r_mut[i-1];
|
|
// end
|
|
|
|
begin
|
|
//Instatiate all 60 instances of the above for-loop
|
|
//for 1
|
|
c_x__1 = r_x__0;
|
|
c_y__1 = r_y__0;
|
|
c_z__1 = r_z__0;
|
|
c_ux__1 = r_ux__0;
|
|
c_uy__1 = r_uy__0;
|
|
c_uz__1 = r_uz__0;
|
|
c_sz__1 = r_sz__0;
|
|
c_sr__1 = r_sr__0;
|
|
c_sleftz__1 = r_sleftz__0;
|
|
c_sleftr__1 = r_sleftr__0;
|
|
c_weight__1 = r_weight__0;
|
|
c_layer__1 = r_layer__0;
|
|
c_dead__1 = r_dead__0;
|
|
c_hit__1 = r_hit__0;
|
|
c_diff__1 = r_diff__0;
|
|
c_dl_b__1 = r_dl_b__0;
|
|
c_numer__1 = r_numer__0;
|
|
c_z1__1 = r_z1__0;
|
|
c_z0__1 = r_z0__0;
|
|
c_mut__1 = r_mut__0;
|
|
|
|
//for 2
|
|
c_x__2 = r_x__1;
|
|
c_y__2 = r_y__1;
|
|
c_z__2 = r_z__1;
|
|
c_ux__2 = r_ux__1;
|
|
c_uy__2 = r_uy__1;
|
|
c_uz__2 = r_uz__1;
|
|
c_sz__2 = r_sz__1;
|
|
c_sr__2 = r_sr__1;
|
|
c_sleftz__2 = r_sleftz__1;
|
|
c_sleftr__2 = r_sleftr__1;
|
|
c_weight__2 = r_weight__1;
|
|
c_layer__2 = r_layer__1;
|
|
c_dead__2 = r_dead__1;
|
|
c_hit__2 = r_hit__1;
|
|
c_diff__2 = r_diff__1;
|
|
c_dl_b__2 = r_dl_b__1;
|
|
c_numer__2 = r_numer__1;
|
|
c_z1__2 = r_z1__1;
|
|
c_z0__2 = r_z0__1;
|
|
c_mut__2 = r_mut__1;
|
|
|
|
//for 3
|
|
c_x__3 = r_x__2;
|
|
c_y__3 = r_y__2;
|
|
c_z__3 = r_z__2;
|
|
c_ux__3 = r_ux__2;
|
|
c_uy__3 = r_uy__2;
|
|
c_uz__3 = r_uz__2;
|
|
c_sz__3 = r_sz__2;
|
|
c_sr__3 = r_sr__2;
|
|
c_sleftz__3 = r_sleftz__2;
|
|
c_sleftr__3 = r_sleftr__2;
|
|
c_weight__3 = r_weight__2;
|
|
c_layer__3 = r_layer__2;
|
|
c_dead__3 = r_dead__2;
|
|
c_hit__3 = r_hit__2;
|
|
c_diff__3 = r_diff__2;
|
|
c_dl_b__3 = r_dl_b__2;
|
|
c_numer__3 = r_numer__2;
|
|
c_z1__3 = r_z1__2;
|
|
c_z0__3 = r_z0__2;
|
|
c_mut__3 = r_mut__2;
|
|
|
|
//for 4
|
|
c_x__4 = r_x__3;
|
|
c_y__4 = r_y__3;
|
|
c_z__4 = r_z__3;
|
|
c_ux__4 = r_ux__3;
|
|
c_uy__4 = r_uy__3;
|
|
c_uz__4 = r_uz__3;
|
|
c_sz__4 = r_sz__3;
|
|
c_sr__4 = r_sr__3;
|
|
c_sleftz__4 = r_sleftz__3;
|
|
c_sleftr__4 = r_sleftr__3;
|
|
c_weight__4 = r_weight__3;
|
|
c_layer__4 = r_layer__3;
|
|
c_dead__4 = r_dead__3;
|
|
c_hit__4 = r_hit__3;
|
|
c_diff__4 = r_diff__3;
|
|
c_dl_b__4 = r_dl_b__3;
|
|
c_numer__4 = r_numer__3;
|
|
c_z1__4 = r_z1__3;
|
|
c_z0__4 = r_z0__3;
|
|
c_mut__4 = r_mut__3;
|
|
|
|
//for 5
|
|
c_x__5 = r_x__4;
|
|
c_y__5 = r_y__4;
|
|
c_z__5 = r_z__4;
|
|
c_ux__5 = r_ux__4;
|
|
c_uy__5 = r_uy__4;
|
|
c_uz__5 = r_uz__4;
|
|
c_sz__5 = r_sz__4;
|
|
c_sr__5 = r_sr__4;
|
|
c_sleftz__5 = r_sleftz__4;
|
|
c_sleftr__5 = r_sleftr__4;
|
|
c_weight__5 = r_weight__4;
|
|
c_layer__5 = r_layer__4;
|
|
c_dead__5 = r_dead__4;
|
|
c_hit__5 = r_hit__4;
|
|
c_diff__5 = r_diff__4;
|
|
c_dl_b__5 = r_dl_b__4;
|
|
c_numer__5 = r_numer__4;
|
|
c_z1__5 = r_z1__4;
|
|
c_z0__5 = r_z0__4;
|
|
c_mut__5 = r_mut__4;
|
|
|
|
//for 6
|
|
c_x__6 = r_x__5;
|
|
c_y__6 = r_y__5;
|
|
c_z__6 = r_z__5;
|
|
c_ux__6 = r_ux__5;
|
|
c_uy__6 = r_uy__5;
|
|
c_uz__6 = r_uz__5;
|
|
c_sz__6 = r_sz__5;
|
|
c_sr__6 = r_sr__5;
|
|
c_sleftz__6 = r_sleftz__5;
|
|
c_sleftr__6 = r_sleftr__5;
|
|
c_weight__6 = r_weight__5;
|
|
c_layer__6 = r_layer__5;
|
|
c_dead__6 = r_dead__5;
|
|
c_hit__6 = r_hit__5;
|
|
c_diff__6 = r_diff__5;
|
|
c_dl_b__6 = r_dl_b__5;
|
|
c_numer__6 = r_numer__5;
|
|
c_z1__6 = r_z1__5;
|
|
c_z0__6 = r_z0__5;
|
|
c_mut__6 = r_mut__5;
|
|
|
|
//for 7
|
|
c_x__7 = r_x__6;
|
|
c_y__7 = r_y__6;
|
|
c_z__7 = r_z__6;
|
|
c_ux__7 = r_ux__6;
|
|
c_uy__7 = r_uy__6;
|
|
c_uz__7 = r_uz__6;
|
|
c_sz__7 = r_sz__6;
|
|
c_sr__7 = r_sr__6;
|
|
c_sleftz__7 = r_sleftz__6;
|
|
c_sleftr__7 = r_sleftr__6;
|
|
c_weight__7 = r_weight__6;
|
|
c_layer__7 = r_layer__6;
|
|
c_dead__7 = r_dead__6;
|
|
c_hit__7 = r_hit__6;
|
|
c_diff__7 = r_diff__6;
|
|
c_dl_b__7 = r_dl_b__6;
|
|
c_numer__7 = r_numer__6;
|
|
c_z1__7 = r_z1__6;
|
|
c_z0__7 = r_z0__6;
|
|
c_mut__7 = r_mut__6;
|
|
|
|
//for 8
|
|
c_x__8 = r_x__7;
|
|
c_y__8 = r_y__7;
|
|
c_z__8 = r_z__7;
|
|
c_ux__8 = r_ux__7;
|
|
c_uy__8 = r_uy__7;
|
|
c_uz__8 = r_uz__7;
|
|
c_sz__8 = r_sz__7;
|
|
c_sr__8 = r_sr__7;
|
|
c_sleftz__8 = r_sleftz__7;
|
|
c_sleftr__8 = r_sleftr__7;
|
|
c_weight__8 = r_weight__7;
|
|
c_layer__8 = r_layer__7;
|
|
c_dead__8 = r_dead__7;
|
|
c_hit__8 = r_hit__7;
|
|
c_diff__8 = r_diff__7;
|
|
c_dl_b__8 = r_dl_b__7;
|
|
c_numer__8 = r_numer__7;
|
|
c_z1__8 = r_z1__7;
|
|
c_z0__8 = r_z0__7;
|
|
c_mut__8 = r_mut__7;
|
|
|
|
//for 9
|
|
c_x__9 = r_x__8;
|
|
c_y__9 = r_y__8;
|
|
c_z__9 = r_z__8;
|
|
c_ux__9 = r_ux__8;
|
|
c_uy__9 = r_uy__8;
|
|
c_uz__9 = r_uz__8;
|
|
c_sz__9 = r_sz__8;
|
|
c_sr__9 = r_sr__8;
|
|
c_sleftz__9 = r_sleftz__8;
|
|
c_sleftr__9 = r_sleftr__8;
|
|
c_weight__9 = r_weight__8;
|
|
c_layer__9 = r_layer__8;
|
|
c_dead__9 = r_dead__8;
|
|
c_hit__9 = r_hit__8;
|
|
c_diff__9 = r_diff__8;
|
|
c_dl_b__9 = r_dl_b__8;
|
|
c_numer__9 = r_numer__8;
|
|
c_z1__9 = r_z1__8;
|
|
c_z0__9 = r_z0__8;
|
|
c_mut__9 = r_mut__8;
|
|
|
|
//for 10
|
|
c_x__10 = r_x__9;
|
|
c_y__10 = r_y__9;
|
|
c_z__10 = r_z__9;
|
|
c_ux__10 = r_ux__9;
|
|
c_uy__10 = r_uy__9;
|
|
c_uz__10 = r_uz__9;
|
|
c_sz__10 = r_sz__9;
|
|
c_sr__10 = r_sr__9;
|
|
c_sleftz__10 = r_sleftz__9;
|
|
c_sleftr__10 = r_sleftr__9;
|
|
c_weight__10 = r_weight__9;
|
|
c_layer__10 = r_layer__9;
|
|
c_dead__10 = r_dead__9;
|
|
c_hit__10 = r_hit__9;
|
|
c_diff__10 = r_diff__9;
|
|
c_dl_b__10 = r_dl_b__9;
|
|
c_numer__10 = r_numer__9;
|
|
c_z1__10 = r_z1__9;
|
|
c_z0__10 = r_z0__9;
|
|
c_mut__10 = r_mut__9;
|
|
|
|
//for 11
|
|
c_x__11 = r_x__10;
|
|
c_y__11 = r_y__10;
|
|
c_z__11 = r_z__10;
|
|
c_ux__11 = r_ux__10;
|
|
c_uy__11 = r_uy__10;
|
|
c_uz__11 = r_uz__10;
|
|
c_sz__11 = r_sz__10;
|
|
c_sr__11 = r_sr__10;
|
|
c_sleftz__11 = r_sleftz__10;
|
|
c_sleftr__11 = r_sleftr__10;
|
|
c_weight__11 = r_weight__10;
|
|
c_layer__11 = r_layer__10;
|
|
c_dead__11 = r_dead__10;
|
|
c_hit__11 = r_hit__10;
|
|
c_diff__11 = r_diff__10;
|
|
c_dl_b__11 = r_dl_b__10;
|
|
c_numer__11 = r_numer__10;
|
|
c_z1__11 = r_z1__10;
|
|
c_z0__11 = r_z0__10;
|
|
c_mut__11 = r_mut__10;
|
|
|
|
//for 12
|
|
c_x__12 = r_x__11;
|
|
c_y__12 = r_y__11;
|
|
c_z__12 = r_z__11;
|
|
c_ux__12 = r_ux__11;
|
|
c_uy__12 = r_uy__11;
|
|
c_uz__12 = r_uz__11;
|
|
c_sz__12 = r_sz__11;
|
|
c_sr__12 = r_sr__11;
|
|
c_sleftz__12 = r_sleftz__11;
|
|
c_sleftr__12 = r_sleftr__11;
|
|
c_weight__12 = r_weight__11;
|
|
c_layer__12 = r_layer__11;
|
|
c_dead__12 = r_dead__11;
|
|
c_hit__12 = r_hit__11;
|
|
c_diff__12 = r_diff__11;
|
|
c_dl_b__12 = r_dl_b__11;
|
|
c_numer__12 = r_numer__11;
|
|
c_z1__12 = r_z1__11;
|
|
c_z0__12 = r_z0__11;
|
|
c_mut__12 = r_mut__11;
|
|
|
|
//for 13
|
|
c_x__13 = r_x__12;
|
|
c_y__13 = r_y__12;
|
|
c_z__13 = r_z__12;
|
|
c_ux__13 = r_ux__12;
|
|
c_uy__13 = r_uy__12;
|
|
c_uz__13 = r_uz__12;
|
|
c_sz__13 = r_sz__12;
|
|
c_sr__13 = r_sr__12;
|
|
c_sleftz__13 = r_sleftz__12;
|
|
c_sleftr__13 = r_sleftr__12;
|
|
c_weight__13 = r_weight__12;
|
|
c_layer__13 = r_layer__12;
|
|
c_dead__13 = r_dead__12;
|
|
c_hit__13 = r_hit__12;
|
|
c_diff__13 = r_diff__12;
|
|
c_dl_b__13 = r_dl_b__12;
|
|
c_numer__13 = r_numer__12;
|
|
c_z1__13 = r_z1__12;
|
|
c_z0__13 = r_z0__12;
|
|
c_mut__13 = r_mut__12;
|
|
|
|
//for 14
|
|
c_x__14 = r_x__13;
|
|
c_y__14 = r_y__13;
|
|
c_z__14 = r_z__13;
|
|
c_ux__14 = r_ux__13;
|
|
c_uy__14 = r_uy__13;
|
|
c_uz__14 = r_uz__13;
|
|
c_sz__14 = r_sz__13;
|
|
c_sr__14 = r_sr__13;
|
|
c_sleftz__14 = r_sleftz__13;
|
|
c_sleftr__14 = r_sleftr__13;
|
|
c_weight__14 = r_weight__13;
|
|
c_layer__14 = r_layer__13;
|
|
c_dead__14 = r_dead__13;
|
|
c_hit__14 = r_hit__13;
|
|
c_diff__14 = r_diff__13;
|
|
c_dl_b__14 = r_dl_b__13;
|
|
c_numer__14 = r_numer__13;
|
|
c_z1__14 = r_z1__13;
|
|
c_z0__14 = r_z0__13;
|
|
c_mut__14 = r_mut__13;
|
|
|
|
//for 15
|
|
c_x__15 = r_x__14;
|
|
c_y__15 = r_y__14;
|
|
c_z__15 = r_z__14;
|
|
c_ux__15 = r_ux__14;
|
|
c_uy__15 = r_uy__14;
|
|
c_uz__15 = r_uz__14;
|
|
c_sz__15 = r_sz__14;
|
|
c_sr__15 = r_sr__14;
|
|
c_sleftz__15 = r_sleftz__14;
|
|
c_sleftr__15 = r_sleftr__14;
|
|
c_weight__15 = r_weight__14;
|
|
c_layer__15 = r_layer__14;
|
|
c_dead__15 = r_dead__14;
|
|
c_hit__15 = r_hit__14;
|
|
c_diff__15 = r_diff__14;
|
|
c_dl_b__15 = r_dl_b__14;
|
|
c_numer__15 = r_numer__14;
|
|
c_z1__15 = r_z1__14;
|
|
c_z0__15 = r_z0__14;
|
|
c_mut__15 = r_mut__14;
|
|
|
|
//for 16
|
|
c_x__16 = r_x__15;
|
|
c_y__16 = r_y__15;
|
|
c_z__16 = r_z__15;
|
|
c_ux__16 = r_ux__15;
|
|
c_uy__16 = r_uy__15;
|
|
c_uz__16 = r_uz__15;
|
|
c_sz__16 = r_sz__15;
|
|
c_sr__16 = r_sr__15;
|
|
c_sleftz__16 = r_sleftz__15;
|
|
c_sleftr__16 = r_sleftr__15;
|
|
c_weight__16 = r_weight__15;
|
|
c_layer__16 = r_layer__15;
|
|
c_dead__16 = r_dead__15;
|
|
c_hit__16 = r_hit__15;
|
|
c_diff__16 = r_diff__15;
|
|
c_dl_b__16 = r_dl_b__15;
|
|
c_numer__16 = r_numer__15;
|
|
c_z1__16 = r_z1__15;
|
|
c_z0__16 = r_z0__15;
|
|
c_mut__16 = r_mut__15;
|
|
|
|
//for 17
|
|
c_x__17 = r_x__16;
|
|
c_y__17 = r_y__16;
|
|
c_z__17 = r_z__16;
|
|
c_ux__17 = r_ux__16;
|
|
c_uy__17 = r_uy__16;
|
|
c_uz__17 = r_uz__16;
|
|
c_sz__17 = r_sz__16;
|
|
c_sr__17 = r_sr__16;
|
|
c_sleftz__17 = r_sleftz__16;
|
|
c_sleftr__17 = r_sleftr__16;
|
|
c_weight__17 = r_weight__16;
|
|
c_layer__17 = r_layer__16;
|
|
c_dead__17 = r_dead__16;
|
|
c_hit__17 = r_hit__16;
|
|
c_diff__17 = r_diff__16;
|
|
c_dl_b__17 = r_dl_b__16;
|
|
c_numer__17 = r_numer__16;
|
|
c_z1__17 = r_z1__16;
|
|
c_z0__17 = r_z0__16;
|
|
c_mut__17 = r_mut__16;
|
|
|
|
//for 18
|
|
c_x__18 = r_x__17;
|
|
c_y__18 = r_y__17;
|
|
c_z__18 = r_z__17;
|
|
c_ux__18 = r_ux__17;
|
|
c_uy__18 = r_uy__17;
|
|
c_uz__18 = r_uz__17;
|
|
c_sz__18 = r_sz__17;
|
|
c_sr__18 = r_sr__17;
|
|
c_sleftz__18 = r_sleftz__17;
|
|
c_sleftr__18 = r_sleftr__17;
|
|
c_weight__18 = r_weight__17;
|
|
c_layer__18 = r_layer__17;
|
|
c_dead__18 = r_dead__17;
|
|
c_hit__18 = r_hit__17;
|
|
c_diff__18 = r_diff__17;
|
|
c_dl_b__18 = r_dl_b__17;
|
|
c_numer__18 = r_numer__17;
|
|
c_z1__18 = r_z1__17;
|
|
c_z0__18 = r_z0__17;
|
|
c_mut__18 = r_mut__17;
|
|
|
|
//for 19
|
|
c_x__19 = r_x__18;
|
|
c_y__19 = r_y__18;
|
|
c_z__19 = r_z__18;
|
|
c_ux__19 = r_ux__18;
|
|
c_uy__19 = r_uy__18;
|
|
c_uz__19 = r_uz__18;
|
|
c_sz__19 = r_sz__18;
|
|
c_sr__19 = r_sr__18;
|
|
c_sleftz__19 = r_sleftz__18;
|
|
c_sleftr__19 = r_sleftr__18;
|
|
c_weight__19 = r_weight__18;
|
|
c_layer__19 = r_layer__18;
|
|
c_dead__19 = r_dead__18;
|
|
c_hit__19 = r_hit__18;
|
|
c_diff__19 = r_diff__18;
|
|
c_dl_b__19 = r_dl_b__18;
|
|
c_numer__19 = r_numer__18;
|
|
c_z1__19 = r_z1__18;
|
|
c_z0__19 = r_z0__18;
|
|
c_mut__19 = r_mut__18;
|
|
|
|
//for 20
|
|
c_x__20 = r_x__19;
|
|
c_y__20 = r_y__19;
|
|
c_z__20 = r_z__19;
|
|
c_ux__20 = r_ux__19;
|
|
c_uy__20 = r_uy__19;
|
|
c_uz__20 = r_uz__19;
|
|
c_sz__20 = r_sz__19;
|
|
c_sr__20 = r_sr__19;
|
|
c_sleftz__20 = r_sleftz__19;
|
|
c_sleftr__20 = r_sleftr__19;
|
|
c_weight__20 = r_weight__19;
|
|
c_layer__20 = r_layer__19;
|
|
c_dead__20 = r_dead__19;
|
|
c_hit__20 = r_hit__19;
|
|
c_diff__20 = r_diff__19;
|
|
c_dl_b__20 = r_dl_b__19;
|
|
c_numer__20 = r_numer__19;
|
|
c_z1__20 = r_z1__19;
|
|
c_z0__20 = r_z0__19;
|
|
c_mut__20 = r_mut__19;
|
|
|
|
|
|
//for 21
|
|
c_x__21 = r_x__20;
|
|
c_y__21 = r_y__20;
|
|
c_z__21 = r_z__20;
|
|
c_ux__21 = r_ux__20;
|
|
c_uy__21 = r_uy__20;
|
|
c_uz__21 = r_uz__20;
|
|
c_sz__21 = r_sz__20;
|
|
c_sr__21 = r_sr__20;
|
|
c_sleftz__21 = r_sleftz__20;
|
|
c_sleftr__21 = r_sleftr__20;
|
|
c_weight__21 = r_weight__20;
|
|
c_layer__21 = r_layer__20;
|
|
c_dead__21 = r_dead__20;
|
|
c_hit__21 = r_hit__20;
|
|
c_diff__21 = r_diff__20;
|
|
c_dl_b__21 = r_dl_b__20;
|
|
c_numer__21 = r_numer__20;
|
|
c_z1__21 = r_z1__20;
|
|
c_z0__21 = r_z0__20;
|
|
c_mut__21 = r_mut__20;
|
|
|
|
//for 22
|
|
c_x__22 = r_x__21;
|
|
c_y__22 = r_y__21;
|
|
c_z__22 = r_z__21;
|
|
c_ux__22 = r_ux__21;
|
|
c_uy__22 = r_uy__21;
|
|
c_uz__22 = r_uz__21;
|
|
c_sz__22 = r_sz__21;
|
|
c_sr__22 = r_sr__21;
|
|
c_sleftz__22 = r_sleftz__21;
|
|
c_sleftr__22 = r_sleftr__21;
|
|
c_weight__22 = r_weight__21;
|
|
c_layer__22 = r_layer__21;
|
|
c_dead__22 = r_dead__21;
|
|
c_hit__22 = r_hit__21;
|
|
c_diff__22 = r_diff__21;
|
|
c_dl_b__22 = r_dl_b__21;
|
|
c_numer__22 = r_numer__21;
|
|
c_z1__22 = r_z1__21;
|
|
c_z0__22 = r_z0__21;
|
|
c_mut__22 = r_mut__21;
|
|
|
|
//for 23
|
|
c_x__23 = r_x__22;
|
|
c_y__23 = r_y__22;
|
|
c_z__23 = r_z__22;
|
|
c_ux__23 = r_ux__22;
|
|
c_uy__23 = r_uy__22;
|
|
c_uz__23 = r_uz__22;
|
|
c_sz__23 = r_sz__22;
|
|
c_sr__23 = r_sr__22;
|
|
c_sleftz__23 = r_sleftz__22;
|
|
c_sleftr__23 = r_sleftr__22;
|
|
c_weight__23 = r_weight__22;
|
|
c_layer__23 = r_layer__22;
|
|
c_dead__23 = r_dead__22;
|
|
c_hit__23 = r_hit__22;
|
|
c_diff__23 = r_diff__22;
|
|
c_dl_b__23 = r_dl_b__22;
|
|
c_numer__23 = r_numer__22;
|
|
c_z1__23 = r_z1__22;
|
|
c_z0__23 = r_z0__22;
|
|
c_mut__23 = r_mut__22;
|
|
|
|
//for 24
|
|
c_x__24 = r_x__23;
|
|
c_y__24 = r_y__23;
|
|
c_z__24 = r_z__23;
|
|
c_ux__24 = r_ux__23;
|
|
c_uy__24 = r_uy__23;
|
|
c_uz__24 = r_uz__23;
|
|
c_sz__24 = r_sz__23;
|
|
c_sr__24 = r_sr__23;
|
|
c_sleftz__24 = r_sleftz__23;
|
|
c_sleftr__24 = r_sleftr__23;
|
|
c_weight__24 = r_weight__23;
|
|
c_layer__24 = r_layer__23;
|
|
c_dead__24 = r_dead__23;
|
|
c_hit__24 = r_hit__23;
|
|
c_diff__24 = r_diff__23;
|
|
c_dl_b__24 = r_dl_b__23;
|
|
c_numer__24 = r_numer__23;
|
|
c_z1__24 = r_z1__23;
|
|
c_z0__24 = r_z0__23;
|
|
c_mut__24 = r_mut__23;
|
|
|
|
//for 25
|
|
c_x__25 = r_x__24;
|
|
c_y__25 = r_y__24;
|
|
c_z__25 = r_z__24;
|
|
c_ux__25 = r_ux__24;
|
|
c_uy__25 = r_uy__24;
|
|
c_uz__25 = r_uz__24;
|
|
c_sz__25 = r_sz__24;
|
|
c_sr__25 = r_sr__24;
|
|
c_sleftz__25 = r_sleftz__24;
|
|
c_sleftr__25 = r_sleftr__24;
|
|
c_weight__25 = r_weight__24;
|
|
c_layer__25 = r_layer__24;
|
|
c_dead__25 = r_dead__24;
|
|
c_hit__25 = r_hit__24;
|
|
c_diff__25 = r_diff__24;
|
|
c_dl_b__25 = r_dl_b__24;
|
|
c_numer__25 = r_numer__24;
|
|
c_z1__25 = r_z1__24;
|
|
c_z0__25 = r_z0__24;
|
|
c_mut__25 = r_mut__24;
|
|
|
|
//for 26
|
|
c_x__26 = r_x__25;
|
|
c_y__26 = r_y__25;
|
|
c_z__26 = r_z__25;
|
|
c_ux__26 = r_ux__25;
|
|
c_uy__26 = r_uy__25;
|
|
c_uz__26 = r_uz__25;
|
|
c_sz__26 = r_sz__25;
|
|
c_sr__26 = r_sr__25;
|
|
c_sleftz__26 = r_sleftz__25;
|
|
c_sleftr__26 = r_sleftr__25;
|
|
c_weight__26 = r_weight__25;
|
|
c_layer__26 = r_layer__25;
|
|
c_dead__26 = r_dead__25;
|
|
c_hit__26 = r_hit__25;
|
|
c_diff__26 = r_diff__25;
|
|
c_dl_b__26 = r_dl_b__25;
|
|
c_numer__26 = r_numer__25;
|
|
c_z1__26 = r_z1__25;
|
|
c_z0__26 = r_z0__25;
|
|
c_mut__26 = r_mut__25;
|
|
|
|
//for 27
|
|
c_x__27 = r_x__26;
|
|
c_y__27 = r_y__26;
|
|
c_z__27 = r_z__26;
|
|
c_ux__27 = r_ux__26;
|
|
c_uy__27 = r_uy__26;
|
|
c_uz__27 = r_uz__26;
|
|
c_sz__27 = r_sz__26;
|
|
c_sr__27 = r_sr__26;
|
|
c_sleftz__27 = r_sleftz__26;
|
|
c_sleftr__27 = r_sleftr__26;
|
|
c_weight__27 = r_weight__26;
|
|
c_layer__27 = r_layer__26;
|
|
c_dead__27 = r_dead__26;
|
|
c_hit__27 = r_hit__26;
|
|
c_diff__27 = r_diff__26;
|
|
c_dl_b__27 = r_dl_b__26;
|
|
c_numer__27 = r_numer__26;
|
|
c_z1__27 = r_z1__26;
|
|
c_z0__27 = r_z0__26;
|
|
c_mut__27 = r_mut__26;
|
|
|
|
//for 28
|
|
c_x__28 = r_x__27;
|
|
c_y__28 = r_y__27;
|
|
c_z__28 = r_z__27;
|
|
c_ux__28 = r_ux__27;
|
|
c_uy__28 = r_uy__27;
|
|
c_uz__28 = r_uz__27;
|
|
c_sz__28 = r_sz__27;
|
|
c_sr__28 = r_sr__27;
|
|
c_sleftz__28 = r_sleftz__27;
|
|
c_sleftr__28 = r_sleftr__27;
|
|
c_weight__28 = r_weight__27;
|
|
c_layer__28 = r_layer__27;
|
|
c_dead__28 = r_dead__27;
|
|
c_hit__28 = r_hit__27;
|
|
c_diff__28 = r_diff__27;
|
|
c_dl_b__28 = r_dl_b__27;
|
|
c_numer__28 = r_numer__27;
|
|
c_z1__28 = r_z1__27;
|
|
c_z0__28 = r_z0__27;
|
|
c_mut__28 = r_mut__27;
|
|
|
|
//for 29
|
|
c_x__29 = r_x__28;
|
|
c_y__29 = r_y__28;
|
|
c_z__29 = r_z__28;
|
|
c_ux__29 = r_ux__28;
|
|
c_uy__29 = r_uy__28;
|
|
c_uz__29 = r_uz__28;
|
|
c_sz__29 = r_sz__28;
|
|
c_sr__29 = r_sr__28;
|
|
c_sleftz__29 = r_sleftz__28;
|
|
c_sleftr__29 = r_sleftr__28;
|
|
c_weight__29 = r_weight__28;
|
|
c_layer__29 = r_layer__28;
|
|
c_dead__29 = r_dead__28;
|
|
c_hit__29 = r_hit__28;
|
|
c_diff__29 = r_diff__28;
|
|
c_dl_b__29 = r_dl_b__28;
|
|
c_numer__29 = r_numer__28;
|
|
c_z1__29 = r_z1__28;
|
|
c_z0__29 = r_z0__28;
|
|
c_mut__29 = r_mut__28;
|
|
|
|
//for 30
|
|
c_x__30 = r_x__29;
|
|
c_y__30 = r_y__29;
|
|
c_z__30 = r_z__29;
|
|
c_ux__30 = r_ux__29;
|
|
c_uy__30 = r_uy__29;
|
|
c_uz__30 = r_uz__29;
|
|
c_sz__30 = r_sz__29;
|
|
c_sr__30 = r_sr__29;
|
|
c_sleftz__30 = r_sleftz__29;
|
|
c_sleftr__30 = r_sleftr__29;
|
|
c_weight__30 = r_weight__29;
|
|
c_layer__30 = r_layer__29;
|
|
c_dead__30 = r_dead__29;
|
|
// c_hit__30 = r_hit__29;//
|
|
// c_diff__30 = r_diff__29;//
|
|
// this value is set later, removing default - peter m
|
|
// c_dl_b__30 = r_dl_b__29;//
|
|
// this one too
|
|
c_numer__30 = r_numer__29;
|
|
c_z1__30 = r_z1__29;
|
|
c_z0__30 = r_z0__29;
|
|
c_mut__30 = r_mut__29;
|
|
|
|
//for 31
|
|
c_x__31 = r_x__30;
|
|
c_y__31 = r_y__30;
|
|
// c_z__31 = r_z__30;//
|
|
c_ux__31 = r_ux__30;
|
|
c_uy__31 = r_uy__30;
|
|
c_uz__31 = r_uz__30;
|
|
// c_sz__31 = r_sz__30;//
|
|
// c_sr__31 = r_sr__30;//
|
|
// c_sleftz__31 = r_sleftz__30;//
|
|
c_sleftr__31 = r_sleftr__30;
|
|
c_weight__31 = r_weight__30;
|
|
c_layer__31 = r_layer__30;
|
|
c_dead__31 = r_dead__30;
|
|
c_hit__31 = r_hit__30;
|
|
c_diff__31 = r_diff__30;
|
|
c_dl_b__31 = r_dl_b__30;
|
|
c_numer__31 = r_numer__30;
|
|
c_z1__31 = r_z1__30;
|
|
c_z0__31 = r_z0__30;
|
|
c_mut__31 = r_mut__30;
|
|
|
|
//for 32
|
|
c_x__32 = r_x__31;
|
|
c_y__32 = r_y__31;
|
|
c_z__32 = r_z__31;
|
|
c_ux__32 = r_ux__31;
|
|
c_uy__32 = r_uy__31;
|
|
c_uz__32 = r_uz__31;
|
|
c_sz__32 = r_sz__31;
|
|
c_sr__32 = r_sr__31;
|
|
c_sleftz__32 = r_sleftz__31;
|
|
// c_sleftr__32 = r_sleftr__31;//
|
|
c_weight__32 = r_weight__31;
|
|
c_layer__32 = r_layer__31;
|
|
c_dead__32 = r_dead__31;
|
|
c_hit__32 = r_hit__31;
|
|
c_diff__32 = r_diff__31;
|
|
c_dl_b__32 = r_dl_b__31;
|
|
c_numer__32 = r_numer__31;
|
|
c_z1__32 = r_z1__31;
|
|
c_z0__32 = r_z0__31;
|
|
c_mut__32 = r_mut__31;
|
|
|
|
//for 33
|
|
c_x__33 = r_x__32;
|
|
c_y__33 = r_y__32;
|
|
c_z__33 = r_z__32;
|
|
c_ux__33 = r_ux__32;
|
|
c_uy__33 = r_uy__32;
|
|
c_uz__33 = r_uz__32;
|
|
c_sz__33 = r_sz__32;
|
|
c_sr__33 = r_sr__32;
|
|
c_sleftz__33 = r_sleftz__32;
|
|
c_sleftr__33 = r_sleftr__32;
|
|
c_weight__33 = r_weight__32;
|
|
c_layer__33 = r_layer__32;
|
|
c_dead__33 = r_dead__32;
|
|
c_hit__33 = r_hit__32;
|
|
c_diff__33 = r_diff__32;
|
|
c_dl_b__33 = r_dl_b__32;
|
|
c_numer__33 = r_numer__32;
|
|
c_z1__33 = r_z1__32;
|
|
c_z0__33 = r_z0__32;
|
|
c_mut__33 = r_mut__32;
|
|
|
|
//for 34
|
|
c_x__34 = r_x__33;
|
|
c_y__34 = r_y__33;
|
|
c_z__34 = r_z__33;
|
|
c_ux__34 = r_ux__33;
|
|
c_uy__34 = r_uy__33;
|
|
c_uz__34 = r_uz__33;
|
|
c_sz__34 = r_sz__33;
|
|
c_sr__34 = r_sr__33;
|
|
c_sleftz__34 = r_sleftz__33;
|
|
c_sleftr__34 = r_sleftr__33;
|
|
c_weight__34 = r_weight__33;
|
|
c_layer__34 = r_layer__33;
|
|
c_dead__34 = r_dead__33;
|
|
c_hit__34 = r_hit__33;
|
|
c_diff__34 = r_diff__33;
|
|
c_dl_b__34 = r_dl_b__33;
|
|
c_numer__34 = r_numer__33;
|
|
c_z1__34 = r_z1__33;
|
|
c_z0__34 = r_z0__33;
|
|
c_mut__34 = r_mut__33;
|
|
|
|
//for 35
|
|
c_x__35 = r_x__34;
|
|
c_y__35 = r_y__34;
|
|
c_z__35 = r_z__34;
|
|
c_ux__35 = r_ux__34;
|
|
c_uy__35 = r_uy__34;
|
|
c_uz__35 = r_uz__34;
|
|
c_sz__35 = r_sz__34;
|
|
c_sr__35 = r_sr__34;
|
|
c_sleftz__35 = r_sleftz__34;
|
|
c_sleftr__35 = r_sleftr__34;
|
|
c_weight__35 = r_weight__34;
|
|
c_layer__35 = r_layer__34;
|
|
c_dead__35 = r_dead__34;
|
|
c_hit__35 = r_hit__34;
|
|
c_diff__35 = r_diff__34;
|
|
c_dl_b__35 = r_dl_b__34;
|
|
c_numer__35 = r_numer__34;
|
|
c_z1__35 = r_z1__34;
|
|
c_z0__35 = r_z0__34;
|
|
c_mut__35 = r_mut__34;
|
|
|
|
//for 36
|
|
c_x__36 = r_x__35;
|
|
c_y__36 = r_y__35;
|
|
c_z__36 = r_z__35;
|
|
c_ux__36 = r_ux__35;
|
|
c_uy__36 = r_uy__35;
|
|
c_uz__36 = r_uz__35;
|
|
c_sz__36 = r_sz__35;
|
|
c_sr__36 = r_sr__35;
|
|
c_sleftz__36 = r_sleftz__35;
|
|
c_sleftr__36 = r_sleftr__35;
|
|
c_weight__36 = r_weight__35;
|
|
c_layer__36 = r_layer__35;
|
|
c_dead__36 = r_dead__35;
|
|
c_hit__36 = r_hit__35;
|
|
c_diff__36 = r_diff__35;
|
|
c_dl_b__36 = r_dl_b__35;
|
|
c_numer__36 = r_numer__35;
|
|
c_z1__36 = r_z1__35;
|
|
c_z0__36 = r_z0__35;
|
|
c_mut__36 = r_mut__35;
|
|
|
|
//for 37
|
|
c_x__37 = r_x__36;
|
|
c_y__37 = r_y__36;
|
|
c_z__37 = r_z__36;
|
|
c_ux__37 = r_ux__36;
|
|
c_uy__37 = r_uy__36;
|
|
c_uz__37 = r_uz__36;
|
|
c_sz__37 = r_sz__36;
|
|
c_sr__37 = r_sr__36;
|
|
c_sleftz__37 = r_sleftz__36;
|
|
c_sleftr__37 = r_sleftr__36;
|
|
c_weight__37 = r_weight__36;
|
|
c_layer__37 = r_layer__36;
|
|
c_dead__37 = r_dead__36;
|
|
c_hit__37 = r_hit__36;
|
|
c_diff__37 = r_diff__36;
|
|
c_dl_b__37 = r_dl_b__36;
|
|
c_numer__37 = r_numer__36;
|
|
c_z1__37 = r_z1__36;
|
|
c_z0__37 = r_z0__36;
|
|
c_mut__37 = r_mut__36;
|
|
|
|
//for 38
|
|
c_x__38 = r_x__37;
|
|
c_y__38 = r_y__37;
|
|
c_z__38 = r_z__37;
|
|
c_ux__38 = r_ux__37;
|
|
c_uy__38 = r_uy__37;
|
|
c_uz__38 = r_uz__37;
|
|
c_sz__38 = r_sz__37;
|
|
c_sr__38 = r_sr__37;
|
|
c_sleftz__38 = r_sleftz__37;
|
|
c_sleftr__38 = r_sleftr__37;
|
|
c_weight__38 = r_weight__37;
|
|
c_layer__38 = r_layer__37;
|
|
c_dead__38 = r_dead__37;
|
|
c_hit__38 = r_hit__37;
|
|
c_diff__38 = r_diff__37;
|
|
c_dl_b__38 = r_dl_b__37;
|
|
c_numer__38 = r_numer__37;
|
|
c_z1__38 = r_z1__37;
|
|
c_z0__38 = r_z0__37;
|
|
c_mut__38 = r_mut__37;
|
|
|
|
//for 39
|
|
c_x__39 = r_x__38;
|
|
c_y__39 = r_y__38;
|
|
c_z__39 = r_z__38;
|
|
c_ux__39 = r_ux__38;
|
|
c_uy__39 = r_uy__38;
|
|
c_uz__39 = r_uz__38;
|
|
c_sz__39 = r_sz__38;
|
|
c_sr__39 = r_sr__38;
|
|
c_sleftz__39 = r_sleftz__38;
|
|
c_sleftr__39 = r_sleftr__38;
|
|
c_weight__39 = r_weight__38;
|
|
c_layer__39 = r_layer__38;
|
|
c_dead__39 = r_dead__38;
|
|
c_hit__39 = r_hit__38;
|
|
c_diff__39 = r_diff__38;
|
|
c_dl_b__39 = r_dl_b__38;
|
|
c_numer__39 = r_numer__38;
|
|
c_z1__39 = r_z1__38;
|
|
c_z0__39 = r_z0__38;
|
|
c_mut__39 = r_mut__38;
|
|
|
|
//for 40
|
|
c_x__40 = r_x__39;
|
|
c_y__40 = r_y__39;
|
|
c_z__40 = r_z__39;
|
|
c_ux__40 = r_ux__39;
|
|
c_uy__40 = r_uy__39;
|
|
c_uz__40 = r_uz__39;
|
|
c_sz__40 = r_sz__39;
|
|
c_sr__40 = r_sr__39;
|
|
c_sleftz__40 = r_sleftz__39;
|
|
c_sleftr__40 = r_sleftr__39;
|
|
c_weight__40 = r_weight__39;
|
|
c_layer__40 = r_layer__39;
|
|
c_dead__40 = r_dead__39;
|
|
c_hit__40 = r_hit__39;
|
|
c_diff__40 = r_diff__39;
|
|
c_dl_b__40 = r_dl_b__39;
|
|
c_numer__40 = r_numer__39;
|
|
c_z1__40 = r_z1__39;
|
|
c_z0__40 = r_z0__39;
|
|
c_mut__40 = r_mut__39;
|
|
|
|
//for 41
|
|
c_x__41 = r_x__40;
|
|
c_y__41 = r_y__40;
|
|
c_z__41 = r_z__40;
|
|
c_ux__41 = r_ux__40;
|
|
c_uy__41 = r_uy__40;
|
|
c_uz__41 = r_uz__40;
|
|
c_sz__41 = r_sz__40;
|
|
c_sr__41 = r_sr__40;
|
|
c_sleftz__41 = r_sleftz__40;
|
|
c_sleftr__41 = r_sleftr__40;
|
|
c_weight__41 = r_weight__40;
|
|
c_layer__41 = r_layer__40;
|
|
c_dead__41 = r_dead__40;
|
|
c_hit__41 = r_hit__40;
|
|
c_diff__41 = r_diff__40;
|
|
c_dl_b__41 = r_dl_b__40;
|
|
c_numer__41 = r_numer__40;
|
|
c_z1__41 = r_z1__40;
|
|
c_z0__41 = r_z0__40;
|
|
c_mut__41 = r_mut__40;
|
|
|
|
//for 42
|
|
c_x__42 = r_x__41;
|
|
c_y__42 = r_y__41;
|
|
c_z__42 = r_z__41;
|
|
c_ux__42 = r_ux__41;
|
|
c_uy__42 = r_uy__41;
|
|
c_uz__42 = r_uz__41;
|
|
c_sz__42 = r_sz__41;
|
|
c_sr__42 = r_sr__41;
|
|
c_sleftz__42 = r_sleftz__41;
|
|
c_sleftr__42 = r_sleftr__41;
|
|
c_weight__42 = r_weight__41;
|
|
c_layer__42 = r_layer__41;
|
|
c_dead__42 = r_dead__41;
|
|
c_hit__42 = r_hit__41;
|
|
c_diff__42 = r_diff__41;
|
|
c_dl_b__42 = r_dl_b__41;
|
|
c_numer__42 = r_numer__41;
|
|
c_z1__42 = r_z1__41;
|
|
c_z0__42 = r_z0__41;
|
|
c_mut__42 = r_mut__41;
|
|
|
|
//for 43
|
|
c_x__43 = r_x__42;
|
|
c_y__43 = r_y__42;
|
|
c_z__43 = r_z__42;
|
|
c_ux__43 = r_ux__42;
|
|
c_uy__43 = r_uy__42;
|
|
c_uz__43 = r_uz__42;
|
|
c_sz__43 = r_sz__42;
|
|
c_sr__43 = r_sr__42;
|
|
c_sleftz__43 = r_sleftz__42;
|
|
c_sleftr__43 = r_sleftr__42;
|
|
c_weight__43 = r_weight__42;
|
|
c_layer__43 = r_layer__42;
|
|
c_dead__43 = r_dead__42;
|
|
c_hit__43 = r_hit__42;
|
|
c_diff__43 = r_diff__42;
|
|
c_dl_b__43 = r_dl_b__42;
|
|
c_numer__43 = r_numer__42;
|
|
c_z1__43 = r_z1__42;
|
|
c_z0__43 = r_z0__42;
|
|
c_mut__43 = r_mut__42;
|
|
|
|
//for 44
|
|
c_x__44 = r_x__43;
|
|
c_y__44 = r_y__43;
|
|
c_z__44 = r_z__43;
|
|
c_ux__44 = r_ux__43;
|
|
c_uy__44 = r_uy__43;
|
|
c_uz__44 = r_uz__43;
|
|
c_sz__44 = r_sz__43;
|
|
c_sr__44 = r_sr__43;
|
|
c_sleftz__44 = r_sleftz__43;
|
|
c_sleftr__44 = r_sleftr__43;
|
|
c_weight__44 = r_weight__43;
|
|
c_layer__44 = r_layer__43;
|
|
c_dead__44 = r_dead__43;
|
|
c_hit__44 = r_hit__43;
|
|
c_diff__44 = r_diff__43;
|
|
c_dl_b__44 = r_dl_b__43;
|
|
c_numer__44 = r_numer__43;
|
|
c_z1__44 = r_z1__43;
|
|
c_z0__44 = r_z0__43;
|
|
c_mut__44 = r_mut__43;
|
|
|
|
//for 45
|
|
c_x__45 = r_x__44;
|
|
c_y__45 = r_y__44;
|
|
c_z__45 = r_z__44;
|
|
c_ux__45 = r_ux__44;
|
|
c_uy__45 = r_uy__44;
|
|
c_uz__45 = r_uz__44;
|
|
c_sz__45 = r_sz__44;
|
|
c_sr__45 = r_sr__44;
|
|
c_sleftz__45 = r_sleftz__44;
|
|
c_sleftr__45 = r_sleftr__44;
|
|
c_weight__45 = r_weight__44;
|
|
c_layer__45 = r_layer__44;
|
|
c_dead__45 = r_dead__44;
|
|
c_hit__45 = r_hit__44;
|
|
c_diff__45 = r_diff__44;
|
|
c_dl_b__45 = r_dl_b__44;
|
|
c_numer__45 = r_numer__44;
|
|
c_z1__45 = r_z1__44;
|
|
c_z0__45 = r_z0__44;
|
|
c_mut__45 = r_mut__44;
|
|
|
|
//for 46
|
|
c_x__46 = r_x__45;
|
|
c_y__46 = r_y__45;
|
|
c_z__46 = r_z__45;
|
|
c_ux__46 = r_ux__45;
|
|
c_uy__46 = r_uy__45;
|
|
c_uz__46 = r_uz__45;
|
|
c_sz__46 = r_sz__45;
|
|
c_sr__46 = r_sr__45;
|
|
c_sleftz__46 = r_sleftz__45;
|
|
c_sleftr__46 = r_sleftr__45;
|
|
c_weight__46 = r_weight__45;
|
|
c_layer__46 = r_layer__45;
|
|
c_dead__46 = r_dead__45;
|
|
c_hit__46 = r_hit__45;
|
|
c_diff__46 = r_diff__45;
|
|
c_dl_b__46 = r_dl_b__45;
|
|
c_numer__46 = r_numer__45;
|
|
c_z1__46 = r_z1__45;
|
|
c_z0__46 = r_z0__45;
|
|
c_mut__46 = r_mut__45;
|
|
|
|
//for 47
|
|
c_x__47 = r_x__46;
|
|
c_y__47 = r_y__46;
|
|
c_z__47 = r_z__46;
|
|
c_ux__47 = r_ux__46;
|
|
c_uy__47 = r_uy__46;
|
|
c_uz__47 = r_uz__46;
|
|
c_sz__47 = r_sz__46;
|
|
c_sr__47 = r_sr__46;
|
|
c_sleftz__47 = r_sleftz__46;
|
|
c_sleftr__47 = r_sleftr__46;
|
|
c_weight__47 = r_weight__46;
|
|
c_layer__47 = r_layer__46;
|
|
c_dead__47 = r_dead__46;
|
|
c_hit__47 = r_hit__46;
|
|
c_diff__47 = r_diff__46;
|
|
c_dl_b__47 = r_dl_b__46;
|
|
c_numer__47 = r_numer__46;
|
|
c_z1__47 = r_z1__46;
|
|
c_z0__47 = r_z0__46;
|
|
c_mut__47 = r_mut__46;
|
|
|
|
//for 48
|
|
c_x__48 = r_x__47;
|
|
c_y__48 = r_y__47;
|
|
c_z__48 = r_z__47;
|
|
c_ux__48 = r_ux__47;
|
|
c_uy__48 = r_uy__47;
|
|
c_uz__48 = r_uz__47;
|
|
c_sz__48 = r_sz__47;
|
|
c_sr__48 = r_sr__47;
|
|
c_sleftz__48 = r_sleftz__47;
|
|
c_sleftr__48 = r_sleftr__47;
|
|
c_weight__48 = r_weight__47;
|
|
c_layer__48 = r_layer__47;
|
|
c_dead__48 = r_dead__47;
|
|
c_hit__48 = r_hit__47;
|
|
c_diff__48 = r_diff__47;
|
|
c_dl_b__48 = r_dl_b__47;
|
|
c_numer__48 = r_numer__47;
|
|
c_z1__48 = r_z1__47;
|
|
c_z0__48 = r_z0__47;
|
|
c_mut__48 = r_mut__47;
|
|
|
|
//for 49
|
|
c_x__49 = r_x__48;
|
|
c_y__49 = r_y__48;
|
|
c_z__49 = r_z__48;
|
|
c_ux__49 = r_ux__48;
|
|
c_uy__49 = r_uy__48;
|
|
c_uz__49 = r_uz__48;
|
|
c_sz__49 = r_sz__48;
|
|
c_sr__49 = r_sr__48;
|
|
c_sleftz__49 = r_sleftz__48;
|
|
c_sleftr__49 = r_sleftr__48;
|
|
c_weight__49 = r_weight__48;
|
|
c_layer__49 = r_layer__48;
|
|
c_dead__49 = r_dead__48;
|
|
c_hit__49 = r_hit__48;
|
|
c_diff__49 = r_diff__48;
|
|
c_dl_b__49 = r_dl_b__48;
|
|
c_numer__49 = r_numer__48;
|
|
c_z1__49 = r_z1__48;
|
|
c_z0__49 = r_z0__48;
|
|
c_mut__49 = r_mut__48;
|
|
|
|
//for 50
|
|
c_x__50 = r_x__49;
|
|
c_y__50 = r_y__49;
|
|
c_z__50 = r_z__49;
|
|
c_ux__50 = r_ux__49;
|
|
c_uy__50 = r_uy__49;
|
|
c_uz__50 = r_uz__49;
|
|
c_sz__50 = r_sz__49;
|
|
c_sr__50 = r_sr__49;
|
|
c_sleftz__50 = r_sleftz__49;
|
|
c_sleftr__50 = r_sleftr__49;
|
|
c_weight__50 = r_weight__49;
|
|
c_layer__50 = r_layer__49;
|
|
c_dead__50 = r_dead__49;
|
|
c_hit__50 = r_hit__49;
|
|
c_diff__50 = r_diff__49;
|
|
c_dl_b__50 = r_dl_b__49;
|
|
c_numer__50 = r_numer__49;
|
|
c_z1__50 = r_z1__49;
|
|
c_z0__50 = r_z0__49;
|
|
c_mut__50 = r_mut__49;
|
|
|
|
//for 51
|
|
c_x__51 = r_x__50;
|
|
c_y__51 = r_y__50;
|
|
c_z__51 = r_z__50;
|
|
c_ux__51 = r_ux__50;
|
|
c_uy__51 = r_uy__50;
|
|
c_uz__51 = r_uz__50;
|
|
c_sz__51 = r_sz__50;
|
|
c_sr__51 = r_sr__50;
|
|
c_sleftz__51 = r_sleftz__50;
|
|
c_sleftr__51 = r_sleftr__50;
|
|
c_weight__51 = r_weight__50;
|
|
c_layer__51 = r_layer__50;
|
|
c_dead__51 = r_dead__50;
|
|
c_hit__51 = r_hit__50;
|
|
c_diff__51 = r_diff__50;
|
|
c_dl_b__51 = r_dl_b__50;
|
|
c_numer__51 = r_numer__50;
|
|
c_z1__51 = r_z1__50;
|
|
c_z0__51 = r_z0__50;
|
|
c_mut__51 = r_mut__50;
|
|
|
|
//for 52
|
|
c_x__52 = r_x__51;
|
|
c_y__52 = r_y__51;
|
|
c_z__52 = r_z__51;
|
|
c_ux__52 = r_ux__51;
|
|
c_uy__52 = r_uy__51;
|
|
c_uz__52 = r_uz__51;
|
|
c_sz__52 = r_sz__51;
|
|
c_sr__52 = r_sr__51;
|
|
c_sleftz__52 = r_sleftz__51;
|
|
c_sleftr__52 = r_sleftr__51;
|
|
c_weight__52 = r_weight__51;
|
|
c_layer__52 = r_layer__51;
|
|
c_dead__52 = r_dead__51;
|
|
c_hit__52 = r_hit__51;
|
|
c_diff__52 = r_diff__51;
|
|
c_dl_b__52 = r_dl_b__51;
|
|
c_numer__52 = r_numer__51;
|
|
c_z1__52 = r_z1__51;
|
|
c_z0__52 = r_z0__51;
|
|
c_mut__52 = r_mut__51;
|
|
|
|
//for 53
|
|
c_x__53 = r_x__52;
|
|
c_y__53 = r_y__52;
|
|
c_z__53 = r_z__52;
|
|
c_ux__53 = r_ux__52;
|
|
c_uy__53 = r_uy__52;
|
|
c_uz__53 = r_uz__52;
|
|
c_sz__53 = r_sz__52;
|
|
c_sr__53 = r_sr__52;
|
|
c_sleftz__53 = r_sleftz__52;
|
|
c_sleftr__53 = r_sleftr__52;
|
|
c_weight__53 = r_weight__52;
|
|
c_layer__53 = r_layer__52;
|
|
c_dead__53 = r_dead__52;
|
|
c_hit__53 = r_hit__52;
|
|
c_diff__53 = r_diff__52;
|
|
c_dl_b__53 = r_dl_b__52;
|
|
c_numer__53 = r_numer__52;
|
|
c_z1__53 = r_z1__52;
|
|
c_z0__53 = r_z0__52;
|
|
c_mut__53 = r_mut__52;
|
|
|
|
//for 54
|
|
c_x__54 = r_x__53;
|
|
c_y__54 = r_y__53;
|
|
c_z__54 = r_z__53;
|
|
c_ux__54 = r_ux__53;
|
|
c_uy__54 = r_uy__53;
|
|
c_uz__54 = r_uz__53;
|
|
c_sz__54 = r_sz__53;
|
|
c_sr__54 = r_sr__53;
|
|
c_sleftz__54 = r_sleftz__53;
|
|
c_sleftr__54 = r_sleftr__53;
|
|
c_weight__54 = r_weight__53;
|
|
c_layer__54 = r_layer__53;
|
|
c_dead__54 = r_dead__53;
|
|
c_hit__54 = r_hit__53;
|
|
c_diff__54 = r_diff__53;
|
|
c_dl_b__54 = r_dl_b__53;
|
|
c_numer__54 = r_numer__53;
|
|
c_z1__54 = r_z1__53;
|
|
c_z0__54 = r_z0__53;
|
|
c_mut__54 = r_mut__53;
|
|
|
|
//for 55
|
|
c_x__55 = r_x__54;
|
|
c_y__55 = r_y__54;
|
|
c_z__55 = r_z__54;
|
|
c_ux__55 = r_ux__54;
|
|
c_uy__55 = r_uy__54;
|
|
c_uz__55 = r_uz__54;
|
|
c_sz__55 = r_sz__54;
|
|
c_sr__55 = r_sr__54;
|
|
c_sleftz__55 = r_sleftz__54;
|
|
c_sleftr__55 = r_sleftr__54;
|
|
c_weight__55 = r_weight__54;
|
|
c_layer__55 = r_layer__54;
|
|
c_dead__55 = r_dead__54;
|
|
c_hit__55 = r_hit__54;
|
|
c_diff__55 = r_diff__54;
|
|
c_dl_b__55 = r_dl_b__54;
|
|
c_numer__55 = r_numer__54;
|
|
c_z1__55 = r_z1__54;
|
|
c_z0__55 = r_z0__54;
|
|
c_mut__55 = r_mut__54;
|
|
|
|
//for 56
|
|
c_x__56 = r_x__55;
|
|
c_y__56 = r_y__55;
|
|
c_z__56 = r_z__55;
|
|
c_ux__56 = r_ux__55;
|
|
c_uy__56 = r_uy__55;
|
|
c_uz__56 = r_uz__55;
|
|
c_sz__56 = r_sz__55;
|
|
c_sr__56 = r_sr__55;
|
|
c_sleftz__56 = r_sleftz__55;
|
|
c_sleftr__56 = r_sleftr__55;
|
|
c_weight__56 = r_weight__55;
|
|
c_layer__56 = r_layer__55;
|
|
c_dead__56 = r_dead__55;
|
|
c_hit__56 = r_hit__55;
|
|
c_diff__56 = r_diff__55;
|
|
c_dl_b__56 = r_dl_b__55;
|
|
c_numer__56 = r_numer__55;
|
|
c_z1__56 = r_z1__55;
|
|
c_z0__56 = r_z0__55;
|
|
c_mut__56 = r_mut__55;
|
|
|
|
//for 57
|
|
c_x__57 = r_x__56;
|
|
c_y__57 = r_y__56;
|
|
c_z__57 = r_z__56;
|
|
c_ux__57 = r_ux__56;
|
|
c_uy__57 = r_uy__56;
|
|
c_uz__57 = r_uz__56;
|
|
c_sz__57 = r_sz__56;
|
|
c_sr__57 = r_sr__56;
|
|
c_sleftz__57 = r_sleftz__56;
|
|
c_sleftr__57 = r_sleftr__56;
|
|
c_weight__57 = r_weight__56;
|
|
c_layer__57 = r_layer__56;
|
|
c_dead__57 = r_dead__56;
|
|
c_hit__57 = r_hit__56;
|
|
c_diff__57 = r_diff__56;
|
|
c_dl_b__57 = r_dl_b__56;
|
|
c_numer__57 = r_numer__56;
|
|
c_z1__57 = r_z1__56;
|
|
c_z0__57 = r_z0__56;
|
|
c_mut__57 = r_mut__56;
|
|
|
|
//for 58
|
|
c_x__58 = r_x__57;
|
|
c_y__58 = r_y__57;
|
|
c_z__58 = r_z__57;
|
|
c_ux__58 = r_ux__57;
|
|
c_uy__58 = r_uy__57;
|
|
c_uz__58 = r_uz__57;
|
|
c_sz__58 = r_sz__57;
|
|
c_sr__58 = r_sr__57;
|
|
c_sleftz__58 = r_sleftz__57;
|
|
c_sleftr__58 = r_sleftr__57;
|
|
c_weight__58 = r_weight__57;
|
|
c_layer__58 = r_layer__57;
|
|
c_dead__58 = r_dead__57;
|
|
c_hit__58 = r_hit__57;
|
|
c_diff__58 = r_diff__57;
|
|
c_dl_b__58 = r_dl_b__57;
|
|
c_numer__58 = r_numer__57;
|
|
c_z1__58 = r_z1__57;
|
|
c_z0__58 = r_z0__57;
|
|
c_mut__58 = r_mut__57;
|
|
|
|
//for 59
|
|
c_x__59 = r_x__58;
|
|
c_y__59 = r_y__58;
|
|
c_z__59 = r_z__58;
|
|
c_ux__59 = r_ux__58;
|
|
c_uy__59 = r_uy__58;
|
|
c_uz__59 = r_uz__58;
|
|
c_sz__59 = r_sz__58;
|
|
c_sr__59 = r_sr__58;
|
|
c_sleftz__59 = r_sleftz__58;
|
|
c_sleftr__59 = r_sleftr__58;
|
|
c_weight__59 = r_weight__58;
|
|
c_layer__59 = r_layer__58;
|
|
c_dead__59 = r_dead__58;
|
|
c_hit__59 = r_hit__58;
|
|
c_diff__59 = r_diff__58;
|
|
c_dl_b__59 = r_dl_b__58;
|
|
c_numer__59 = r_numer__58;
|
|
c_z1__59 = r_z1__58;
|
|
c_z0__59 = r_z0__58;
|
|
c_mut__59 = r_mut__58;
|
|
|
|
|
|
// Pull out and replace signals in pipe
|
|
/* STAGE 1: Division completed */
|
|
c_dl_b__30 = quotient_div1[32:1];
|
|
c_diff__30 = c_sz__30 - c_dl_b__30;
|
|
|
|
if(c_uz__30 != 32'b0 && c_sz__30 > c_dl_b__30 && quotient_div1[63:32] == 32'b0)
|
|
begin
|
|
/* not horizontal & crossing. */
|
|
c_hit__30 = 1'b1;
|
|
end
|
|
//Remove blocking on c_hit__30
|
|
else
|
|
begin
|
|
c_hit__30 = r_hit__29;
|
|
end
|
|
|
|
/* STAGE 2: First multiply completed */
|
|
if(c_hit__31 == 1'b1)
|
|
begin
|
|
/*step left = (original step - distance travelled) * scaling factor*/
|
|
|
|
c_sleftz__31 = sleftz_big[2*`BIT_WIDTH-2:`BIT_WIDTH - 1];
|
|
if(c_uz__31[`BIT_WIDTH-1] == 1'b0)
|
|
begin
|
|
c_z__31 = c_z1__31;
|
|
end
|
|
else
|
|
begin
|
|
c_z__31 = c_z0__31;
|
|
end
|
|
|
|
c_sz__31 = c_dl_b__31;
|
|
c_sr__31 = sr_big[2*`BIT_WIDTH-2 - `ASPECT_RATIO:`BIT_WIDTH - 1 - `ASPECT_RATIO];
|
|
end
|
|
//Remove blocking on c_sleftz_31, c_sr__31, c_sz__31, c_z__31
|
|
else
|
|
begin
|
|
c_sleftz__31 = r_sleftz__30;
|
|
c_sr__31 = r_sr__30;
|
|
c_sz__31 = r_sz__30;
|
|
c_z__31 = r_z__30;
|
|
end
|
|
|
|
/* STAGE 3: Second multiply completed */
|
|
if(c_hit__32 == 1'b1)
|
|
begin
|
|
/*additional scaling factor on dl_b to switch to r-dimension scale*/
|
|
c_sleftr__32 = sleftr_big[2*`BIT_WIDTH-2 - `ASPECT_RATIO:`BIT_WIDTH - 1 - `ASPECT_RATIO];
|
|
end
|
|
//Remove blocking on c_sleftr__32
|
|
else
|
|
begin
|
|
c_sleftr__32 = r_sleftr__31;
|
|
|
|
end
|
|
end
|
|
|
|
// latch values
|
|
always @ (posedge clock)
|
|
begin
|
|
// for(j = 0; j < `TOTAL_LATENCY; j = j + 1)
|
|
// begin
|
|
// if (reset)
|
|
// begin
|
|
// r_x[j] <= 32'b0;
|
|
// r_y[j] <= 32'b0;
|
|
// r_z[j] <= 32'b0;
|
|
// r_ux[j] <= 32'b0;
|
|
// r_uy[j] <= 32'b0;
|
|
// r_uz[j] <= 32'b0;
|
|
// r_sz[j] <= 32'b0;
|
|
// r_sr[j] <= 32'b0;
|
|
// r_sleftz[j] <= 32'b0;
|
|
// r_sleftr[j] <= 32'b0;
|
|
// r_weight[j] <= 32'b0;
|
|
// r_layer[j] <= 3'b0;
|
|
// r_dead[j] <= 1'b1;
|
|
// r_hit[j] <= 1'b0;
|
|
// r_diff[j] <= 32'b0;
|
|
// r_dl_b[j] <= 32'b0;
|
|
// r_numer[j] <= 64'b0;
|
|
// r_z1[j] <= 32'b0;
|
|
// r_z0[j] <= 32'b0;
|
|
// r_mut[j] <= 32'b0;
|
|
// end
|
|
// else
|
|
// begin
|
|
// if(enable)
|
|
// begin
|
|
// r_x[j] <= c_x[j];
|
|
// r_y[j] <= c_y[j];
|
|
// r_z[j] <= c_z[j];
|
|
// r_ux[j] <= c_ux[j];
|
|
// r_uy[j] <= c_uy[j];
|
|
// r_uz[j] <= c_uz[j];
|
|
// r_sz[j] <= c_sz[j];
|
|
// r_sr[j] <= c_sr[j];
|
|
// r_sleftz[j] <= c_sleftz[j];
|
|
// r_sleftr[j] <= c_sleftr[j];
|
|
// r_weight[j] <= c_weight[j];
|
|
// r_layer[j] <= c_layer[j];
|
|
// r_dead[j] <= c_dead[j];
|
|
// r_hit[j] <= c_hit[j];
|
|
// r_diff[j] <= c_diff[j];
|
|
// r_dl_b[j] <= c_dl_b[j];
|
|
// r_numer[j] <= c_numer[j];
|
|
// r_z1[j] <= c_z1[j];
|
|
// r_z0[j] <= c_z0[j];
|
|
// r_mut[j] <= c_mut[j];
|
|
// end
|
|
// end
|
|
// end
|
|
if(reset)
|
|
begin
|
|
//Instantiate all 60 aspects of loop
|
|
r_x__59 <= 32'b00000000000000000000000000000000;
|
|
r_y__59 <= 32'b00000000000000000000000000000000;
|
|
r_z__59 <= 32'b00000000000000000000000000000000;
|
|
r_ux__59 <= 32'b00000000000000000000000000000000;
|
|
r_uy__59 <= 32'b00000000000000000000000000000000;
|
|
r_uz__59 <= 32'b00000000000000000000000000000000;
|
|
r_sz__59 <= 32'b00000000000000000000000000000000;
|
|
r_sr__59 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__59 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__59 <= 32'b00000000000000000000000000000000;
|
|
r_weight__59 <= 32'b00000000000000000000000000000000;
|
|
r_layer__59 <= 3'b000;
|
|
r_dead__59 <= 1'b1;
|
|
r_hit__59 <= 1'b0;
|
|
r_diff__59 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__59 <= 32'b00000000000000000000000000000000;
|
|
r_numer__59 <= 0;
|
|
r_z1__59 <= 32'b00000000000000000000000000000000;
|
|
r_z0__59 <= 32'b00000000000000000000000000000000;
|
|
r_mut__59 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__58 <= 32'b00000000000000000000000000000000;
|
|
r_y__58 <= 32'b00000000000000000000000000000000;
|
|
r_z__58 <= 32'b00000000000000000000000000000000;
|
|
r_ux__58 <= 32'b00000000000000000000000000000000;
|
|
r_uy__58 <= 32'b00000000000000000000000000000000;
|
|
r_uz__58 <= 32'b00000000000000000000000000000000;
|
|
r_sz__58 <= 32'b00000000000000000000000000000000;
|
|
r_sr__58 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__58 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__58 <= 32'b00000000000000000000000000000000;
|
|
r_weight__58 <= 32'b00000000000000000000000000000000;
|
|
r_layer__58 <= 3'b000;
|
|
r_dead__58 <= 1'b1;
|
|
r_hit__58 <= 1'b0;
|
|
r_diff__58 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__58 <= 32'b00000000000000000000000000000000;
|
|
r_numer__58 <= 0;
|
|
r_z1__58 <= 32'b00000000000000000000000000000000;
|
|
r_z0__58 <= 32'b00000000000000000000000000000000;
|
|
r_mut__58 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__57 <= 32'b00000000000000000000000000000000;
|
|
r_y__57 <= 32'b00000000000000000000000000000000;
|
|
r_z__57 <= 32'b00000000000000000000000000000000;
|
|
r_ux__57 <= 32'b00000000000000000000000000000000;
|
|
r_uy__57 <= 32'b00000000000000000000000000000000;
|
|
r_uz__57 <= 32'b00000000000000000000000000000000;
|
|
r_sz__57 <= 32'b00000000000000000000000000000000;
|
|
r_sr__57 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__57 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__57 <= 32'b00000000000000000000000000000000;
|
|
r_weight__57 <= 32'b00000000000000000000000000000000;
|
|
r_layer__57 <= 3'b000;
|
|
r_dead__57 <= 1'b1;
|
|
r_hit__57 <= 1'b0;
|
|
r_diff__57 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__57 <= 32'b00000000000000000000000000000000;
|
|
r_numer__57 <= 0;
|
|
r_z1__57 <= 32'b00000000000000000000000000000000;
|
|
r_z0__57 <= 32'b00000000000000000000000000000000;
|
|
r_mut__57 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__56 <= 32'b00000000000000000000000000000000;
|
|
r_y__56 <= 32'b00000000000000000000000000000000;
|
|
r_z__56 <= 32'b00000000000000000000000000000000;
|
|
r_ux__56 <= 32'b00000000000000000000000000000000;
|
|
r_uy__56 <= 32'b00000000000000000000000000000000;
|
|
r_uz__56 <= 32'b00000000000000000000000000000000;
|
|
r_sz__56 <= 32'b00000000000000000000000000000000;
|
|
r_sr__56 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__56 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__56 <= 32'b00000000000000000000000000000000;
|
|
r_weight__56 <= 32'b00000000000000000000000000000000;
|
|
r_layer__56 <= 3'b000;
|
|
r_dead__56 <= 1'b1;
|
|
r_hit__56 <= 1'b0;
|
|
r_diff__56 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__56 <= 32'b00000000000000000000000000000000;
|
|
r_numer__56 <= 0;
|
|
r_z1__56 <= 32'b00000000000000000000000000000000;
|
|
r_z0__56 <= 32'b00000000000000000000000000000000;
|
|
r_mut__56 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__55 <= 32'b00000000000000000000000000000000;
|
|
r_y__55 <= 32'b00000000000000000000000000000000;
|
|
r_z__55 <= 32'b00000000000000000000000000000000;
|
|
r_ux__55 <= 32'b00000000000000000000000000000000;
|
|
r_uy__55 <= 32'b00000000000000000000000000000000;
|
|
r_uz__55 <= 32'b00000000000000000000000000000000;
|
|
r_sz__55 <= 32'b00000000000000000000000000000000;
|
|
r_sr__55 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__55 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__55 <= 32'b00000000000000000000000000000000;
|
|
r_weight__55 <= 32'b00000000000000000000000000000000;
|
|
r_layer__55 <= 3'b000;
|
|
r_dead__55 <= 1'b1;
|
|
r_hit__55 <= 1'b0;
|
|
r_diff__55 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__55 <= 32'b00000000000000000000000000000000;
|
|
r_numer__55 <= 0;
|
|
r_z1__55 <= 32'b00000000000000000000000000000000;
|
|
r_z0__55 <= 32'b00000000000000000000000000000000;
|
|
r_mut__55 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__54 <= 32'b00000000000000000000000000000000;
|
|
r_y__54 <= 32'b00000000000000000000000000000000;
|
|
r_z__54 <= 32'b00000000000000000000000000000000;
|
|
r_ux__54 <= 32'b00000000000000000000000000000000;
|
|
r_uy__54 <= 32'b00000000000000000000000000000000;
|
|
r_uz__54 <= 32'b00000000000000000000000000000000;
|
|
r_sz__54 <= 32'b00000000000000000000000000000000;
|
|
r_sr__54 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__54 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__54 <= 32'b00000000000000000000000000000000;
|
|
r_weight__54 <= 32'b00000000000000000000000000000000;
|
|
r_layer__54 <= 3'b000;
|
|
r_dead__54 <= 1'b1;
|
|
r_hit__54 <= 1'b0;
|
|
r_diff__54 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__54 <= 32'b00000000000000000000000000000000;
|
|
r_numer__54 <= 0;
|
|
r_z1__54 <= 32'b00000000000000000000000000000000;
|
|
r_z0__54 <= 32'b00000000000000000000000000000000;
|
|
r_mut__54 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__53 <= 32'b00000000000000000000000000000000;
|
|
r_y__53 <= 32'b00000000000000000000000000000000;
|
|
r_z__53 <= 32'b00000000000000000000000000000000;
|
|
r_ux__53 <= 32'b00000000000000000000000000000000;
|
|
r_uy__53 <= 32'b00000000000000000000000000000000;
|
|
r_uz__53 <= 32'b00000000000000000000000000000000;
|
|
r_sz__53 <= 32'b00000000000000000000000000000000;
|
|
r_sr__53 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__53 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__53 <= 32'b00000000000000000000000000000000;
|
|
r_weight__53 <= 32'b00000000000000000000000000000000;
|
|
r_layer__53 <= 3'b000;
|
|
r_dead__53 <= 1'b1;
|
|
r_hit__53 <= 1'b0;
|
|
r_diff__53 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__53 <= 32'b00000000000000000000000000000000;
|
|
r_numer__53 <= 0;
|
|
r_z1__53 <= 32'b00000000000000000000000000000000;
|
|
r_z0__53 <= 32'b00000000000000000000000000000000;
|
|
r_mut__53 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__52 <= 32'b00000000000000000000000000000000;
|
|
r_y__52 <= 32'b00000000000000000000000000000000;
|
|
r_z__52 <= 32'b00000000000000000000000000000000;
|
|
r_ux__52 <= 32'b00000000000000000000000000000000;
|
|
r_uy__52 <= 32'b00000000000000000000000000000000;
|
|
r_uz__52 <= 32'b00000000000000000000000000000000;
|
|
r_sz__52 <= 32'b00000000000000000000000000000000;
|
|
r_sr__52 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__52 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__52 <= 32'b00000000000000000000000000000000;
|
|
r_weight__52 <= 32'b00000000000000000000000000000000;
|
|
r_layer__52 <= 3'b000;
|
|
r_dead__52 <= 1'b1;
|
|
r_hit__52 <= 1'b0;
|
|
r_diff__52 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__52 <= 32'b00000000000000000000000000000000;
|
|
r_numer__52 <= 0;
|
|
r_z1__52 <= 32'b00000000000000000000000000000000;
|
|
r_z0__52 <= 32'b00000000000000000000000000000000;
|
|
r_mut__52 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__51 <= 32'b00000000000000000000000000000000;
|
|
r_y__51 <= 32'b00000000000000000000000000000000;
|
|
r_z__51 <= 32'b00000000000000000000000000000000;
|
|
r_ux__51 <= 32'b00000000000000000000000000000000;
|
|
r_uy__51 <= 32'b00000000000000000000000000000000;
|
|
r_uz__51 <= 32'b00000000000000000000000000000000;
|
|
r_sz__51 <= 32'b00000000000000000000000000000000;
|
|
r_sr__51 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__51 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__51 <= 32'b00000000000000000000000000000000;
|
|
r_weight__51 <= 32'b00000000000000000000000000000000;
|
|
r_layer__51 <= 3'b000;
|
|
r_dead__51 <= 1'b1;
|
|
r_hit__51 <= 1'b0;
|
|
r_diff__51 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__51 <= 32'b00000000000000000000000000000000;
|
|
r_numer__51 <= 0;
|
|
r_z1__51 <= 32'b00000000000000000000000000000000;
|
|
r_z0__51 <= 32'b00000000000000000000000000000000;
|
|
r_mut__51 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__50 <= 32'b00000000000000000000000000000000;
|
|
r_y__50 <= 32'b00000000000000000000000000000000;
|
|
r_z__50 <= 32'b00000000000000000000000000000000;
|
|
r_ux__50 <= 32'b00000000000000000000000000000000;
|
|
r_uy__50 <= 32'b00000000000000000000000000000000;
|
|
r_uz__50 <= 32'b00000000000000000000000000000000;
|
|
r_sz__50 <= 32'b00000000000000000000000000000000;
|
|
r_sr__50 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__50 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__50 <= 32'b00000000000000000000000000000000;
|
|
r_weight__50 <= 32'b00000000000000000000000000000000;
|
|
r_layer__50 <= 3'b000;
|
|
r_dead__50 <= 1'b1;
|
|
r_hit__50 <= 1'b0;
|
|
r_diff__50 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__50 <= 32'b00000000000000000000000000000000;
|
|
r_numer__50 <= 0;
|
|
r_z1__50 <= 32'b00000000000000000000000000000000;
|
|
r_z0__50 <= 32'b00000000000000000000000000000000;
|
|
r_mut__50 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__49 <= 32'b00000000000000000000000000000000;
|
|
r_y__49 <= 32'b00000000000000000000000000000000;
|
|
r_z__49 <= 32'b00000000000000000000000000000000;
|
|
r_ux__49 <= 32'b00000000000000000000000000000000;
|
|
r_uy__49 <= 32'b00000000000000000000000000000000;
|
|
r_uz__49 <= 32'b00000000000000000000000000000000;
|
|
r_sz__49 <= 32'b00000000000000000000000000000000;
|
|
r_sr__49 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__49 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__49 <= 32'b00000000000000000000000000000000;
|
|
r_weight__49 <= 32'b00000000000000000000000000000000;
|
|
r_layer__49 <= 3'b000;
|
|
r_dead__49 <= 1'b1;
|
|
r_hit__49 <= 1'b0;
|
|
r_diff__49 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__49 <= 32'b00000000000000000000000000000000;
|
|
r_numer__49 <= 0;
|
|
r_z1__49 <= 32'b00000000000000000000000000000000;
|
|
r_z0__49 <= 32'b00000000000000000000000000000000;
|
|
r_mut__49 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__48 <= 32'b00000000000000000000000000000000;
|
|
r_y__48 <= 32'b00000000000000000000000000000000;
|
|
r_z__48 <= 32'b00000000000000000000000000000000;
|
|
r_ux__48 <= 32'b00000000000000000000000000000000;
|
|
r_uy__48 <= 32'b00000000000000000000000000000000;
|
|
r_uz__48 <= 32'b00000000000000000000000000000000;
|
|
r_sz__48 <= 32'b00000000000000000000000000000000;
|
|
r_sr__48 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__48 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__48 <= 32'b00000000000000000000000000000000;
|
|
r_weight__48 <= 32'b00000000000000000000000000000000;
|
|
r_layer__48 <= 3'b000;
|
|
r_dead__48 <= 1'b1;
|
|
r_hit__48 <= 1'b0;
|
|
r_diff__48 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__48 <= 32'b00000000000000000000000000000000;
|
|
r_numer__48 <= 0;
|
|
r_z1__48 <= 32'b00000000000000000000000000000000;
|
|
r_z0__48 <= 32'b00000000000000000000000000000000;
|
|
r_mut__48 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__47 <= 32'b00000000000000000000000000000000;
|
|
r_y__47 <= 32'b00000000000000000000000000000000;
|
|
r_z__47 <= 32'b00000000000000000000000000000000;
|
|
r_ux__47 <= 32'b00000000000000000000000000000000;
|
|
r_uy__47 <= 32'b00000000000000000000000000000000;
|
|
r_uz__47 <= 32'b00000000000000000000000000000000;
|
|
r_sz__47 <= 32'b00000000000000000000000000000000;
|
|
r_sr__47 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__47 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__47 <= 32'b00000000000000000000000000000000;
|
|
r_weight__47 <= 32'b00000000000000000000000000000000;
|
|
r_layer__47 <= 3'b000;
|
|
r_dead__47 <= 1'b1;
|
|
r_hit__47 <= 1'b0;
|
|
r_diff__47 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__47 <= 32'b00000000000000000000000000000000;
|
|
r_numer__47 <= 0;
|
|
r_z1__47 <= 32'b00000000000000000000000000000000;
|
|
r_z0__47 <= 32'b00000000000000000000000000000000;
|
|
r_mut__47 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__46 <= 32'b00000000000000000000000000000000;
|
|
r_y__46 <= 32'b00000000000000000000000000000000;
|
|
r_z__46 <= 32'b00000000000000000000000000000000;
|
|
r_ux__46 <= 32'b00000000000000000000000000000000;
|
|
r_uy__46 <= 32'b00000000000000000000000000000000;
|
|
r_uz__46 <= 32'b00000000000000000000000000000000;
|
|
r_sz__46 <= 32'b00000000000000000000000000000000;
|
|
r_sr__46 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__46 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__46 <= 32'b00000000000000000000000000000000;
|
|
r_weight__46 <= 32'b00000000000000000000000000000000;
|
|
r_layer__46 <= 3'b000;
|
|
r_dead__46 <= 1'b1;
|
|
r_hit__46 <= 1'b0;
|
|
r_diff__46 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__46 <= 32'b00000000000000000000000000000000;
|
|
r_numer__46 <= 0;
|
|
r_z1__46 <= 32'b00000000000000000000000000000000;
|
|
r_z0__46 <= 32'b00000000000000000000000000000000;
|
|
r_mut__46 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__45 <= 32'b00000000000000000000000000000000;
|
|
r_y__45 <= 32'b00000000000000000000000000000000;
|
|
r_z__45 <= 32'b00000000000000000000000000000000;
|
|
r_ux__45 <= 32'b00000000000000000000000000000000;
|
|
r_uy__45 <= 32'b00000000000000000000000000000000;
|
|
r_uz__45 <= 32'b00000000000000000000000000000000;
|
|
r_sz__45 <= 32'b00000000000000000000000000000000;
|
|
r_sr__45 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__45 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__45 <= 32'b00000000000000000000000000000000;
|
|
r_weight__45 <= 32'b00000000000000000000000000000000;
|
|
r_layer__45 <= 3'b000;
|
|
r_dead__45 <= 1'b1;
|
|
r_hit__45 <= 1'b0;
|
|
r_diff__45 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__45 <= 32'b00000000000000000000000000000000;
|
|
r_numer__45 <= 0;
|
|
r_z1__45 <= 32'b00000000000000000000000000000000;
|
|
r_z0__45 <= 32'b00000000000000000000000000000000;
|
|
r_mut__45 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__44 <= 32'b00000000000000000000000000000000;
|
|
r_y__44 <= 32'b00000000000000000000000000000000;
|
|
r_z__44 <= 32'b00000000000000000000000000000000;
|
|
r_ux__44 <= 32'b00000000000000000000000000000000;
|
|
r_uy__44 <= 32'b00000000000000000000000000000000;
|
|
r_uz__44 <= 32'b00000000000000000000000000000000;
|
|
r_sz__44 <= 32'b00000000000000000000000000000000;
|
|
r_sr__44 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__44 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__44 <= 32'b00000000000000000000000000000000;
|
|
r_weight__44 <= 32'b00000000000000000000000000000000;
|
|
r_layer__44 <= 3'b000;
|
|
r_dead__44 <= 1'b1;
|
|
r_hit__44 <= 1'b0;
|
|
r_diff__44 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__44 <= 32'b00000000000000000000000000000000;
|
|
r_numer__44 <= 0;
|
|
r_z1__44 <= 32'b00000000000000000000000000000000;
|
|
r_z0__44 <= 32'b00000000000000000000000000000000;
|
|
r_mut__44 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__43 <= 32'b00000000000000000000000000000000;
|
|
r_y__43 <= 32'b00000000000000000000000000000000;
|
|
r_z__43 <= 32'b00000000000000000000000000000000;
|
|
r_ux__43 <= 32'b00000000000000000000000000000000;
|
|
r_uy__43 <= 32'b00000000000000000000000000000000;
|
|
r_uz__43 <= 32'b00000000000000000000000000000000;
|
|
r_sz__43 <= 32'b00000000000000000000000000000000;
|
|
r_sr__43 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__43 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__43 <= 32'b00000000000000000000000000000000;
|
|
r_weight__43 <= 32'b00000000000000000000000000000000;
|
|
r_layer__43 <= 3'b000;
|
|
r_dead__43 <= 1'b1;
|
|
r_hit__43 <= 1'b0;
|
|
r_diff__43 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__43 <= 32'b00000000000000000000000000000000;
|
|
r_numer__43 <= 0;
|
|
r_z1__43 <= 32'b00000000000000000000000000000000;
|
|
r_z0__43 <= 32'b00000000000000000000000000000000;
|
|
r_mut__43 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__42 <= 32'b00000000000000000000000000000000;
|
|
r_y__42 <= 32'b00000000000000000000000000000000;
|
|
r_z__42 <= 32'b00000000000000000000000000000000;
|
|
r_ux__42 <= 32'b00000000000000000000000000000000;
|
|
r_uy__42 <= 32'b00000000000000000000000000000000;
|
|
r_uz__42 <= 32'b00000000000000000000000000000000;
|
|
r_sz__42 <= 32'b00000000000000000000000000000000;
|
|
r_sr__42 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__42 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__42 <= 32'b00000000000000000000000000000000;
|
|
r_weight__42 <= 32'b00000000000000000000000000000000;
|
|
r_layer__42 <= 3'b000;
|
|
r_dead__42 <= 1'b1;
|
|
r_hit__42 <= 1'b0;
|
|
r_diff__42 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__42 <= 32'b00000000000000000000000000000000;
|
|
r_numer__42 <= 0;
|
|
r_z1__42 <= 32'b00000000000000000000000000000000;
|
|
r_z0__42 <= 32'b00000000000000000000000000000000;
|
|
r_mut__42 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__41 <= 32'b00000000000000000000000000000000;
|
|
r_y__41 <= 32'b00000000000000000000000000000000;
|
|
r_z__41 <= 32'b00000000000000000000000000000000;
|
|
r_ux__41 <= 32'b00000000000000000000000000000000;
|
|
r_uy__41 <= 32'b00000000000000000000000000000000;
|
|
r_uz__41 <= 32'b00000000000000000000000000000000;
|
|
r_sz__41 <= 32'b00000000000000000000000000000000;
|
|
r_sr__41 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__41 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__41 <= 32'b00000000000000000000000000000000;
|
|
r_weight__41 <= 32'b00000000000000000000000000000000;
|
|
r_layer__41 <= 3'b000;
|
|
r_dead__41 <= 1'b1;
|
|
r_hit__41 <= 1'b0;
|
|
r_diff__41 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__41 <= 32'b00000000000000000000000000000000;
|
|
r_numer__41 <= 0;
|
|
r_z1__41 <= 32'b00000000000000000000000000000000;
|
|
r_z0__41 <= 32'b00000000000000000000000000000000;
|
|
r_mut__41 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__40 <= 32'b00000000000000000000000000000000;
|
|
r_y__40 <= 32'b00000000000000000000000000000000;
|
|
r_z__40 <= 32'b00000000000000000000000000000000;
|
|
r_ux__40 <= 32'b00000000000000000000000000000000;
|
|
r_uy__40 <= 32'b00000000000000000000000000000000;
|
|
r_uz__40 <= 32'b00000000000000000000000000000000;
|
|
r_sz__40 <= 32'b00000000000000000000000000000000;
|
|
r_sr__40 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__40 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__40 <= 32'b00000000000000000000000000000000;
|
|
r_weight__40 <= 32'b00000000000000000000000000000000;
|
|
r_layer__40 <= 3'b000;
|
|
r_dead__40 <= 1'b1;
|
|
r_hit__40 <= 1'b0;
|
|
r_diff__40 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__40 <= 32'b00000000000000000000000000000000;
|
|
r_numer__40 <= 0;
|
|
r_z1__40 <= 32'b00000000000000000000000000000000;
|
|
r_z0__40 <= 32'b00000000000000000000000000000000;
|
|
r_mut__40 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__39 <= 32'b00000000000000000000000000000000;
|
|
r_y__39 <= 32'b00000000000000000000000000000000;
|
|
r_z__39 <= 32'b00000000000000000000000000000000;
|
|
r_ux__39 <= 32'b00000000000000000000000000000000;
|
|
r_uy__39 <= 32'b00000000000000000000000000000000;
|
|
r_uz__39 <= 32'b00000000000000000000000000000000;
|
|
r_sz__39 <= 32'b00000000000000000000000000000000;
|
|
r_sr__39 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__39 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__39 <= 32'b00000000000000000000000000000000;
|
|
r_weight__39 <= 32'b00000000000000000000000000000000;
|
|
r_layer__39 <= 3'b000;
|
|
r_dead__39 <= 1'b1;
|
|
r_hit__39 <= 1'b0;
|
|
r_diff__39 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__39 <= 32'b00000000000000000000000000000000;
|
|
r_numer__39 <= 0;
|
|
r_z1__39 <= 32'b00000000000000000000000000000000;
|
|
r_z0__39 <= 32'b00000000000000000000000000000000;
|
|
r_mut__39 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__38 <= 32'b00000000000000000000000000000000;
|
|
r_y__38 <= 32'b00000000000000000000000000000000;
|
|
r_z__38 <= 32'b00000000000000000000000000000000;
|
|
r_ux__38 <= 32'b00000000000000000000000000000000;
|
|
r_uy__38 <= 32'b00000000000000000000000000000000;
|
|
r_uz__38 <= 32'b00000000000000000000000000000000;
|
|
r_sz__38 <= 32'b00000000000000000000000000000000;
|
|
r_sr__38 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__38 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__38 <= 32'b00000000000000000000000000000000;
|
|
r_weight__38 <= 32'b00000000000000000000000000000000;
|
|
r_layer__38 <= 3'b000;
|
|
r_dead__38 <= 1'b1;
|
|
r_hit__38 <= 1'b0;
|
|
r_diff__38 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__38 <= 32'b00000000000000000000000000000000;
|
|
r_numer__38 <= 0;
|
|
r_z1__38 <= 32'b00000000000000000000000000000000;
|
|
r_z0__38 <= 32'b00000000000000000000000000000000;
|
|
r_mut__38 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__37 <= 32'b00000000000000000000000000000000;
|
|
r_y__37 <= 32'b00000000000000000000000000000000;
|
|
r_z__37 <= 32'b00000000000000000000000000000000;
|
|
r_ux__37 <= 32'b00000000000000000000000000000000;
|
|
r_uy__37 <= 32'b00000000000000000000000000000000;
|
|
r_uz__37 <= 32'b00000000000000000000000000000000;
|
|
r_sz__37 <= 32'b00000000000000000000000000000000;
|
|
r_sr__37 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__37 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__37 <= 32'b00000000000000000000000000000000;
|
|
r_weight__37 <= 32'b00000000000000000000000000000000;
|
|
r_layer__37 <= 3'b000;
|
|
r_dead__37 <= 1'b1;
|
|
r_hit__37 <= 1'b0;
|
|
r_diff__37 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__37 <= 32'b00000000000000000000000000000000;
|
|
r_numer__37 <= 0;
|
|
r_z1__37 <= 32'b00000000000000000000000000000000;
|
|
r_z0__37 <= 32'b00000000000000000000000000000000;
|
|
r_mut__37 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__36 <= 32'b00000000000000000000000000000000;
|
|
r_y__36 <= 32'b00000000000000000000000000000000;
|
|
r_z__36 <= 32'b00000000000000000000000000000000;
|
|
r_ux__36 <= 32'b00000000000000000000000000000000;
|
|
r_uy__36 <= 32'b00000000000000000000000000000000;
|
|
r_uz__36 <= 32'b00000000000000000000000000000000;
|
|
r_sz__36 <= 32'b00000000000000000000000000000000;
|
|
r_sr__36 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__36 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__36 <= 32'b00000000000000000000000000000000;
|
|
r_weight__36 <= 32'b00000000000000000000000000000000;
|
|
r_layer__36 <= 3'b000;
|
|
r_dead__36 <= 1'b1;
|
|
r_hit__36 <= 1'b0;
|
|
r_diff__36 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__36 <= 32'b00000000000000000000000000000000;
|
|
r_numer__36 <= 0;
|
|
r_z1__36 <= 32'b00000000000000000000000000000000;
|
|
r_z0__36 <= 32'b00000000000000000000000000000000;
|
|
r_mut__36 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__35 <= 32'b00000000000000000000000000000000;
|
|
r_y__35 <= 32'b00000000000000000000000000000000;
|
|
r_z__35 <= 32'b00000000000000000000000000000000;
|
|
r_ux__35 <= 32'b00000000000000000000000000000000;
|
|
r_uy__35 <= 32'b00000000000000000000000000000000;
|
|
r_uz__35 <= 32'b00000000000000000000000000000000;
|
|
r_sz__35 <= 32'b00000000000000000000000000000000;
|
|
r_sr__35 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__35 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__35 <= 32'b00000000000000000000000000000000;
|
|
r_weight__35 <= 32'b00000000000000000000000000000000;
|
|
r_layer__35 <= 3'b000;
|
|
r_dead__35 <= 1'b1;
|
|
r_hit__35 <= 1'b0;
|
|
r_diff__35 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__35 <= 32'b00000000000000000000000000000000;
|
|
r_numer__35 <= 0;
|
|
r_z1__35 <= 32'b00000000000000000000000000000000;
|
|
r_z0__35 <= 32'b00000000000000000000000000000000;
|
|
r_mut__35 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__34 <= 32'b00000000000000000000000000000000;
|
|
r_y__34 <= 32'b00000000000000000000000000000000;
|
|
r_z__34 <= 32'b00000000000000000000000000000000;
|
|
r_ux__34 <= 32'b00000000000000000000000000000000;
|
|
r_uy__34 <= 32'b00000000000000000000000000000000;
|
|
r_uz__34 <= 32'b00000000000000000000000000000000;
|
|
r_sz__34 <= 32'b00000000000000000000000000000000;
|
|
r_sr__34 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__34 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__34 <= 32'b00000000000000000000000000000000;
|
|
r_weight__34 <= 32'b00000000000000000000000000000000;
|
|
r_layer__34 <= 3'b000;
|
|
r_dead__34 <= 1'b1;
|
|
r_hit__34 <= 1'b0;
|
|
r_diff__34 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__34 <= 32'b00000000000000000000000000000000;
|
|
r_numer__34 <= 0;
|
|
r_z1__34 <= 32'b00000000000000000000000000000000;
|
|
r_z0__34 <= 32'b00000000000000000000000000000000;
|
|
r_mut__34 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__33 <= 32'b00000000000000000000000000000000;
|
|
r_y__33 <= 32'b00000000000000000000000000000000;
|
|
r_z__33 <= 32'b00000000000000000000000000000000;
|
|
r_ux__33 <= 32'b00000000000000000000000000000000;
|
|
r_uy__33 <= 32'b00000000000000000000000000000000;
|
|
r_uz__33 <= 32'b00000000000000000000000000000000;
|
|
r_sz__33 <= 32'b00000000000000000000000000000000;
|
|
r_sr__33 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__33 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__33 <= 32'b00000000000000000000000000000000;
|
|
r_weight__33 <= 32'b00000000000000000000000000000000;
|
|
r_layer__33 <= 3'b000;
|
|
r_dead__33 <= 1'b1;
|
|
r_hit__33 <= 1'b0;
|
|
r_diff__33 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__33 <= 32'b00000000000000000000000000000000;
|
|
r_numer__33 <= 0;
|
|
r_z1__33 <= 32'b00000000000000000000000000000000;
|
|
r_z0__33 <= 32'b00000000000000000000000000000000;
|
|
r_mut__33 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__32 <= 32'b00000000000000000000000000000000;
|
|
r_y__32 <= 32'b00000000000000000000000000000000;
|
|
r_z__32 <= 32'b00000000000000000000000000000000;
|
|
r_ux__32 <= 32'b00000000000000000000000000000000;
|
|
r_uy__32 <= 32'b00000000000000000000000000000000;
|
|
r_uz__32 <= 32'b00000000000000000000000000000000;
|
|
r_sz__32 <= 32'b00000000000000000000000000000000;
|
|
r_sr__32 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__32 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__32 <= 32'b00000000000000000000000000000000;
|
|
r_weight__32 <= 32'b00000000000000000000000000000000;
|
|
r_layer__32 <= 3'b000;
|
|
r_dead__32 <= 1'b1;
|
|
r_hit__32 <= 1'b0;
|
|
r_diff__32 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__32 <= 32'b00000000000000000000000000000000;
|
|
r_numer__32 <= 0;
|
|
r_z1__32 <= 32'b00000000000000000000000000000000;
|
|
r_z0__32 <= 32'b00000000000000000000000000000000;
|
|
r_mut__32 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__31 <= 32'b00000000000000000000000000000000;
|
|
r_y__31 <= 32'b00000000000000000000000000000000;
|
|
r_z__31 <= 32'b00000000000000000000000000000000;
|
|
r_ux__31 <= 32'b00000000000000000000000000000000;
|
|
r_uy__31 <= 32'b00000000000000000000000000000000;
|
|
r_uz__31 <= 32'b00000000000000000000000000000000;
|
|
r_sz__31 <= 32'b00000000000000000000000000000000;
|
|
r_sr__31 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__31 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__31 <= 32'b00000000000000000000000000000000;
|
|
r_weight__31 <= 32'b00000000000000000000000000000000;
|
|
r_layer__31 <= 3'b000;
|
|
r_dead__31 <= 1'b1;
|
|
r_hit__31 <= 1'b0;
|
|
r_diff__31 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__31 <= 32'b00000000000000000000000000000000;
|
|
r_numer__31 <= 0;
|
|
r_z1__31 <= 32'b00000000000000000000000000000000;
|
|
r_z0__31 <= 32'b00000000000000000000000000000000;
|
|
r_mut__31 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__30 <= 32'b00000000000000000000000000000000;
|
|
r_y__30 <= 32'b00000000000000000000000000000000;
|
|
r_z__30 <= 32'b00000000000000000000000000000000;
|
|
r_ux__30 <= 32'b00000000000000000000000000000000;
|
|
r_uy__30 <= 32'b00000000000000000000000000000000;
|
|
r_uz__30 <= 32'b00000000000000000000000000000000;
|
|
r_sz__30 <= 32'b00000000000000000000000000000000;
|
|
r_sr__30 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__30 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__30 <= 32'b00000000000000000000000000000000;
|
|
r_weight__30 <= 32'b00000000000000000000000000000000;
|
|
r_layer__30 <= 3'b000;
|
|
r_dead__30 <= 1'b1;
|
|
r_hit__30 <= 1'b0;
|
|
r_diff__30 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__30 <= 32'b00000000000000000000000000000000;
|
|
r_numer__30 <= 0;
|
|
r_z1__30 <= 32'b00000000000000000000000000000000;
|
|
r_z0__30 <= 32'b00000000000000000000000000000000;
|
|
r_mut__30 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__29 <= 32'b00000000000000000000000000000000;
|
|
r_y__29 <= 32'b00000000000000000000000000000000;
|
|
r_z__29 <= 32'b00000000000000000000000000000000;
|
|
r_ux__29 <= 32'b00000000000000000000000000000000;
|
|
r_uy__29 <= 32'b00000000000000000000000000000000;
|
|
r_uz__29 <= 32'b00000000000000000000000000000000;
|
|
r_sz__29 <= 32'b00000000000000000000000000000000;
|
|
r_sr__29 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__29 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__29 <= 32'b00000000000000000000000000000000;
|
|
r_weight__29 <= 32'b00000000000000000000000000000000;
|
|
r_layer__29 <= 3'b000;
|
|
r_dead__29 <= 1'b1;
|
|
r_hit__29 <= 1'b0;
|
|
r_diff__29 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__29 <= 32'b00000000000000000000000000000000;
|
|
r_numer__29 <= 0;
|
|
r_z1__29 <= 32'b00000000000000000000000000000000;
|
|
r_z0__29 <= 32'b00000000000000000000000000000000;
|
|
r_mut__29 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__28 <= 32'b00000000000000000000000000000000;
|
|
r_y__28 <= 32'b00000000000000000000000000000000;
|
|
r_z__28 <= 32'b00000000000000000000000000000000;
|
|
r_ux__28 <= 32'b00000000000000000000000000000000;
|
|
r_uy__28 <= 32'b00000000000000000000000000000000;
|
|
r_uz__28 <= 32'b00000000000000000000000000000000;
|
|
r_sz__28 <= 32'b00000000000000000000000000000000;
|
|
r_sr__28 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__28 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__28 <= 32'b00000000000000000000000000000000;
|
|
r_weight__28 <= 32'b00000000000000000000000000000000;
|
|
r_layer__28 <= 3'b000;
|
|
r_dead__28 <= 1'b1;
|
|
r_hit__28 <= 1'b0;
|
|
r_diff__28 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__28 <= 32'b00000000000000000000000000000000;
|
|
r_numer__28 <= 0;
|
|
r_z1__28 <= 32'b00000000000000000000000000000000;
|
|
r_z0__28 <= 32'b00000000000000000000000000000000;
|
|
r_mut__28 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__27 <= 32'b00000000000000000000000000000000;
|
|
r_y__27 <= 32'b00000000000000000000000000000000;
|
|
r_z__27 <= 32'b00000000000000000000000000000000;
|
|
r_ux__27 <= 32'b00000000000000000000000000000000;
|
|
r_uy__27 <= 32'b00000000000000000000000000000000;
|
|
r_uz__27 <= 32'b00000000000000000000000000000000;
|
|
r_sz__27 <= 32'b00000000000000000000000000000000;
|
|
r_sr__27 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__27 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__27 <= 32'b00000000000000000000000000000000;
|
|
r_weight__27 <= 32'b00000000000000000000000000000000;
|
|
r_layer__27 <= 3'b000;
|
|
r_dead__27 <= 1'b1;
|
|
r_hit__27 <= 1'b0;
|
|
r_diff__27 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__27 <= 32'b00000000000000000000000000000000;
|
|
r_numer__27 <= 0;
|
|
r_z1__27 <= 32'b00000000000000000000000000000000;
|
|
r_z0__27 <= 32'b00000000000000000000000000000000;
|
|
r_mut__27 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__26 <= 32'b00000000000000000000000000000000;
|
|
r_y__26 <= 32'b00000000000000000000000000000000;
|
|
r_z__26 <= 32'b00000000000000000000000000000000;
|
|
r_ux__26 <= 32'b00000000000000000000000000000000;
|
|
r_uy__26 <= 32'b00000000000000000000000000000000;
|
|
r_uz__26 <= 32'b00000000000000000000000000000000;
|
|
r_sz__26 <= 32'b00000000000000000000000000000000;
|
|
r_sr__26 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__26 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__26 <= 32'b00000000000000000000000000000000;
|
|
r_weight__26 <= 32'b00000000000000000000000000000000;
|
|
r_layer__26 <= 3'b000;
|
|
r_dead__26 <= 1'b1;
|
|
r_hit__26 <= 1'b0;
|
|
r_diff__26 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__26 <= 32'b00000000000000000000000000000000;
|
|
r_numer__26 <= 0;
|
|
r_z1__26 <= 32'b00000000000000000000000000000000;
|
|
r_z0__26 <= 32'b00000000000000000000000000000000;
|
|
r_mut__26 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__25 <= 32'b00000000000000000000000000000000;
|
|
r_y__25 <= 32'b00000000000000000000000000000000;
|
|
r_z__25 <= 32'b00000000000000000000000000000000;
|
|
r_ux__25 <= 32'b00000000000000000000000000000000;
|
|
r_uy__25 <= 32'b00000000000000000000000000000000;
|
|
r_uz__25 <= 32'b00000000000000000000000000000000;
|
|
r_sz__25 <= 32'b00000000000000000000000000000000;
|
|
r_sr__25 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__25 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__25 <= 32'b00000000000000000000000000000000;
|
|
r_weight__25 <= 32'b00000000000000000000000000000000;
|
|
r_layer__25 <= 3'b000;
|
|
r_dead__25 <= 1'b1;
|
|
r_hit__25 <= 1'b0;
|
|
r_diff__25 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__25 <= 32'b00000000000000000000000000000000;
|
|
r_numer__25 <= 0;
|
|
r_z1__25 <= 32'b00000000000000000000000000000000;
|
|
r_z0__25 <= 32'b00000000000000000000000000000000;
|
|
r_mut__25 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__24 <= 32'b00000000000000000000000000000000;
|
|
r_y__24 <= 32'b00000000000000000000000000000000;
|
|
r_z__24 <= 32'b00000000000000000000000000000000;
|
|
r_ux__24 <= 32'b00000000000000000000000000000000;
|
|
r_uy__24 <= 32'b00000000000000000000000000000000;
|
|
r_uz__24 <= 32'b00000000000000000000000000000000;
|
|
r_sz__24 <= 32'b00000000000000000000000000000000;
|
|
r_sr__24 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__24 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__24 <= 32'b00000000000000000000000000000000;
|
|
r_weight__24 <= 32'b00000000000000000000000000000000;
|
|
r_layer__24 <= 3'b000;
|
|
r_dead__24 <= 1'b1;
|
|
r_hit__24 <= 1'b0;
|
|
r_diff__24 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__24 <= 32'b00000000000000000000000000000000;
|
|
r_numer__24 <= 0;
|
|
r_z1__24 <= 32'b00000000000000000000000000000000;
|
|
r_z0__24 <= 32'b00000000000000000000000000000000;
|
|
r_mut__24 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__23 <= 32'b00000000000000000000000000000000;
|
|
r_y__23 <= 32'b00000000000000000000000000000000;
|
|
r_z__23 <= 32'b00000000000000000000000000000000;
|
|
r_ux__23 <= 32'b00000000000000000000000000000000;
|
|
r_uy__23 <= 32'b00000000000000000000000000000000;
|
|
r_uz__23 <= 32'b00000000000000000000000000000000;
|
|
r_sz__23 <= 32'b00000000000000000000000000000000;
|
|
r_sr__23 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__23 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__23 <= 32'b00000000000000000000000000000000;
|
|
r_weight__23 <= 32'b00000000000000000000000000000000;
|
|
r_layer__23 <= 3'b000;
|
|
r_dead__23 <= 1'b1;
|
|
r_hit__23 <= 1'b0;
|
|
r_diff__23 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__23 <= 32'b00000000000000000000000000000000;
|
|
r_numer__23 <= 0;
|
|
r_z1__23 <= 32'b00000000000000000000000000000000;
|
|
r_z0__23 <= 32'b00000000000000000000000000000000;
|
|
r_mut__23 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__22 <= 32'b00000000000000000000000000000000;
|
|
r_y__22 <= 32'b00000000000000000000000000000000;
|
|
r_z__22 <= 32'b00000000000000000000000000000000;
|
|
r_ux__22 <= 32'b00000000000000000000000000000000;
|
|
r_uy__22 <= 32'b00000000000000000000000000000000;
|
|
r_uz__22 <= 32'b00000000000000000000000000000000;
|
|
r_sz__22 <= 32'b00000000000000000000000000000000;
|
|
r_sr__22 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__22 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__22 <= 32'b00000000000000000000000000000000;
|
|
r_weight__22 <= 32'b00000000000000000000000000000000;
|
|
r_layer__22 <= 3'b000;
|
|
r_dead__22 <= 1'b1;
|
|
r_hit__22 <= 1'b0;
|
|
r_diff__22 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__22 <= 32'b00000000000000000000000000000000;
|
|
r_numer__22 <= 0;
|
|
r_z1__22 <= 32'b00000000000000000000000000000000;
|
|
r_z0__22 <= 32'b00000000000000000000000000000000;
|
|
r_mut__22 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__21 <= 32'b00000000000000000000000000000000;
|
|
r_y__21 <= 32'b00000000000000000000000000000000;
|
|
r_z__21 <= 32'b00000000000000000000000000000000;
|
|
r_ux__21 <= 32'b00000000000000000000000000000000;
|
|
r_uy__21 <= 32'b00000000000000000000000000000000;
|
|
r_uz__21 <= 32'b00000000000000000000000000000000;
|
|
r_sz__21 <= 32'b00000000000000000000000000000000;
|
|
r_sr__21 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__21 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__21 <= 32'b00000000000000000000000000000000;
|
|
r_weight__21 <= 32'b00000000000000000000000000000000;
|
|
r_layer__21 <= 3'b000;
|
|
r_dead__21 <= 1'b1;
|
|
r_hit__21 <= 1'b0;
|
|
r_diff__21 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__21 <= 32'b00000000000000000000000000000000;
|
|
r_numer__21 <= 0;
|
|
r_z1__21 <= 32'b00000000000000000000000000000000;
|
|
r_z0__21 <= 32'b00000000000000000000000000000000;
|
|
r_mut__21 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__20 <= 32'b00000000000000000000000000000000;
|
|
r_y__20 <= 32'b00000000000000000000000000000000;
|
|
r_z__20 <= 32'b00000000000000000000000000000000;
|
|
r_ux__20 <= 32'b00000000000000000000000000000000;
|
|
r_uy__20 <= 32'b00000000000000000000000000000000;
|
|
r_uz__20 <= 32'b00000000000000000000000000000000;
|
|
r_sz__20 <= 32'b00000000000000000000000000000000;
|
|
r_sr__20 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__20 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__20 <= 32'b00000000000000000000000000000000;
|
|
r_weight__20 <= 32'b00000000000000000000000000000000;
|
|
r_layer__20 <= 3'b000;
|
|
r_dead__20 <= 1'b1;
|
|
r_hit__20 <= 1'b0;
|
|
r_diff__20 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__20 <= 32'b00000000000000000000000000000000;
|
|
r_numer__20 <= 0;
|
|
r_z1__20 <= 32'b00000000000000000000000000000000;
|
|
r_z0__20 <= 32'b00000000000000000000000000000000;
|
|
r_mut__20 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__19 <= 32'b00000000000000000000000000000000;
|
|
r_y__19 <= 32'b00000000000000000000000000000000;
|
|
r_z__19 <= 32'b00000000000000000000000000000000;
|
|
r_ux__19 <= 32'b00000000000000000000000000000000;
|
|
r_uy__19 <= 32'b00000000000000000000000000000000;
|
|
r_uz__19 <= 32'b00000000000000000000000000000000;
|
|
r_sz__19 <= 32'b00000000000000000000000000000000;
|
|
r_sr__19 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__19 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__19 <= 32'b00000000000000000000000000000000;
|
|
r_weight__19 <= 32'b00000000000000000000000000000000;
|
|
r_layer__19 <= 3'b000;
|
|
r_dead__19 <= 1'b1;
|
|
r_hit__19 <= 1'b0;
|
|
r_diff__19 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__19 <= 32'b00000000000000000000000000000000;
|
|
r_numer__19 <= 0;
|
|
r_z1__19 <= 32'b00000000000000000000000000000000;
|
|
r_z0__19 <= 32'b00000000000000000000000000000000;
|
|
r_mut__19 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__18 <= 32'b00000000000000000000000000000000;
|
|
r_y__18 <= 32'b00000000000000000000000000000000;
|
|
r_z__18 <= 32'b00000000000000000000000000000000;
|
|
r_ux__18 <= 32'b00000000000000000000000000000000;
|
|
r_uy__18 <= 32'b00000000000000000000000000000000;
|
|
r_uz__18 <= 32'b00000000000000000000000000000000;
|
|
r_sz__18 <= 32'b00000000000000000000000000000000;
|
|
r_sr__18 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__18 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__18 <= 32'b00000000000000000000000000000000;
|
|
r_weight__18 <= 32'b00000000000000000000000000000000;
|
|
r_layer__18 <= 3'b000;
|
|
r_dead__18 <= 1'b1;
|
|
r_hit__18 <= 1'b0;
|
|
r_diff__18 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__18 <= 32'b00000000000000000000000000000000;
|
|
r_numer__18 <= 0;
|
|
r_z1__18 <= 32'b00000000000000000000000000000000;
|
|
r_z0__18 <= 32'b00000000000000000000000000000000;
|
|
r_mut__18 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__17 <= 32'b00000000000000000000000000000000;
|
|
r_y__17 <= 32'b00000000000000000000000000000000;
|
|
r_z__17 <= 32'b00000000000000000000000000000000;
|
|
r_ux__17 <= 32'b00000000000000000000000000000000;
|
|
r_uy__17 <= 32'b00000000000000000000000000000000;
|
|
r_uz__17 <= 32'b00000000000000000000000000000000;
|
|
r_sz__17 <= 32'b00000000000000000000000000000000;
|
|
r_sr__17 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__17 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__17 <= 32'b00000000000000000000000000000000;
|
|
r_weight__17 <= 32'b00000000000000000000000000000000;
|
|
r_layer__17 <= 3'b000;
|
|
r_dead__17 <= 1'b1;
|
|
r_hit__17 <= 1'b0;
|
|
r_diff__17 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__17 <= 32'b00000000000000000000000000000000;
|
|
r_numer__17 <= 0;
|
|
r_z1__17 <= 32'b00000000000000000000000000000000;
|
|
r_z0__17 <= 32'b00000000000000000000000000000000;
|
|
r_mut__17 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__16 <= 32'b00000000000000000000000000000000;
|
|
r_y__16 <= 32'b00000000000000000000000000000000;
|
|
r_z__16 <= 32'b00000000000000000000000000000000;
|
|
r_ux__16 <= 32'b00000000000000000000000000000000;
|
|
r_uy__16 <= 32'b00000000000000000000000000000000;
|
|
r_uz__16 <= 32'b00000000000000000000000000000000;
|
|
r_sz__16 <= 32'b00000000000000000000000000000000;
|
|
r_sr__16 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__16 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__16 <= 32'b00000000000000000000000000000000;
|
|
r_weight__16 <= 32'b00000000000000000000000000000000;
|
|
r_layer__16 <= 3'b000;
|
|
r_dead__16 <= 1'b1;
|
|
r_hit__16 <= 1'b0;
|
|
r_diff__16 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__16 <= 32'b00000000000000000000000000000000;
|
|
r_numer__16 <= 0;
|
|
r_z1__16 <= 32'b00000000000000000000000000000000;
|
|
r_z0__16 <= 32'b00000000000000000000000000000000;
|
|
r_mut__16 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__15 <= 32'b00000000000000000000000000000000;
|
|
r_y__15 <= 32'b00000000000000000000000000000000;
|
|
r_z__15 <= 32'b00000000000000000000000000000000;
|
|
r_ux__15 <= 32'b00000000000000000000000000000000;
|
|
r_uy__15 <= 32'b00000000000000000000000000000000;
|
|
r_uz__15 <= 32'b00000000000000000000000000000000;
|
|
r_sz__15 <= 32'b00000000000000000000000000000000;
|
|
r_sr__15 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__15 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__15 <= 32'b00000000000000000000000000000000;
|
|
r_weight__15 <= 32'b00000000000000000000000000000000;
|
|
r_layer__15 <= 3'b000;
|
|
r_dead__15 <= 1'b1;
|
|
r_hit__15 <= 1'b0;
|
|
r_diff__15 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__15 <= 32'b00000000000000000000000000000000;
|
|
r_numer__15 <= 0;
|
|
r_z1__15 <= 32'b00000000000000000000000000000000;
|
|
r_z0__15 <= 32'b00000000000000000000000000000000;
|
|
r_mut__15 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__14 <= 32'b00000000000000000000000000000000;
|
|
r_y__14 <= 32'b00000000000000000000000000000000;
|
|
r_z__14 <= 32'b00000000000000000000000000000000;
|
|
r_ux__14 <= 32'b00000000000000000000000000000000;
|
|
r_uy__14 <= 32'b00000000000000000000000000000000;
|
|
r_uz__14 <= 32'b00000000000000000000000000000000;
|
|
r_sz__14 <= 32'b00000000000000000000000000000000;
|
|
r_sr__14 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__14 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__14 <= 32'b00000000000000000000000000000000;
|
|
r_weight__14 <= 32'b00000000000000000000000000000000;
|
|
r_layer__14 <= 3'b000;
|
|
r_dead__14 <= 1'b1;
|
|
r_hit__14 <= 1'b0;
|
|
r_diff__14 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__14 <= 32'b00000000000000000000000000000000;
|
|
r_numer__14 <= 0;
|
|
r_z1__14 <= 32'b00000000000000000000000000000000;
|
|
r_z0__14 <= 32'b00000000000000000000000000000000;
|
|
r_mut__14 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__13 <= 32'b00000000000000000000000000000000;
|
|
r_y__13 <= 32'b00000000000000000000000000000000;
|
|
r_z__13 <= 32'b00000000000000000000000000000000;
|
|
r_ux__13 <= 32'b00000000000000000000000000000000;
|
|
r_uy__13 <= 32'b00000000000000000000000000000000;
|
|
r_uz__13 <= 32'b00000000000000000000000000000000;
|
|
r_sz__13 <= 32'b00000000000000000000000000000000;
|
|
r_sr__13 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__13 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__13 <= 32'b00000000000000000000000000000000;
|
|
r_weight__13 <= 32'b00000000000000000000000000000000;
|
|
r_layer__13 <= 3'b000;
|
|
r_dead__13 <= 1'b1;
|
|
r_hit__13 <= 1'b0;
|
|
r_diff__13 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__13 <= 32'b00000000000000000000000000000000;
|
|
r_numer__13 <= 0;
|
|
r_z1__13 <= 32'b00000000000000000000000000000000;
|
|
r_z0__13 <= 32'b00000000000000000000000000000000;
|
|
r_mut__13 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__12 <= 32'b00000000000000000000000000000000;
|
|
r_y__12 <= 32'b00000000000000000000000000000000;
|
|
r_z__12 <= 32'b00000000000000000000000000000000;
|
|
r_ux__12 <= 32'b00000000000000000000000000000000;
|
|
r_uy__12 <= 32'b00000000000000000000000000000000;
|
|
r_uz__12 <= 32'b00000000000000000000000000000000;
|
|
r_sz__12 <= 32'b00000000000000000000000000000000;
|
|
r_sr__12 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__12 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__12 <= 32'b00000000000000000000000000000000;
|
|
r_weight__12 <= 32'b00000000000000000000000000000000;
|
|
r_layer__12 <= 3'b000;
|
|
r_dead__12 <= 1'b1;
|
|
r_hit__12 <= 1'b0;
|
|
r_diff__12 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__12 <= 32'b00000000000000000000000000000000;
|
|
r_numer__12 <= 0;
|
|
r_z1__12 <= 32'b00000000000000000000000000000000;
|
|
r_z0__12 <= 32'b00000000000000000000000000000000;
|
|
r_mut__12 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__11 <= 32'b00000000000000000000000000000000;
|
|
r_y__11 <= 32'b00000000000000000000000000000000;
|
|
r_z__11 <= 32'b00000000000000000000000000000000;
|
|
r_ux__11 <= 32'b00000000000000000000000000000000;
|
|
r_uy__11 <= 32'b00000000000000000000000000000000;
|
|
r_uz__11 <= 32'b00000000000000000000000000000000;
|
|
r_sz__11 <= 32'b00000000000000000000000000000000;
|
|
r_sr__11 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__11 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__11 <= 32'b00000000000000000000000000000000;
|
|
r_weight__11 <= 32'b00000000000000000000000000000000;
|
|
r_layer__11 <= 3'b000;
|
|
r_dead__11 <= 1'b1;
|
|
r_hit__11 <= 1'b0;
|
|
r_diff__11 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__11 <= 32'b00000000000000000000000000000000;
|
|
r_numer__11 <= 0;
|
|
r_z1__11 <= 32'b00000000000000000000000000000000;
|
|
r_z0__11 <= 32'b00000000000000000000000000000000;
|
|
r_mut__11 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__10 <= 32'b00000000000000000000000000000000;
|
|
r_y__10 <= 32'b00000000000000000000000000000000;
|
|
r_z__10 <= 32'b00000000000000000000000000000000;
|
|
r_ux__10 <= 32'b00000000000000000000000000000000;
|
|
r_uy__10 <= 32'b00000000000000000000000000000000;
|
|
r_uz__10 <= 32'b00000000000000000000000000000000;
|
|
r_sz__10 <= 32'b00000000000000000000000000000000;
|
|
r_sr__10 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__10 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__10 <= 32'b00000000000000000000000000000000;
|
|
r_weight__10 <= 32'b00000000000000000000000000000000;
|
|
r_layer__10 <= 3'b000;
|
|
r_dead__10 <= 1'b1;
|
|
r_hit__10 <= 1'b0;
|
|
r_diff__10 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__10 <= 32'b00000000000000000000000000000000;
|
|
r_numer__10 <= 0;
|
|
r_z1__10 <= 32'b00000000000000000000000000000000;
|
|
r_z0__10 <= 32'b00000000000000000000000000000000;
|
|
r_mut__10 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__9 <= 32'b00000000000000000000000000000000;
|
|
r_y__9 <= 32'b00000000000000000000000000000000;
|
|
r_z__9 <= 32'b00000000000000000000000000000000;
|
|
r_ux__9 <= 32'b00000000000000000000000000000000;
|
|
r_uy__9 <= 32'b00000000000000000000000000000000;
|
|
r_uz__9 <= 32'b00000000000000000000000000000000;
|
|
r_sz__9 <= 32'b00000000000000000000000000000000;
|
|
r_sr__9 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__9 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__9 <= 32'b00000000000000000000000000000000;
|
|
r_weight__9 <= 32'b00000000000000000000000000000000;
|
|
r_layer__9 <= 3'b000;
|
|
r_dead__9 <= 1'b1;
|
|
r_hit__9 <= 1'b0;
|
|
r_diff__9 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__9 <= 32'b00000000000000000000000000000000;
|
|
r_numer__9 <= 0;
|
|
r_z1__9 <= 32'b00000000000000000000000000000000;
|
|
r_z0__9 <= 32'b00000000000000000000000000000000;
|
|
r_mut__9 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__8 <= 32'b00000000000000000000000000000000;
|
|
r_y__8 <= 32'b00000000000000000000000000000000;
|
|
r_z__8 <= 32'b00000000000000000000000000000000;
|
|
r_ux__8 <= 32'b00000000000000000000000000000000;
|
|
r_uy__8 <= 32'b00000000000000000000000000000000;
|
|
r_uz__8 <= 32'b00000000000000000000000000000000;
|
|
r_sz__8 <= 32'b00000000000000000000000000000000;
|
|
r_sr__8 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__8 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__8 <= 32'b00000000000000000000000000000000;
|
|
r_weight__8 <= 32'b00000000000000000000000000000000;
|
|
r_layer__8 <= 3'b000;
|
|
r_dead__8 <= 1'b1;
|
|
r_hit__8 <= 1'b0;
|
|
r_diff__8 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__8 <= 32'b00000000000000000000000000000000;
|
|
r_numer__8 <= 0;
|
|
r_z1__8 <= 32'b00000000000000000000000000000000;
|
|
r_z0__8 <= 32'b00000000000000000000000000000000;
|
|
r_mut__8 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__7 <= 32'b00000000000000000000000000000000;
|
|
r_y__7 <= 32'b00000000000000000000000000000000;
|
|
r_z__7 <= 32'b00000000000000000000000000000000;
|
|
r_ux__7 <= 32'b00000000000000000000000000000000;
|
|
r_uy__7 <= 32'b00000000000000000000000000000000;
|
|
r_uz__7 <= 32'b00000000000000000000000000000000;
|
|
r_sz__7 <= 32'b00000000000000000000000000000000;
|
|
r_sr__7 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__7 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__7 <= 32'b00000000000000000000000000000000;
|
|
r_weight__7 <= 32'b00000000000000000000000000000000;
|
|
r_layer__7 <= 3'b000;
|
|
r_dead__7 <= 1'b1;
|
|
r_hit__7 <= 1'b0;
|
|
r_diff__7 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__7 <= 32'b00000000000000000000000000000000;
|
|
r_numer__7 <= 0;
|
|
r_z1__7 <= 32'b00000000000000000000000000000000;
|
|
r_z0__7 <= 32'b00000000000000000000000000000000;
|
|
r_mut__7 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__6 <= 32'b00000000000000000000000000000000;
|
|
r_y__6 <= 32'b00000000000000000000000000000000;
|
|
r_z__6 <= 32'b00000000000000000000000000000000;
|
|
r_ux__6 <= 32'b00000000000000000000000000000000;
|
|
r_uy__6 <= 32'b00000000000000000000000000000000;
|
|
r_uz__6 <= 32'b00000000000000000000000000000000;
|
|
r_sz__6 <= 32'b00000000000000000000000000000000;
|
|
r_sr__6 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__6 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__6 <= 32'b00000000000000000000000000000000;
|
|
r_weight__6 <= 32'b00000000000000000000000000000000;
|
|
r_layer__6 <= 3'b000;
|
|
r_dead__6 <= 1'b1;
|
|
r_hit__6 <= 1'b0;
|
|
r_diff__6 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__6 <= 32'b00000000000000000000000000000000;
|
|
r_numer__6 <= 0;
|
|
r_z1__6 <= 32'b00000000000000000000000000000000;
|
|
r_z0__6 <= 32'b00000000000000000000000000000000;
|
|
r_mut__6 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__5 <= 32'b00000000000000000000000000000000;
|
|
r_y__5 <= 32'b00000000000000000000000000000000;
|
|
r_z__5 <= 32'b00000000000000000000000000000000;
|
|
r_ux__5 <= 32'b00000000000000000000000000000000;
|
|
r_uy__5 <= 32'b00000000000000000000000000000000;
|
|
r_uz__5 <= 32'b00000000000000000000000000000000;
|
|
r_sz__5 <= 32'b00000000000000000000000000000000;
|
|
r_sr__5 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__5 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__5 <= 32'b00000000000000000000000000000000;
|
|
r_weight__5 <= 32'b00000000000000000000000000000000;
|
|
r_layer__5 <= 3'b000;
|
|
r_dead__5 <= 1'b1;
|
|
r_hit__5 <= 1'b0;
|
|
r_diff__5 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__5 <= 32'b00000000000000000000000000000000;
|
|
r_numer__5 <= 0;
|
|
r_z1__5 <= 32'b00000000000000000000000000000000;
|
|
r_z0__5 <= 32'b00000000000000000000000000000000;
|
|
r_mut__5 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__4 <= 32'b00000000000000000000000000000000;
|
|
r_y__4 <= 32'b00000000000000000000000000000000;
|
|
r_z__4 <= 32'b00000000000000000000000000000000;
|
|
r_ux__4 <= 32'b00000000000000000000000000000000;
|
|
r_uy__4 <= 32'b00000000000000000000000000000000;
|
|
r_uz__4 <= 32'b00000000000000000000000000000000;
|
|
r_sz__4 <= 32'b00000000000000000000000000000000;
|
|
r_sr__4 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__4 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__4 <= 32'b00000000000000000000000000000000;
|
|
r_weight__4 <= 32'b00000000000000000000000000000000;
|
|
r_layer__4 <= 3'b000;
|
|
r_dead__4 <= 1'b1;
|
|
r_hit__4 <= 1'b0;
|
|
r_diff__4 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__4 <= 32'b00000000000000000000000000000000;
|
|
r_numer__4 <= 0;
|
|
r_z1__4 <= 32'b00000000000000000000000000000000;
|
|
r_z0__4 <= 32'b00000000000000000000000000000000;
|
|
r_mut__4 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__3 <= 32'b00000000000000000000000000000000;
|
|
r_y__3 <= 32'b00000000000000000000000000000000;
|
|
r_z__3 <= 32'b00000000000000000000000000000000;
|
|
r_ux__3 <= 32'b00000000000000000000000000000000;
|
|
r_uy__3 <= 32'b00000000000000000000000000000000;
|
|
r_uz__3 <= 32'b00000000000000000000000000000000;
|
|
r_sz__3 <= 32'b00000000000000000000000000000000;
|
|
r_sr__3 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__3 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__3 <= 32'b00000000000000000000000000000000;
|
|
r_weight__3 <= 32'b00000000000000000000000000000000;
|
|
r_layer__3 <= 3'b000;
|
|
r_dead__3 <= 1'b1;
|
|
r_hit__3 <= 1'b0;
|
|
r_diff__3 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__3 <= 32'b00000000000000000000000000000000;
|
|
r_numer__3 <= 0;
|
|
r_z1__3 <= 32'b00000000000000000000000000000000;
|
|
r_z0__3 <= 32'b00000000000000000000000000000000;
|
|
r_mut__3 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__2 <= 32'b00000000000000000000000000000000;
|
|
r_y__2 <= 32'b00000000000000000000000000000000;
|
|
r_z__2 <= 32'b00000000000000000000000000000000;
|
|
r_ux__2 <= 32'b00000000000000000000000000000000;
|
|
r_uy__2 <= 32'b00000000000000000000000000000000;
|
|
r_uz__2 <= 32'b00000000000000000000000000000000;
|
|
r_sz__2 <= 32'b00000000000000000000000000000000;
|
|
r_sr__2 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__2 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__2 <= 32'b00000000000000000000000000000000;
|
|
r_weight__2 <= 32'b00000000000000000000000000000000;
|
|
r_layer__2 <= 3'b000;
|
|
r_dead__2 <= 1'b1;
|
|
r_hit__2 <= 1'b0;
|
|
r_diff__2 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__2 <= 32'b00000000000000000000000000000000;
|
|
r_numer__2 <= 0;
|
|
r_z1__2 <= 32'b00000000000000000000000000000000;
|
|
r_z0__2 <= 32'b00000000000000000000000000000000;
|
|
r_mut__2 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__1 <= 32'b00000000000000000000000000000000;
|
|
r_y__1 <= 32'b00000000000000000000000000000000;
|
|
r_z__1 <= 32'b00000000000000000000000000000000;
|
|
r_ux__1 <= 32'b00000000000000000000000000000000;
|
|
r_uy__1 <= 32'b00000000000000000000000000000000;
|
|
r_uz__1 <= 32'b00000000000000000000000000000000;
|
|
r_sz__1 <= 32'b00000000000000000000000000000000;
|
|
r_sr__1 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__1 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__1 <= 32'b00000000000000000000000000000000;
|
|
r_weight__1 <= 32'b00000000000000000000000000000000;
|
|
r_layer__1 <= 3'b000;
|
|
r_dead__1 <= 1'b1;
|
|
r_hit__1 <= 1'b0;
|
|
r_diff__1 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__1 <= 32'b00000000000000000000000000000000;
|
|
r_numer__1 <= 0;
|
|
r_z1__1 <= 32'b00000000000000000000000000000000;
|
|
r_z0__1 <= 32'b00000000000000000000000000000000;
|
|
r_mut__1 <= 32'b00000000000000000000000000000000;
|
|
|
|
r_x__0 <= 32'b00000000000000000000000000000000;
|
|
r_y__0 <= 32'b00000000000000000000000000000000;
|
|
r_z__0 <= 32'b00000000000000000000000000000000;
|
|
r_ux__0 <= 32'b00000000000000000000000000000000;
|
|
r_uy__0 <= 32'b00000000000000000000000000000000;
|
|
r_uz__0 <= 32'b00000000000000000000000000000000;
|
|
r_sz__0 <= 32'b00000000000000000000000000000000;
|
|
r_sr__0 <= 32'b00000000000000000000000000000000;
|
|
r_sleftz__0 <= 32'b00000000000000000000000000000000;
|
|
r_sleftr__0 <= 32'b00000000000000000000000000000000;
|
|
r_weight__0 <= 32'b00000000000000000000000000000000;
|
|
r_layer__0 <= 3'b000;
|
|
r_dead__0 <= 1'b0;
|
|
r_hit__0 <= 1'b0;
|
|
r_diff__0 <= 32'b00000000000000000000000000000000;
|
|
r_dl_b__0 <= 32'b00000000000000000000000000000000;
|
|
r_numer__0 <= 0;
|
|
r_z1__0 <= 32'b00000000000000000000000000000000;
|
|
r_z0__0 <= 32'b00000000000000000000000000000000;
|
|
r_mut__0 <= 32'b00000000000000000000000000000000;
|
|
end
|
|
|
|
else
|
|
begin
|
|
if(enable)
|
|
begin
|
|
|
|
//for 0
|
|
r_x__0 <=c_x__0;
|
|
r_y__0 <=c_y__0;
|
|
r_z__0 <=c_z__0;
|
|
r_ux__0 <=c_ux__0;
|
|
r_uy__0 <=c_uy__0;
|
|
r_uz__0 <=c_uz__0;
|
|
r_sz__0 <=c_sz__0;
|
|
r_sr__0 <=c_sr__0;
|
|
r_sleftz__0 <=c_sleftz__0;
|
|
r_sleftr__0 <=c_sleftr__0;
|
|
r_weight__0 <=c_weight__0;
|
|
r_layer__0 <=c_layer__0;
|
|
r_dead__0 <=c_dead__0;
|
|
r_hit__0 <=c_hit__0;
|
|
r_diff__0 <=c_diff__0;
|
|
r_dl_b__0 <=c_dl_b__0;
|
|
r_numer__0 <=c_numer__0;
|
|
r_z1__0 <=c_z1__0;
|
|
r_z0__0 <=c_z0__0;
|
|
r_mut__0 <=c_mut__0;
|
|
|
|
//for 1
|
|
|
|
r_x__1 <=c_x__1;
|
|
r_y__1 <=c_y__1;
|
|
r_z__1 <=c_z__1;
|
|
r_ux__1 <=c_ux__1;
|
|
r_uy__1 <=c_uy__1;
|
|
r_uz__1 <=c_uz__1;
|
|
r_sz__1 <=c_sz__1;
|
|
r_sr__1 <=c_sr__1;
|
|
r_sleftz__1 <=c_sleftz__1;
|
|
r_sleftr__1 <=c_sleftr__1;
|
|
r_weight__1 <=c_weight__1;
|
|
r_layer__1 <=c_layer__1;
|
|
r_dead__1 <=c_dead__1;
|
|
r_hit__1 <=c_hit__1;
|
|
r_diff__1 <=c_diff__1;
|
|
r_dl_b__1 <=c_dl_b__1;
|
|
r_numer__1 <=c_numer__1;
|
|
r_z1__1 <=c_z1__1;
|
|
r_z0__1 <=c_z0__1;
|
|
r_mut__1 <=c_mut__1;
|
|
|
|
//for 2
|
|
r_x__2 <=c_x__2;
|
|
r_y__2 <=c_y__2;
|
|
r_z__2 <=c_z__2;
|
|
r_ux__2 <=c_ux__2;
|
|
r_uy__2 <=c_uy__2;
|
|
r_uz__2 <=c_uz__2;
|
|
r_sz__2 <=c_sz__2;
|
|
r_sr__2 <=c_sr__2;
|
|
r_sleftz__2 <=c_sleftz__2;
|
|
r_sleftr__2 <=c_sleftr__2;
|
|
r_weight__2 <=c_weight__2;
|
|
r_layer__2 <=c_layer__2;
|
|
r_dead__2 <=c_dead__2;
|
|
r_hit__2 <=c_hit__2;
|
|
r_diff__2 <=c_diff__2;
|
|
r_dl_b__2 <=c_dl_b__2;
|
|
r_numer__2 <=c_numer__2;
|
|
r_z1__2 <=c_z1__2;
|
|
r_z0__2 <=c_z0__2;
|
|
r_mut__2 <=c_mut__2;
|
|
|
|
//for 3
|
|
r_x__3 <=c_x__3;
|
|
r_y__3 <=c_y__3;
|
|
r_z__3 <=c_z__3;
|
|
r_ux__3 <=c_ux__3;
|
|
r_uy__3 <=c_uy__3;
|
|
r_uz__3 <=c_uz__3;
|
|
r_sz__3 <=c_sz__3;
|
|
r_sr__3 <=c_sr__3;
|
|
r_sleftz__3 <=c_sleftz__3;
|
|
r_sleftr__3 <=c_sleftr__3;
|
|
r_weight__3 <=c_weight__3;
|
|
r_layer__3 <=c_layer__3;
|
|
r_dead__3 <=c_dead__3;
|
|
r_hit__3 <=c_hit__3;
|
|
r_diff__3 <=c_diff__3;
|
|
r_dl_b__3 <=c_dl_b__3;
|
|
r_numer__3 <=c_numer__3;
|
|
r_z1__3 <=c_z1__3;
|
|
r_z0__3 <=c_z0__3;
|
|
r_mut__3 <=c_mut__3;
|
|
|
|
//for 4
|
|
r_x__4 <=c_x__4;
|
|
r_y__4 <=c_y__4;
|
|
r_z__4 <=c_z__4;
|
|
r_ux__4 <=c_ux__4;
|
|
r_uy__4 <=c_uy__4;
|
|
r_uz__4 <=c_uz__4;
|
|
r_sz__4 <=c_sz__4;
|
|
r_sr__4 <=c_sr__4;
|
|
r_sleftz__4 <=c_sleftz__4;
|
|
r_sleftr__4 <=c_sleftr__4;
|
|
r_weight__4 <=c_weight__4;
|
|
r_layer__4 <=c_layer__4;
|
|
r_dead__4 <=c_dead__4;
|
|
r_hit__4 <=c_hit__4;
|
|
r_diff__4 <=c_diff__4;
|
|
r_dl_b__4 <=c_dl_b__4;
|
|
r_numer__4 <=c_numer__4;
|
|
r_z1__4 <=c_z1__4;
|
|
r_z0__4 <=c_z0__4;
|
|
r_mut__4 <=c_mut__4;
|
|
|
|
//for 5
|
|
r_x__5 <=c_x__5;
|
|
r_y__5 <=c_y__5;
|
|
r_z__5 <=c_z__5;
|
|
r_ux__5 <=c_ux__5;
|
|
r_uy__5 <=c_uy__5;
|
|
r_uz__5 <=c_uz__5;
|
|
r_sz__5 <=c_sz__5;
|
|
r_sr__5 <=c_sr__5;
|
|
r_sleftz__5 <=c_sleftz__5;
|
|
r_sleftr__5 <=c_sleftr__5;
|
|
r_weight__5 <=c_weight__5;
|
|
r_layer__5 <=c_layer__5;
|
|
r_dead__5 <=c_dead__5;
|
|
r_hit__5 <=c_hit__5;
|
|
r_diff__5 <=c_diff__5;
|
|
r_dl_b__5 <=c_dl_b__5;
|
|
r_numer__5 <=c_numer__5;
|
|
r_z1__5 <=c_z1__5;
|
|
r_z0__5 <=c_z0__5;
|
|
r_mut__5 <=c_mut__5;
|
|
|
|
//for 6
|
|
r_x__6 <=c_x__6;
|
|
r_y__6 <=c_y__6;
|
|
r_z__6 <=c_z__6;
|
|
r_ux__6 <=c_ux__6;
|
|
r_uy__6 <=c_uy__6;
|
|
r_uz__6 <=c_uz__6;
|
|
r_sz__6 <=c_sz__6;
|
|
r_sr__6 <=c_sr__6;
|
|
r_sleftz__6 <=c_sleftz__6;
|
|
r_sleftr__6 <=c_sleftr__6;
|
|
r_weight__6 <=c_weight__6;
|
|
r_layer__6 <=c_layer__6;
|
|
r_dead__6 <=c_dead__6;
|
|
r_hit__6 <=c_hit__6;
|
|
r_diff__6 <=c_diff__6;
|
|
r_dl_b__6 <=c_dl_b__6;
|
|
r_numer__6 <=c_numer__6;
|
|
r_z1__6 <=c_z1__6;
|
|
r_z0__6 <=c_z0__6;
|
|
r_mut__6 <=c_mut__6;
|
|
|
|
//for 7
|
|
r_x__7 <=c_x__7;
|
|
r_y__7 <=c_y__7;
|
|
r_z__7 <=c_z__7;
|
|
r_ux__7 <=c_ux__7;
|
|
r_uy__7 <=c_uy__7;
|
|
r_uz__7 <=c_uz__7;
|
|
r_sz__7 <=c_sz__7;
|
|
r_sr__7 <=c_sr__7;
|
|
r_sleftz__7 <=c_sleftz__7;
|
|
r_sleftr__7 <=c_sleftr__7;
|
|
r_weight__7 <=c_weight__7;
|
|
r_layer__7 <=c_layer__7;
|
|
r_dead__7 <=c_dead__7;
|
|
r_hit__7 <=c_hit__7;
|
|
r_diff__7 <=c_diff__7;
|
|
r_dl_b__7 <=c_dl_b__7;
|
|
r_numer__7 <=c_numer__7;
|
|
r_z1__7 <=c_z1__7;
|
|
r_z0__7 <=c_z0__7;
|
|
r_mut__7 <=c_mut__7;
|
|
|
|
//for 8
|
|
r_x__8 <=c_x__8;
|
|
r_y__8 <=c_y__8;
|
|
r_z__8 <=c_z__8;
|
|
r_ux__8 <=c_ux__8;
|
|
r_uy__8 <=c_uy__8;
|
|
r_uz__8 <=c_uz__8;
|
|
r_sz__8 <=c_sz__8;
|
|
r_sr__8 <=c_sr__8;
|
|
r_sleftz__8 <=c_sleftz__8;
|
|
r_sleftr__8 <=c_sleftr__8;
|
|
r_weight__8 <=c_weight__8;
|
|
r_layer__8 <=c_layer__8;
|
|
r_dead__8 <=c_dead__8;
|
|
r_hit__8 <=c_hit__8;
|
|
r_diff__8 <=c_diff__8;
|
|
r_dl_b__8 <=c_dl_b__8;
|
|
r_numer__8 <=c_numer__8;
|
|
r_z1__8 <=c_z1__8;
|
|
r_z0__8 <=c_z0__8;
|
|
r_mut__8 <=c_mut__8;
|
|
|
|
//for 9
|
|
r_x__9 <=c_x__9;
|
|
r_y__9 <=c_y__9;
|
|
r_z__9 <=c_z__9;
|
|
r_ux__9 <=c_ux__9;
|
|
r_uy__9 <=c_uy__9;
|
|
r_uz__9 <=c_uz__9;
|
|
r_sz__9 <=c_sz__9;
|
|
r_sr__9 <=c_sr__9;
|
|
r_sleftz__9 <=c_sleftz__9;
|
|
r_sleftr__9 <=c_sleftr__9;
|
|
r_weight__9 <=c_weight__9;
|
|
r_layer__9 <=c_layer__9;
|
|
r_dead__9 <=c_dead__9;
|
|
r_hit__9 <=c_hit__9;
|
|
r_diff__9 <=c_diff__9;
|
|
r_dl_b__9 <=c_dl_b__9;
|
|
r_numer__9 <=c_numer__9;
|
|
r_z1__9 <=c_z1__9;
|
|
r_z0__9 <=c_z0__9;
|
|
r_mut__9 <=c_mut__9;
|
|
|
|
//for 10
|
|
r_x__10 <=c_x__10;
|
|
r_y__10 <=c_y__10;
|
|
r_z__10 <=c_z__10;
|
|
r_ux__10 <=c_ux__10;
|
|
r_uy__10 <=c_uy__10;
|
|
r_uz__10 <=c_uz__10;
|
|
r_sz__10 <=c_sz__10;
|
|
r_sr__10 <=c_sr__10;
|
|
r_sleftz__10 <=c_sleftz__10;
|
|
r_sleftr__10 <=c_sleftr__10;
|
|
r_weight__10 <=c_weight__10;
|
|
r_layer__10 <=c_layer__10;
|
|
r_dead__10 <=c_dead__10;
|
|
r_hit__10 <=c_hit__10;
|
|
r_diff__10 <=c_diff__10;
|
|
r_dl_b__10 <=c_dl_b__10;
|
|
r_numer__10 <=c_numer__10;
|
|
r_z1__10 <=c_z1__10;
|
|
r_z0__10 <=c_z0__10;
|
|
r_mut__10 <=c_mut__10;
|
|
|
|
//for 11
|
|
r_x__11 <=c_x__11;
|
|
r_y__11 <=c_y__11;
|
|
r_z__11 <=c_z__11;
|
|
r_ux__11 <=c_ux__11;
|
|
r_uy__11 <=c_uy__11;
|
|
r_uz__11 <=c_uz__11;
|
|
r_sz__11 <=c_sz__11;
|
|
r_sr__11 <=c_sr__11;
|
|
r_sleftz__11 <=c_sleftz__11;
|
|
r_sleftr__11 <=c_sleftr__11;
|
|
r_weight__11 <=c_weight__11;
|
|
r_layer__11 <=c_layer__11;
|
|
r_dead__11 <=c_dead__11;
|
|
r_hit__11 <=c_hit__11;
|
|
r_diff__11 <=c_diff__11;
|
|
r_dl_b__11 <=c_dl_b__11;
|
|
r_numer__11 <=c_numer__11;
|
|
r_z1__11 <=c_z1__11;
|
|
r_z0__11 <=c_z0__11;
|
|
r_mut__11 <=c_mut__11;
|
|
|
|
//for 12
|
|
r_x__12 <=c_x__12;
|
|
r_y__12 <=c_y__12;
|
|
r_z__12 <=c_z__12;
|
|
r_ux__12 <=c_ux__12;
|
|
r_uy__12 <=c_uy__12;
|
|
r_uz__12 <=c_uz__12;
|
|
r_sz__12 <=c_sz__12;
|
|
r_sr__12 <=c_sr__12;
|
|
r_sleftz__12 <=c_sleftz__12;
|
|
r_sleftr__12 <=c_sleftr__12;
|
|
r_weight__12 <=c_weight__12;
|
|
r_layer__12 <=c_layer__12;
|
|
r_dead__12 <=c_dead__12;
|
|
r_hit__12 <=c_hit__12;
|
|
r_diff__12 <=c_diff__12;
|
|
r_dl_b__12 <=c_dl_b__12;
|
|
r_numer__12 <=c_numer__12;
|
|
r_z1__12 <=c_z1__12;
|
|
r_z0__12 <=c_z0__12;
|
|
r_mut__12 <=c_mut__12;
|
|
|
|
//for 13
|
|
r_x__13 <=c_x__13;
|
|
r_y__13 <=c_y__13;
|
|
r_z__13 <=c_z__13;
|
|
r_ux__13 <=c_ux__13;
|
|
r_uy__13 <=c_uy__13;
|
|
r_uz__13 <=c_uz__13;
|
|
r_sz__13 <=c_sz__13;
|
|
r_sr__13 <=c_sr__13;
|
|
r_sleftz__13 <=c_sleftz__13;
|
|
r_sleftr__13 <=c_sleftr__13;
|
|
r_weight__13 <=c_weight__13;
|
|
r_layer__13 <=c_layer__13;
|
|
r_dead__13 <=c_dead__13;
|
|
r_hit__13 <=c_hit__13;
|
|
r_diff__13 <=c_diff__13;
|
|
r_dl_b__13 <=c_dl_b__13;
|
|
r_numer__13 <=c_numer__13;
|
|
r_z1__13 <=c_z1__13;
|
|
r_z0__13 <=c_z0__13;
|
|
r_mut__13 <=c_mut__13;
|
|
|
|
//for 14
|
|
r_x__14 <=c_x__14;
|
|
r_y__14 <=c_y__14;
|
|
r_z__14 <=c_z__14;
|
|
r_ux__14 <=c_ux__14;
|
|
r_uy__14 <=c_uy__14;
|
|
r_uz__14 <=c_uz__14;
|
|
r_sz__14 <=c_sz__14;
|
|
r_sr__14 <=c_sr__14;
|
|
r_sleftz__14 <=c_sleftz__14;
|
|
r_sleftr__14 <=c_sleftr__14;
|
|
r_weight__14 <=c_weight__14;
|
|
r_layer__14 <=c_layer__14;
|
|
r_dead__14 <=c_dead__14;
|
|
r_hit__14 <=c_hit__14;
|
|
r_diff__14 <=c_diff__14;
|
|
r_dl_b__14 <=c_dl_b__14;
|
|
r_numer__14 <=c_numer__14;
|
|
r_z1__14 <=c_z1__14;
|
|
r_z0__14 <=c_z0__14;
|
|
r_mut__14 <=c_mut__14;
|
|
|
|
//for 15
|
|
r_x__15 <=c_x__15;
|
|
r_y__15 <=c_y__15;
|
|
r_z__15 <=c_z__15;
|
|
r_ux__15 <=c_ux__15;
|
|
r_uy__15 <=c_uy__15;
|
|
r_uz__15 <=c_uz__15;
|
|
r_sz__15 <=c_sz__15;
|
|
r_sr__15 <=c_sr__15;
|
|
r_sleftz__15 <=c_sleftz__15;
|
|
r_sleftr__15 <=c_sleftr__15;
|
|
r_weight__15 <=c_weight__15;
|
|
r_layer__15 <=c_layer__15;
|
|
r_dead__15 <=c_dead__15;
|
|
r_hit__15 <=c_hit__15;
|
|
r_diff__15 <=c_diff__15;
|
|
r_dl_b__15 <=c_dl_b__15;
|
|
r_numer__15 <=c_numer__15;
|
|
r_z1__15 <=c_z1__15;
|
|
r_z0__15 <=c_z0__15;
|
|
r_mut__15 <=c_mut__15;
|
|
|
|
//for 16
|
|
r_x__16 <=c_x__16;
|
|
r_y__16 <=c_y__16;
|
|
r_z__16 <=c_z__16;
|
|
r_ux__16 <=c_ux__16;
|
|
r_uy__16 <=c_uy__16;
|
|
r_uz__16 <=c_uz__16;
|
|
r_sz__16 <=c_sz__16;
|
|
r_sr__16 <=c_sr__16;
|
|
r_sleftz__16 <=c_sleftz__16;
|
|
r_sleftr__16 <=c_sleftr__16;
|
|
r_weight__16 <=c_weight__16;
|
|
r_layer__16 <=c_layer__16;
|
|
r_dead__16 <=c_dead__16;
|
|
r_hit__16 <=c_hit__16;
|
|
r_diff__16 <=c_diff__16;
|
|
r_dl_b__16 <=c_dl_b__16;
|
|
r_numer__16 <=c_numer__16;
|
|
r_z1__16 <=c_z1__16;
|
|
r_z0__16 <=c_z0__16;
|
|
r_mut__16 <=c_mut__16;
|
|
|
|
//for 17
|
|
r_x__17 <=c_x__17;
|
|
r_y__17 <=c_y__17;
|
|
r_z__17 <=c_z__17;
|
|
r_ux__17 <=c_ux__17;
|
|
r_uy__17 <=c_uy__17;
|
|
r_uz__17 <=c_uz__17;
|
|
r_sz__17 <=c_sz__17;
|
|
r_sr__17 <=c_sr__17;
|
|
r_sleftz__17 <=c_sleftz__17;
|
|
r_sleftr__17 <=c_sleftr__17;
|
|
r_weight__17 <=c_weight__17;
|
|
r_layer__17 <=c_layer__17;
|
|
r_dead__17 <=c_dead__17;
|
|
r_hit__17 <=c_hit__17;
|
|
r_diff__17 <=c_diff__17;
|
|
r_dl_b__17 <=c_dl_b__17;
|
|
r_numer__17 <=c_numer__17;
|
|
r_z1__17 <=c_z1__17;
|
|
r_z0__17 <=c_z0__17;
|
|
r_mut__17 <=c_mut__17;
|
|
|
|
//for 18
|
|
r_x__18 <=c_x__18;
|
|
r_y__18 <=c_y__18;
|
|
r_z__18 <=c_z__18;
|
|
r_ux__18 <=c_ux__18;
|
|
r_uy__18 <=c_uy__18;
|
|
r_uz__18 <=c_uz__18;
|
|
r_sz__18 <=c_sz__18;
|
|
r_sr__18 <=c_sr__18;
|
|
r_sleftz__18 <=c_sleftz__18;
|
|
r_sleftr__18 <=c_sleftr__18;
|
|
r_weight__18 <=c_weight__18;
|
|
r_layer__18 <=c_layer__18;
|
|
r_dead__18 <=c_dead__18;
|
|
r_hit__18 <=c_hit__18;
|
|
r_diff__18 <=c_diff__18;
|
|
r_dl_b__18 <=c_dl_b__18;
|
|
r_numer__18 <=c_numer__18;
|
|
r_z1__18 <=c_z1__18;
|
|
r_z0__18 <=c_z0__18;
|
|
r_mut__18 <=c_mut__18;
|
|
|
|
//for 19
|
|
r_x__19 <=c_x__19;
|
|
r_y__19 <=c_y__19;
|
|
r_z__19 <=c_z__19;
|
|
r_ux__19 <=c_ux__19;
|
|
r_uy__19 <=c_uy__19;
|
|
r_uz__19 <=c_uz__19;
|
|
r_sz__19 <=c_sz__19;
|
|
r_sr__19 <=c_sr__19;
|
|
r_sleftz__19 <=c_sleftz__19;
|
|
r_sleftr__19 <=c_sleftr__19;
|
|
r_weight__19 <=c_weight__19;
|
|
r_layer__19 <=c_layer__19;
|
|
r_dead__19 <=c_dead__19;
|
|
r_hit__19 <=c_hit__19;
|
|
r_diff__19 <=c_diff__19;
|
|
r_dl_b__19 <=c_dl_b__19;
|
|
r_numer__19 <=c_numer__19;
|
|
r_z1__19 <=c_z1__19;
|
|
r_z0__19 <=c_z0__19;
|
|
r_mut__19 <=c_mut__19;
|
|
|
|
//for 20
|
|
r_x__20 <=c_x__20;
|
|
r_y__20 <=c_y__20;
|
|
r_z__20 <=c_z__20;
|
|
r_ux__20 <=c_ux__20;
|
|
r_uy__20 <=c_uy__20;
|
|
r_uz__20 <=c_uz__20;
|
|
r_sz__20 <=c_sz__20;
|
|
r_sr__20 <=c_sr__20;
|
|
r_sleftz__20 <=c_sleftz__20;
|
|
r_sleftr__20 <=c_sleftr__20;
|
|
r_weight__20 <=c_weight__20;
|
|
r_layer__20 <=c_layer__20;
|
|
r_dead__20 <=c_dead__20;
|
|
r_hit__20 <=c_hit__20;
|
|
r_diff__20 <=c_diff__20;
|
|
r_dl_b__20 <=c_dl_b__20;
|
|
r_numer__20 <=c_numer__20;
|
|
r_z1__20 <=c_z1__20;
|
|
r_z0__20 <=c_z0__20;
|
|
r_mut__20 <=c_mut__20;
|
|
|
|
|
|
//for 21
|
|
r_x__21 <=c_x__21;
|
|
r_y__21 <=c_y__21;
|
|
r_z__21 <=c_z__21;
|
|
r_ux__21 <=c_ux__21;
|
|
r_uy__21 <=c_uy__21;
|
|
r_uz__21 <=c_uz__21;
|
|
r_sz__21 <=c_sz__21;
|
|
r_sr__21 <=c_sr__21;
|
|
r_sleftz__21 <=c_sleftz__21;
|
|
r_sleftr__21 <=c_sleftr__21;
|
|
r_weight__21 <=c_weight__21;
|
|
r_layer__21 <=c_layer__21;
|
|
r_dead__21 <=c_dead__21;
|
|
r_hit__21 <=c_hit__21;
|
|
r_diff__21 <=c_diff__21;
|
|
r_dl_b__21 <=c_dl_b__21;
|
|
r_numer__21 <=c_numer__21;
|
|
r_z1__21 <=c_z1__21;
|
|
r_z0__21 <=c_z0__21;
|
|
r_mut__21 <=c_mut__21;
|
|
|
|
//for 22
|
|
r_x__22 <=c_x__22;
|
|
r_y__22 <=c_y__22;
|
|
r_z__22 <=c_z__22;
|
|
r_ux__22 <=c_ux__22;
|
|
r_uy__22 <=c_uy__22;
|
|
r_uz__22 <=c_uz__22;
|
|
r_sz__22 <=c_sz__22;
|
|
r_sr__22 <=c_sr__22;
|
|
r_sleftz__22 <=c_sleftz__22;
|
|
r_sleftr__22 <=c_sleftr__22;
|
|
r_weight__22 <=c_weight__22;
|
|
r_layer__22 <=c_layer__22;
|
|
r_dead__22 <=c_dead__22;
|
|
r_hit__22 <=c_hit__22;
|
|
r_diff__22 <=c_diff__22;
|
|
r_dl_b__22 <=c_dl_b__22;
|
|
r_numer__22 <=c_numer__22;
|
|
r_z1__22 <=c_z1__22;
|
|
r_z0__22 <=c_z0__22;
|
|
r_mut__22 <=c_mut__22;
|
|
|
|
//for 23
|
|
r_x__23 <=c_x__23;
|
|
r_y__23 <=c_y__23;
|
|
r_z__23 <=c_z__23;
|
|
r_ux__23 <=c_ux__23;
|
|
r_uy__23 <=c_uy__23;
|
|
r_uz__23 <=c_uz__23;
|
|
r_sz__23 <=c_sz__23;
|
|
r_sr__23 <=c_sr__23;
|
|
r_sleftz__23 <=c_sleftz__23;
|
|
r_sleftr__23 <=c_sleftr__23;
|
|
r_weight__23 <=c_weight__23;
|
|
r_layer__23 <=c_layer__23;
|
|
r_dead__23 <=c_dead__23;
|
|
r_hit__23 <=c_hit__23;
|
|
r_diff__23 <=c_diff__23;
|
|
r_dl_b__23 <=c_dl_b__23;
|
|
r_numer__23 <=c_numer__23;
|
|
r_z1__23 <=c_z1__23;
|
|
r_z0__23 <=c_z0__23;
|
|
r_mut__23 <=c_mut__23;
|
|
|
|
//for 24
|
|
r_x__24 <=c_x__24;
|
|
r_y__24 <=c_y__24;
|
|
r_z__24 <=c_z__24;
|
|
r_ux__24 <=c_ux__24;
|
|
r_uy__24 <=c_uy__24;
|
|
r_uz__24 <=c_uz__24;
|
|
r_sz__24 <=c_sz__24;
|
|
r_sr__24 <=c_sr__24;
|
|
r_sleftz__24 <=c_sleftz__24;
|
|
r_sleftr__24 <=c_sleftr__24;
|
|
r_weight__24 <=c_weight__24;
|
|
r_layer__24 <=c_layer__24;
|
|
r_dead__24 <=c_dead__24;
|
|
r_hit__24 <=c_hit__24;
|
|
r_diff__24 <=c_diff__24;
|
|
r_dl_b__24 <=c_dl_b__24;
|
|
r_numer__24 <=c_numer__24;
|
|
r_z1__24 <=c_z1__24;
|
|
r_z0__24 <=c_z0__24;
|
|
r_mut__24 <=c_mut__24;
|
|
|
|
//for 25
|
|
r_x__25 <=c_x__25;
|
|
r_y__25 <=c_y__25;
|
|
r_z__25 <=c_z__25;
|
|
r_ux__25 <=c_ux__25;
|
|
r_uy__25 <=c_uy__25;
|
|
r_uz__25 <=c_uz__25;
|
|
r_sz__25 <=c_sz__25;
|
|
r_sr__25 <=c_sr__25;
|
|
r_sleftz__25 <=c_sleftz__25;
|
|
r_sleftr__25 <=c_sleftr__25;
|
|
r_weight__25 <=c_weight__25;
|
|
r_layer__25 <=c_layer__25;
|
|
r_dead__25 <=c_dead__25;
|
|
r_hit__25 <=c_hit__25;
|
|
r_diff__25 <=c_diff__25;
|
|
r_dl_b__25 <=c_dl_b__25;
|
|
r_numer__25 <=c_numer__25;
|
|
r_z1__25 <=c_z1__25;
|
|
r_z0__25 <=c_z0__25;
|
|
r_mut__25 <=c_mut__25;
|
|
|
|
//for 26
|
|
r_x__26 <=c_x__26;
|
|
r_y__26 <=c_y__26;
|
|
r_z__26 <=c_z__26;
|
|
r_ux__26 <=c_ux__26;
|
|
r_uy__26 <=c_uy__26;
|
|
r_uz__26 <=c_uz__26;
|
|
r_sz__26 <=c_sz__26;
|
|
r_sr__26 <=c_sr__26;
|
|
r_sleftz__26 <=c_sleftz__26;
|
|
r_sleftr__26 <=c_sleftr__26;
|
|
r_weight__26 <=c_weight__26;
|
|
r_layer__26 <=c_layer__26;
|
|
r_dead__26 <=c_dead__26;
|
|
r_hit__26 <=c_hit__26;
|
|
r_diff__26 <=c_diff__26;
|
|
r_dl_b__26 <=c_dl_b__26;
|
|
r_numer__26 <=c_numer__26;
|
|
r_z1__26 <=c_z1__26;
|
|
r_z0__26 <=c_z0__26;
|
|
r_mut__26 <=c_mut__26;
|
|
|
|
//for 27
|
|
r_x__27 <=c_x__27;
|
|
r_y__27 <=c_y__27;
|
|
r_z__27 <=c_z__27;
|
|
r_ux__27 <=c_ux__27;
|
|
r_uy__27 <=c_uy__27;
|
|
r_uz__27 <=c_uz__27;
|
|
r_sz__27 <=c_sz__27;
|
|
r_sr__27 <=c_sr__27;
|
|
r_sleftz__27 <=c_sleftz__27;
|
|
r_sleftr__27 <=c_sleftr__27;
|
|
r_weight__27 <=c_weight__27;
|
|
r_layer__27 <=c_layer__27;
|
|
r_dead__27 <=c_dead__27;
|
|
r_hit__27 <=c_hit__27;
|
|
r_diff__27 <=c_diff__27;
|
|
r_dl_b__27 <=c_dl_b__27;
|
|
r_numer__27 <=c_numer__27;
|
|
r_z1__27 <=c_z1__27;
|
|
r_z0__27 <=c_z0__27;
|
|
r_mut__27 <=c_mut__27;
|
|
|
|
//for 28
|
|
r_x__28 <=c_x__28;
|
|
r_y__28 <=c_y__28;
|
|
r_z__28 <=c_z__28;
|
|
r_ux__28 <=c_ux__28;
|
|
r_uy__28 <=c_uy__28;
|
|
r_uz__28 <=c_uz__28;
|
|
r_sz__28 <=c_sz__28;
|
|
r_sr__28 <=c_sr__28;
|
|
r_sleftz__28 <=c_sleftz__28;
|
|
r_sleftr__28 <=c_sleftr__28;
|
|
r_weight__28 <=c_weight__28;
|
|
r_layer__28 <=c_layer__28;
|
|
r_dead__28 <=c_dead__28;
|
|
r_hit__28 <=c_hit__28;
|
|
r_diff__28 <=c_diff__28;
|
|
r_dl_b__28 <=c_dl_b__28;
|
|
r_numer__28 <=c_numer__28;
|
|
r_z1__28 <=c_z1__28;
|
|
r_z0__28 <=c_z0__28;
|
|
r_mut__28 <=c_mut__28;
|
|
|
|
//for 29
|
|
r_x__29 <=c_x__29;
|
|
r_y__29 <=c_y__29;
|
|
r_z__29 <=c_z__29;
|
|
r_ux__29 <=c_ux__29;
|
|
r_uy__29 <=c_uy__29;
|
|
r_uz__29 <=c_uz__29;
|
|
r_sz__29 <=c_sz__29;
|
|
r_sr__29 <=c_sr__29;
|
|
r_sleftz__29 <=c_sleftz__29;
|
|
r_sleftr__29 <=c_sleftr__29;
|
|
r_weight__29 <=c_weight__29;
|
|
r_layer__29 <=c_layer__29;
|
|
r_dead__29 <=c_dead__29;
|
|
r_hit__29 <=c_hit__29;
|
|
r_diff__29 <=c_diff__29;
|
|
r_dl_b__29 <=c_dl_b__29;
|
|
r_numer__29 <=c_numer__29;
|
|
r_z1__29 <=c_z1__29;
|
|
r_z0__29 <=c_z0__29;
|
|
r_mut__29 <=c_mut__29;
|
|
|
|
//for 30
|
|
r_x__30 <=c_x__30;
|
|
r_y__30 <=c_y__30;
|
|
r_z__30 <=c_z__30;
|
|
r_ux__30 <=c_ux__30;
|
|
r_uy__30 <=c_uy__30;
|
|
r_uz__30 <=c_uz__30;
|
|
r_sz__30 <=c_sz__30;
|
|
r_sr__30 <=c_sr__30;
|
|
r_sleftz__30 <=c_sleftz__30;
|
|
r_sleftr__30 <=c_sleftr__30;
|
|
r_weight__30 <=c_weight__30;
|
|
r_layer__30 <=c_layer__30;
|
|
r_dead__30 <=c_dead__30;
|
|
r_hit__30 <=c_hit__30;
|
|
r_diff__30 <=c_diff__30;
|
|
r_dl_b__30 <=c_dl_b__30;
|
|
r_numer__30 <=c_numer__30;
|
|
r_z1__30 <=c_z1__30;
|
|
r_z0__30 <=c_z0__30;
|
|
r_mut__30 <=c_mut__30;
|
|
|
|
//for 31
|
|
r_x__31 <=c_x__31;
|
|
r_y__31 <=c_y__31;
|
|
r_z__31 <=c_z__31;
|
|
r_ux__31 <=c_ux__31;
|
|
r_uy__31 <=c_uy__31;
|
|
r_uz__31 <=c_uz__31;
|
|
r_sz__31 <=c_sz__31;
|
|
r_sr__31 <=c_sr__31;
|
|
r_sleftz__31 <=c_sleftz__31;
|
|
r_sleftr__31 <=c_sleftr__31;
|
|
r_weight__31 <=c_weight__31;
|
|
r_layer__31 <=c_layer__31;
|
|
r_dead__31 <=c_dead__31;
|
|
r_hit__31 <=c_hit__31;
|
|
r_diff__31 <=c_diff__31;
|
|
r_dl_b__31 <=c_dl_b__31;
|
|
r_numer__31 <=c_numer__31;
|
|
r_z1__31 <=c_z1__31;
|
|
r_z0__31 <=c_z0__31;
|
|
r_mut__31 <=c_mut__31;
|
|
|
|
//for 32
|
|
r_x__32 <=c_x__32;
|
|
r_y__32 <=c_y__32;
|
|
r_z__32 <=c_z__32;
|
|
r_ux__32 <=c_ux__32;
|
|
r_uy__32 <=c_uy__32;
|
|
r_uz__32 <=c_uz__32;
|
|
r_sz__32 <=c_sz__32;
|
|
r_sr__32 <=c_sr__32;
|
|
r_sleftz__32 <=c_sleftz__32;
|
|
r_sleftr__32 <=c_sleftr__32;
|
|
r_weight__32 <=c_weight__32;
|
|
r_layer__32 <=c_layer__32;
|
|
r_dead__32 <=c_dead__32;
|
|
r_hit__32 <=c_hit__32;
|
|
r_diff__32 <=c_diff__32;
|
|
r_dl_b__32 <=c_dl_b__32;
|
|
r_numer__32 <=c_numer__32;
|
|
r_z1__32 <=c_z1__32;
|
|
r_z0__32 <=c_z0__32;
|
|
r_mut__32 <=c_mut__32;
|
|
|
|
//for 33
|
|
r_x__33 <=c_x__33;
|
|
r_y__33 <=c_y__33;
|
|
r_z__33 <=c_z__33;
|
|
r_ux__33 <=c_ux__33;
|
|
r_uy__33 <=c_uy__33;
|
|
r_uz__33 <=c_uz__33;
|
|
r_sz__33 <=c_sz__33;
|
|
r_sr__33 <=c_sr__33;
|
|
r_sleftz__33 <=c_sleftz__33;
|
|
r_sleftr__33 <=c_sleftr__33;
|
|
r_weight__33 <=c_weight__33;
|
|
r_layer__33 <=c_layer__33;
|
|
r_dead__33 <=c_dead__33;
|
|
r_hit__33 <=c_hit__33;
|
|
r_diff__33 <=c_diff__33;
|
|
r_dl_b__33 <=c_dl_b__33;
|
|
r_numer__33 <=c_numer__33;
|
|
r_z1__33 <=c_z1__33;
|
|
r_z0__33 <=c_z0__33;
|
|
r_mut__33 <=c_mut__33;
|
|
|
|
//for 34
|
|
r_x__34 <=c_x__34;
|
|
r_y__34 <=c_y__34;
|
|
r_z__34 <=c_z__34;
|
|
r_ux__34 <=c_ux__34;
|
|
r_uy__34 <=c_uy__34;
|
|
r_uz__34 <=c_uz__34;
|
|
r_sz__34 <=c_sz__34;
|
|
r_sr__34 <=c_sr__34;
|
|
r_sleftz__34 <=c_sleftz__34;
|
|
r_sleftr__34 <=c_sleftr__34;
|
|
r_weight__34 <=c_weight__34;
|
|
r_layer__34 <=c_layer__34;
|
|
r_dead__34 <=c_dead__34;
|
|
r_hit__34 <=c_hit__34;
|
|
r_diff__34 <=c_diff__34;
|
|
r_dl_b__34 <=c_dl_b__34;
|
|
r_numer__34 <=c_numer__34;
|
|
r_z1__34 <=c_z1__34;
|
|
r_z0__34 <=c_z0__34;
|
|
r_mut__34 <=c_mut__34;
|
|
|
|
//for 35
|
|
r_x__35 <=c_x__35;
|
|
r_y__35 <=c_y__35;
|
|
r_z__35 <=c_z__35;
|
|
r_ux__35 <=c_ux__35;
|
|
r_uy__35 <=c_uy__35;
|
|
r_uz__35 <=c_uz__35;
|
|
r_sz__35 <=c_sz__35;
|
|
r_sr__35 <=c_sr__35;
|
|
r_sleftz__35 <=c_sleftz__35;
|
|
r_sleftr__35 <=c_sleftr__35;
|
|
r_weight__35 <=c_weight__35;
|
|
r_layer__35 <=c_layer__35;
|
|
r_dead__35 <=c_dead__35;
|
|
r_hit__35 <=c_hit__35;
|
|
r_diff__35 <=c_diff__35;
|
|
r_dl_b__35 <=c_dl_b__35;
|
|
r_numer__35 <=c_numer__35;
|
|
r_z1__35 <=c_z1__35;
|
|
r_z0__35 <=c_z0__35;
|
|
r_mut__35 <=c_mut__35;
|
|
|
|
//for 36
|
|
r_x__36 <=c_x__36;
|
|
r_y__36 <=c_y__36;
|
|
r_z__36 <=c_z__36;
|
|
r_ux__36 <=c_ux__36;
|
|
r_uy__36 <=c_uy__36;
|
|
r_uz__36 <=c_uz__36;
|
|
r_sz__36 <=c_sz__36;
|
|
r_sr__36 <=c_sr__36;
|
|
r_sleftz__36 <=c_sleftz__36;
|
|
r_sleftr__36 <=c_sleftr__36;
|
|
r_weight__36 <=c_weight__36;
|
|
r_layer__36 <=c_layer__36;
|
|
r_dead__36 <=c_dead__36;
|
|
r_hit__36 <=c_hit__36;
|
|
r_diff__36 <=c_diff__36;
|
|
r_dl_b__36 <=c_dl_b__36;
|
|
r_numer__36 <=c_numer__36;
|
|
r_z1__36 <=c_z1__36;
|
|
r_z0__36 <=c_z0__36;
|
|
r_mut__36 <=c_mut__36;
|
|
|
|
//for 37
|
|
r_x__37 <=c_x__37;
|
|
r_y__37 <=c_y__37;
|
|
r_z__37 <=c_z__37;
|
|
r_ux__37 <=c_ux__37;
|
|
r_uy__37 <=c_uy__37;
|
|
r_uz__37 <=c_uz__37;
|
|
r_sz__37 <=c_sz__37;
|
|
r_sr__37 <=c_sr__37;
|
|
r_sleftz__37 <=c_sleftz__37;
|
|
r_sleftr__37 <=c_sleftr__37;
|
|
r_weight__37 <=c_weight__37;
|
|
r_layer__37 <=c_layer__37;
|
|
r_dead__37 <=c_dead__37;
|
|
r_hit__37 <=c_hit__37;
|
|
r_diff__37 <=c_diff__37;
|
|
r_dl_b__37 <=c_dl_b__37;
|
|
r_numer__37 <=c_numer__37;
|
|
r_z1__37 <=c_z1__37;
|
|
r_z0__37 <=c_z0__37;
|
|
r_mut__37 <=c_mut__37;
|
|
|
|
//for 38
|
|
r_x__38 <=c_x__38;
|
|
r_y__38 <=c_y__38;
|
|
r_z__38 <=c_z__38;
|
|
r_ux__38 <=c_ux__38;
|
|
r_uy__38 <=c_uy__38;
|
|
r_uz__38 <=c_uz__38;
|
|
r_sz__38 <=c_sz__38;
|
|
r_sr__38 <=c_sr__38;
|
|
r_sleftz__38 <=c_sleftz__38;
|
|
r_sleftr__38 <=c_sleftr__38;
|
|
r_weight__38 <=c_weight__38;
|
|
r_layer__38 <=c_layer__38;
|
|
r_dead__38 <=c_dead__38;
|
|
r_hit__38 <=c_hit__38;
|
|
r_diff__38 <=c_diff__38;
|
|
r_dl_b__38 <=c_dl_b__38;
|
|
r_numer__38 <=c_numer__38;
|
|
r_z1__38 <=c_z1__38;
|
|
r_z0__38 <=c_z0__38;
|
|
r_mut__38 <=c_mut__38;
|
|
|
|
//for 39
|
|
r_x__39 <=c_x__39;
|
|
r_y__39 <=c_y__39;
|
|
r_z__39 <=c_z__39;
|
|
r_ux__39 <=c_ux__39;
|
|
r_uy__39 <=c_uy__39;
|
|
r_uz__39 <=c_uz__39;
|
|
r_sz__39 <=c_sz__39;
|
|
r_sr__39 <=c_sr__39;
|
|
r_sleftz__39 <=c_sleftz__39;
|
|
r_sleftr__39 <=c_sleftr__39;
|
|
r_weight__39 <=c_weight__39;
|
|
r_layer__39 <=c_layer__39;
|
|
r_dead__39 <=c_dead__39;
|
|
r_hit__39 <=c_hit__39;
|
|
r_diff__39 <=c_diff__39;
|
|
r_dl_b__39 <=c_dl_b__39;
|
|
r_numer__39 <=c_numer__39;
|
|
r_z1__39 <=c_z1__39;
|
|
r_z0__39 <=c_z0__39;
|
|
r_mut__39 <=c_mut__39;
|
|
|
|
//for 40
|
|
r_x__40 <=c_x__40;
|
|
r_y__40 <=c_y__40;
|
|
r_z__40 <=c_z__40;
|
|
r_ux__40 <=c_ux__40;
|
|
r_uy__40 <=c_uy__40;
|
|
r_uz__40 <=c_uz__40;
|
|
r_sz__40 <=c_sz__40;
|
|
r_sr__40 <=c_sr__40;
|
|
r_sleftz__40 <=c_sleftz__40;
|
|
r_sleftr__40 <=c_sleftr__40;
|
|
r_weight__40 <=c_weight__40;
|
|
r_layer__40 <=c_layer__40;
|
|
r_dead__40 <=c_dead__40;
|
|
r_hit__40 <=c_hit__40;
|
|
r_diff__40 <=c_diff__40;
|
|
r_dl_b__40 <=c_dl_b__40;
|
|
r_numer__40 <=c_numer__40;
|
|
r_z1__40 <=c_z1__40;
|
|
r_z0__40 <=c_z0__40;
|
|
r_mut__40 <=c_mut__40;
|
|
|
|
//for 41
|
|
r_x__41 <=c_x__41;
|
|
r_y__41 <=c_y__41;
|
|
r_z__41 <=c_z__41;
|
|
r_ux__41 <=c_ux__41;
|
|
r_uy__41 <=c_uy__41;
|
|
r_uz__41 <=c_uz__41;
|
|
r_sz__41 <=c_sz__41;
|
|
r_sr__41 <=c_sr__41;
|
|
r_sleftz__41 <=c_sleftz__41;
|
|
r_sleftr__41 <=c_sleftr__41;
|
|
r_weight__41 <=c_weight__41;
|
|
r_layer__41 <=c_layer__41;
|
|
r_dead__41 <=c_dead__41;
|
|
r_hit__41 <=c_hit__41;
|
|
r_diff__41 <=c_diff__41;
|
|
r_dl_b__41 <=c_dl_b__41;
|
|
r_numer__41 <=c_numer__41;
|
|
r_z1__41 <=c_z1__41;
|
|
r_z0__41 <=c_z0__41;
|
|
r_mut__41 <=c_mut__41;
|
|
|
|
//for 42
|
|
r_x__42 <=c_x__42;
|
|
r_y__42 <=c_y__42;
|
|
r_z__42 <=c_z__42;
|
|
r_ux__42 <=c_ux__42;
|
|
r_uy__42 <=c_uy__42;
|
|
r_uz__42 <=c_uz__42;
|
|
r_sz__42 <=c_sz__42;
|
|
r_sr__42 <=c_sr__42;
|
|
r_sleftz__42 <=c_sleftz__42;
|
|
r_sleftr__42 <=c_sleftr__42;
|
|
r_weight__42 <=c_weight__42;
|
|
r_layer__42 <=c_layer__42;
|
|
r_dead__42 <=c_dead__42;
|
|
r_hit__42 <=c_hit__42;
|
|
r_diff__42 <=c_diff__42;
|
|
r_dl_b__42 <=c_dl_b__42;
|
|
r_numer__42 <=c_numer__42;
|
|
r_z1__42 <=c_z1__42;
|
|
r_z0__42 <=c_z0__42;
|
|
r_mut__42 <=c_mut__42;
|
|
|
|
//for 43
|
|
r_x__43 <=c_x__43;
|
|
r_y__43 <=c_y__43;
|
|
r_z__43 <=c_z__43;
|
|
r_ux__43 <=c_ux__43;
|
|
r_uy__43 <=c_uy__43;
|
|
r_uz__43 <=c_uz__43;
|
|
r_sz__43 <=c_sz__43;
|
|
r_sr__43 <=c_sr__43;
|
|
r_sleftz__43 <=c_sleftz__43;
|
|
r_sleftr__43 <=c_sleftr__43;
|
|
r_weight__43 <=c_weight__43;
|
|
r_layer__43 <=c_layer__43;
|
|
r_dead__43 <=c_dead__43;
|
|
r_hit__43 <=c_hit__43;
|
|
r_diff__43 <=c_diff__43;
|
|
r_dl_b__43 <=c_dl_b__43;
|
|
r_numer__43 <=c_numer__43;
|
|
r_z1__43 <=c_z1__43;
|
|
r_z0__43 <=c_z0__43;
|
|
r_mut__43 <=c_mut__43;
|
|
|
|
//for 44
|
|
r_x__44 <=c_x__44;
|
|
r_y__44 <=c_y__44;
|
|
r_z__44 <=c_z__44;
|
|
r_ux__44 <=c_ux__44;
|
|
r_uy__44 <=c_uy__44;
|
|
r_uz__44 <=c_uz__44;
|
|
r_sz__44 <=c_sz__44;
|
|
r_sr__44 <=c_sr__44;
|
|
r_sleftz__44 <=c_sleftz__44;
|
|
r_sleftr__44 <=c_sleftr__44;
|
|
r_weight__44 <=c_weight__44;
|
|
r_layer__44 <=c_layer__44;
|
|
r_dead__44 <=c_dead__44;
|
|
r_hit__44 <=c_hit__44;
|
|
r_diff__44 <=c_diff__44;
|
|
r_dl_b__44 <=c_dl_b__44;
|
|
r_numer__44 <=c_numer__44;
|
|
r_z1__44 <=c_z1__44;
|
|
r_z0__44 <=c_z0__44;
|
|
r_mut__44 <=c_mut__44;
|
|
|
|
//for 45
|
|
r_x__45 <=c_x__45;
|
|
r_y__45 <=c_y__45;
|
|
r_z__45 <=c_z__45;
|
|
r_ux__45 <=c_ux__45;
|
|
r_uy__45 <=c_uy__45;
|
|
r_uz__45 <=c_uz__45;
|
|
r_sz__45 <=c_sz__45;
|
|
r_sr__45 <=c_sr__45;
|
|
r_sleftz__45 <=c_sleftz__45;
|
|
r_sleftr__45 <=c_sleftr__45;
|
|
r_weight__45 <=c_weight__45;
|
|
r_layer__45 <=c_layer__45;
|
|
r_dead__45 <=c_dead__45;
|
|
r_hit__45 <=c_hit__45;
|
|
r_diff__45 <=c_diff__45;
|
|
r_dl_b__45 <=c_dl_b__45;
|
|
r_numer__45 <=c_numer__45;
|
|
r_z1__45 <=c_z1__45;
|
|
r_z0__45 <=c_z0__45;
|
|
r_mut__45 <=c_mut__45;
|
|
|
|
//for 46
|
|
r_x__46 <=c_x__46;
|
|
r_y__46 <=c_y__46;
|
|
r_z__46 <=c_z__46;
|
|
r_ux__46 <=c_ux__46;
|
|
r_uy__46 <=c_uy__46;
|
|
r_uz__46 <=c_uz__46;
|
|
r_sz__46 <=c_sz__46;
|
|
r_sr__46 <=c_sr__46;
|
|
r_sleftz__46 <=c_sleftz__46;
|
|
r_sleftr__46 <=c_sleftr__46;
|
|
r_weight__46 <=c_weight__46;
|
|
r_layer__46 <=c_layer__46;
|
|
r_dead__46 <=c_dead__46;
|
|
r_hit__46 <=c_hit__46;
|
|
r_diff__46 <=c_diff__46;
|
|
r_dl_b__46 <=c_dl_b__46;
|
|
r_numer__46 <=c_numer__46;
|
|
r_z1__46 <=c_z1__46;
|
|
r_z0__46 <=c_z0__46;
|
|
r_mut__46 <=c_mut__46;
|
|
|
|
//for 47
|
|
r_x__47 <=c_x__47;
|
|
r_y__47 <=c_y__47;
|
|
r_z__47 <=c_z__47;
|
|
r_ux__47 <=c_ux__47;
|
|
r_uy__47 <=c_uy__47;
|
|
r_uz__47 <=c_uz__47;
|
|
r_sz__47 <=c_sz__47;
|
|
r_sr__47 <=c_sr__47;
|
|
r_sleftz__47 <=c_sleftz__47;
|
|
r_sleftr__47 <=c_sleftr__47;
|
|
r_weight__47 <=c_weight__47;
|
|
r_layer__47 <=c_layer__47;
|
|
r_dead__47 <=c_dead__47;
|
|
r_hit__47 <=c_hit__47;
|
|
r_diff__47 <=c_diff__47;
|
|
r_dl_b__47 <=c_dl_b__47;
|
|
r_numer__47 <=c_numer__47;
|
|
r_z1__47 <=c_z1__47;
|
|
r_z0__47 <=c_z0__47;
|
|
r_mut__47 <=c_mut__47;
|
|
|
|
//for 48
|
|
r_x__48 <=c_x__48;
|
|
r_y__48 <=c_y__48;
|
|
r_z__48 <=c_z__48;
|
|
r_ux__48 <=c_ux__48;
|
|
r_uy__48 <=c_uy__48;
|
|
r_uz__48 <=c_uz__48;
|
|
r_sz__48 <=c_sz__48;
|
|
r_sr__48 <=c_sr__48;
|
|
r_sleftz__48 <=c_sleftz__48;
|
|
r_sleftr__48 <=c_sleftr__48;
|
|
r_weight__48 <=c_weight__48;
|
|
r_layer__48 <=c_layer__48;
|
|
r_dead__48 <=c_dead__48;
|
|
r_hit__48 <=c_hit__48;
|
|
r_diff__48 <=c_diff__48;
|
|
r_dl_b__48 <=c_dl_b__48;
|
|
r_numer__48 <=c_numer__48;
|
|
r_z1__48 <=c_z1__48;
|
|
r_z0__48 <=c_z0__48;
|
|
r_mut__48 <=c_mut__48;
|
|
|
|
//for 49
|
|
r_x__49 <=c_x__49;
|
|
r_y__49 <=c_y__49;
|
|
r_z__49 <=c_z__49;
|
|
r_ux__49 <=c_ux__49;
|
|
r_uy__49 <=c_uy__49;
|
|
r_uz__49 <=c_uz__49;
|
|
r_sz__49 <=c_sz__49;
|
|
r_sr__49 <=c_sr__49;
|
|
r_sleftz__49 <=c_sleftz__49;
|
|
r_sleftr__49 <=c_sleftr__49;
|
|
r_weight__49 <=c_weight__49;
|
|
r_layer__49 <=c_layer__49;
|
|
r_dead__49 <=c_dead__49;
|
|
r_hit__49 <=c_hit__49;
|
|
r_diff__49 <=c_diff__49;
|
|
r_dl_b__49 <=c_dl_b__49;
|
|
r_numer__49 <=c_numer__49;
|
|
r_z1__49 <=c_z1__49;
|
|
r_z0__49 <=c_z0__49;
|
|
r_mut__49 <=c_mut__49;
|
|
|
|
//for 50
|
|
r_x__50 <=c_x__50;
|
|
r_y__50 <=c_y__50;
|
|
r_z__50 <=c_z__50;
|
|
r_ux__50 <=c_ux__50;
|
|
r_uy__50 <=c_uy__50;
|
|
r_uz__50 <=c_uz__50;
|
|
r_sz__50 <=c_sz__50;
|
|
r_sr__50 <=c_sr__50;
|
|
r_sleftz__50 <=c_sleftz__50;
|
|
r_sleftr__50 <=c_sleftr__50;
|
|
r_weight__50 <=c_weight__50;
|
|
r_layer__50 <=c_layer__50;
|
|
r_dead__50 <=c_dead__50;
|
|
r_hit__50 <=c_hit__50;
|
|
r_diff__50 <=c_diff__50;
|
|
r_dl_b__50 <=c_dl_b__50;
|
|
r_numer__50 <=c_numer__50;
|
|
r_z1__50 <=c_z1__50;
|
|
r_z0__50 <=c_z0__50;
|
|
r_mut__50 <=c_mut__50;
|
|
|
|
//for 51
|
|
r_x__51 <=c_x__51;
|
|
r_y__51 <=c_y__51;
|
|
r_z__51 <=c_z__51;
|
|
r_ux__51 <=c_ux__51;
|
|
r_uy__51 <=c_uy__51;
|
|
r_uz__51 <=c_uz__51;
|
|
r_sz__51 <=c_sz__51;
|
|
r_sr__51 <=c_sr__51;
|
|
r_sleftz__51 <=c_sleftz__51;
|
|
r_sleftr__51 <=c_sleftr__51;
|
|
r_weight__51 <=c_weight__51;
|
|
r_layer__51 <=c_layer__51;
|
|
r_dead__51 <=c_dead__51;
|
|
r_hit__51 <=c_hit__51;
|
|
r_diff__51 <=c_diff__51;
|
|
r_dl_b__51 <=c_dl_b__51;
|
|
r_numer__51 <=c_numer__51;
|
|
r_z1__51 <=c_z1__51;
|
|
r_z0__51 <=c_z0__51;
|
|
r_mut__51 <=c_mut__51;
|
|
|
|
//for 52
|
|
r_x__52 <=c_x__52;
|
|
r_y__52 <=c_y__52;
|
|
r_z__52 <=c_z__52;
|
|
r_ux__52 <=c_ux__52;
|
|
r_uy__52 <=c_uy__52;
|
|
r_uz__52 <=c_uz__52;
|
|
r_sz__52 <=c_sz__52;
|
|
r_sr__52 <=c_sr__52;
|
|
r_sleftz__52 <=c_sleftz__52;
|
|
r_sleftr__52 <=c_sleftr__52;
|
|
r_weight__52 <=c_weight__52;
|
|
r_layer__52 <=c_layer__52;
|
|
r_dead__52 <=c_dead__52;
|
|
r_hit__52 <=c_hit__52;
|
|
r_diff__52 <=c_diff__52;
|
|
r_dl_b__52 <=c_dl_b__52;
|
|
r_numer__52 <=c_numer__52;
|
|
r_z1__52 <=c_z1__52;
|
|
r_z0__52 <=c_z0__52;
|
|
r_mut__52 <=c_mut__52;
|
|
|
|
//for 53
|
|
r_x__53 <=c_x__53;
|
|
r_y__53 <=c_y__53;
|
|
r_z__53 <=c_z__53;
|
|
r_ux__53 <=c_ux__53;
|
|
r_uy__53 <=c_uy__53;
|
|
r_uz__53 <=c_uz__53;
|
|
r_sz__53 <=c_sz__53;
|
|
r_sr__53 <=c_sr__53;
|
|
r_sleftz__53 <=c_sleftz__53;
|
|
r_sleftr__53 <=c_sleftr__53;
|
|
r_weight__53 <=c_weight__53;
|
|
r_layer__53 <=c_layer__53;
|
|
r_dead__53 <=c_dead__53;
|
|
r_hit__53 <=c_hit__53;
|
|
r_diff__53 <=c_diff__53;
|
|
r_dl_b__53 <=c_dl_b__53;
|
|
r_numer__53 <=c_numer__53;
|
|
r_z1__53 <=c_z1__53;
|
|
r_z0__53 <=c_z0__53;
|
|
r_mut__53 <=c_mut__53;
|
|
|
|
//for 54
|
|
r_x__54 <=c_x__54;
|
|
r_y__54 <=c_y__54;
|
|
r_z__54 <=c_z__54;
|
|
r_ux__54 <=c_ux__54;
|
|
r_uy__54 <=c_uy__54;
|
|
r_uz__54 <=c_uz__54;
|
|
r_sz__54 <=c_sz__54;
|
|
r_sr__54 <=c_sr__54;
|
|
r_sleftz__54 <=c_sleftz__54;
|
|
r_sleftr__54 <=c_sleftr__54;
|
|
r_weight__54 <=c_weight__54;
|
|
r_layer__54 <=c_layer__54;
|
|
r_dead__54 <=c_dead__54;
|
|
r_hit__54 <=c_hit__54;
|
|
r_diff__54 <=c_diff__54;
|
|
r_dl_b__54 <=c_dl_b__54;
|
|
r_numer__54 <=c_numer__54;
|
|
r_z1__54 <=c_z1__54;
|
|
r_z0__54 <=c_z0__54;
|
|
r_mut__54 <=c_mut__54;
|
|
|
|
//for 55
|
|
r_x__55 <=c_x__55;
|
|
r_y__55 <=c_y__55;
|
|
r_z__55 <=c_z__55;
|
|
r_ux__55 <=c_ux__55;
|
|
r_uy__55 <=c_uy__55;
|
|
r_uz__55 <=c_uz__55;
|
|
r_sz__55 <=c_sz__55;
|
|
r_sr__55 <=c_sr__55;
|
|
r_sleftz__55 <=c_sleftz__55;
|
|
r_sleftr__55 <=c_sleftr__55;
|
|
r_weight__55 <=c_weight__55;
|
|
r_layer__55 <=c_layer__55;
|
|
r_dead__55 <=c_dead__55;
|
|
r_hit__55 <=c_hit__55;
|
|
r_diff__55 <=c_diff__55;
|
|
r_dl_b__55 <=c_dl_b__55;
|
|
r_numer__55 <=c_numer__55;
|
|
r_z1__55 <=c_z1__55;
|
|
r_z0__55 <=c_z0__55;
|
|
r_mut__55 <=c_mut__55;
|
|
|
|
//for 56
|
|
r_x__56 <=c_x__56;
|
|
r_y__56 <=c_y__56;
|
|
r_z__56 <=c_z__56;
|
|
r_ux__56 <=c_ux__56;
|
|
r_uy__56 <=c_uy__56;
|
|
r_uz__56 <=c_uz__56;
|
|
r_sz__56 <=c_sz__56;
|
|
r_sr__56 <=c_sr__56;
|
|
r_sleftz__56 <=c_sleftz__56;
|
|
r_sleftr__56 <=c_sleftr__56;
|
|
r_weight__56 <=c_weight__56;
|
|
r_layer__56 <=c_layer__56;
|
|
r_dead__56 <=c_dead__56;
|
|
r_hit__56 <=c_hit__56;
|
|
r_diff__56 <=c_diff__56;
|
|
r_dl_b__56 <=c_dl_b__56;
|
|
r_numer__56 <=c_numer__56;
|
|
r_z1__56 <=c_z1__56;
|
|
r_z0__56 <=c_z0__56;
|
|
r_mut__56 <=c_mut__56;
|
|
|
|
//for 57
|
|
r_x__57 <=c_x__57;
|
|
r_y__57 <=c_y__57;
|
|
r_z__57 <=c_z__57;
|
|
r_ux__57 <=c_ux__57;
|
|
r_uy__57 <=c_uy__57;
|
|
r_uz__57 <=c_uz__57;
|
|
r_sz__57 <=c_sz__57;
|
|
r_sr__57 <=c_sr__57;
|
|
r_sleftz__57 <=c_sleftz__57;
|
|
r_sleftr__57 <=c_sleftr__57;
|
|
r_weight__57 <=c_weight__57;
|
|
r_layer__57 <=c_layer__57;
|
|
r_dead__57 <=c_dead__57;
|
|
r_hit__57 <=c_hit__57;
|
|
r_diff__57 <=c_diff__57;
|
|
r_dl_b__57 <=c_dl_b__57;
|
|
r_numer__57 <=c_numer__57;
|
|
r_z1__57 <=c_z1__57;
|
|
r_z0__57 <=c_z0__57;
|
|
r_mut__57 <=c_mut__57;
|
|
|
|
//for 58
|
|
r_x__58 <=c_x__58;
|
|
r_y__58 <=c_y__58;
|
|
r_z__58 <=c_z__58;
|
|
r_ux__58 <=c_ux__58;
|
|
r_uy__58 <=c_uy__58;
|
|
r_uz__58 <=c_uz__58;
|
|
r_sz__58 <=c_sz__58;
|
|
r_sr__58 <=c_sr__58;
|
|
r_sleftz__58 <=c_sleftz__58;
|
|
r_sleftr__58 <=c_sleftr__58;
|
|
r_weight__58 <=c_weight__58;
|
|
r_layer__58 <=c_layer__58;
|
|
r_dead__58 <=c_dead__58;
|
|
r_hit__58 <=c_hit__58;
|
|
r_diff__58 <=c_diff__58;
|
|
r_dl_b__58 <=c_dl_b__58;
|
|
r_numer__58 <=c_numer__58;
|
|
r_z1__58 <=c_z1__58;
|
|
r_z0__58 <=c_z0__58;
|
|
r_mut__58 <=c_mut__58;
|
|
|
|
//for 59
|
|
r_x__59 <=c_x__59;
|
|
r_y__59 <=c_y__59;
|
|
r_z__59 <=c_z__59;
|
|
r_ux__59 <=c_ux__59;
|
|
r_uy__59 <=c_uy__59;
|
|
r_uz__59 <=c_uz__59;
|
|
r_sz__59 <=c_sz__59;
|
|
r_sr__59 <=c_sr__59;
|
|
r_sleftz__59 <=c_sleftz__59;
|
|
r_sleftr__59 <=c_sleftr__59;
|
|
r_weight__59 <=c_weight__59;
|
|
r_layer__59 <=c_layer__59;
|
|
r_dead__59 <=c_dead__59;
|
|
r_hit__59 <=c_hit__59;
|
|
r_diff__59 <=c_diff__59;
|
|
r_dl_b__59 <=c_dl_b__59;
|
|
r_numer__59 <=c_numer__59;
|
|
r_z1__59 <=c_z1__59;
|
|
r_z0__59 <=c_z0__59;
|
|
r_mut__59 <=c_mut__59;
|
|
|
|
end
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
//mult_signed_32_bc
|
|
/////////////////////////////////////////////////////////////
|
|
module mult_signed_32_bc ( clock, dataa, datab, result);
|
|
|
|
|
|
input clock;
|
|
input [31:0] dataa;
|
|
input [31:0] datab;
|
|
output [63:0] result;
|
|
reg [63:0] result;
|
|
|
|
wire [63:0] prelim_result;
|
|
|
|
|
|
wire [31:0] opa;
|
|
wire [31:0] opb;
|
|
wire [31:0] opa_comp;
|
|
wire [31:0] opb_comp;
|
|
|
|
assign opa_comp = ((~dataa) + 32'b00000000000000000000000000000001);
|
|
|
|
assign opb_comp = ((~datab) + 32'b00000000000000000000000000000001);
|
|
|
|
|
|
wire opa_is_neg;
|
|
wire opb_is_neg;
|
|
assign opa_is_neg = dataa[31];
|
|
assign opb_is_neg = datab [31];
|
|
assign opa = (opa_is_neg== 1'b1) ? opa_comp:dataa;
|
|
assign opb = (opb_is_neg == 1'b1) ? opb_comp:datab;
|
|
|
|
|
|
assign prelim_result = opa * opb ;
|
|
wire sign;
|
|
assign sign = dataa[31] ^ datab[31];
|
|
|
|
wire [63:0] prelim_result_comp;
|
|
wire [63:0] prelim_result_changed;
|
|
wire [63:0] result_changed;
|
|
assign result_changed = (sign==1'b1)? prelim_result_comp :prelim_result;
|
|
assign prelim_result_comp = ((~prelim_result) + 1);
|
|
|
|
always @ (posedge clock)
|
|
begin
|
|
result <= result_changed;
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
//signed_div_30
|
|
/////////////////////////////////////////////////////////////
|
|
module signed_div_30 (clock , denom , numer, quotient, remain);
|
|
|
|
input clock;
|
|
|
|
input [31:0] denom;
|
|
|
|
input [63:0] numer;
|
|
|
|
output [63:0] quotient;
|
|
|
|
output [31:0] remain;
|
|
|
|
Div_64b div_replace (.clock(clock), .denom(denom), .numer(numer), .quotient(quotient), .remain(remain));
|
|
|
|
endmodule
|
|
module Hop( //INPUTS
|
|
clock, reset, enable,
|
|
x_boundaryChecker, y_boundaryChecker, z_boundaryChecker,
|
|
ux_boundaryChecker, uy_boundaryChecker, uz_boundaryChecker,
|
|
sz_boundaryChecker, sr_boundaryChecker,
|
|
sleftz_boundaryChecker, sleftr_boundaryChecker,
|
|
layer_boundaryChecker, weight_boundaryChecker, dead_boundaryChecker,
|
|
hit_boundaryChecker,
|
|
|
|
//OUTPUTS
|
|
x_hop, y_hop, z_hop,
|
|
ux_hop, uy_hop, uz_hop,
|
|
sz_hop, sr_hop,
|
|
sleftz_hop, sleftr_hop,
|
|
layer_hop, weight_hop, dead_hop, hit_hop
|
|
);
|
|
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter LAYER_WIDTH=3;
|
|
//parameter INTMAX=2147483647;
|
|
//parameter INTMIN=-2147483648;
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [`BIT_WIDTH-1:0] x_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] y_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] z_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] ux_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] uy_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] uz_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] sz_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] sr_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] sleftz_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] sleftr_boundaryChecker;
|
|
input [`LAYER_WIDTH-1:0] layer_boundaryChecker;
|
|
input [`BIT_WIDTH-1:0] weight_boundaryChecker;
|
|
input dead_boundaryChecker;
|
|
input hit_boundaryChecker;
|
|
|
|
output [`BIT_WIDTH-1:0] x_hop;
|
|
output [`BIT_WIDTH-1:0] y_hop;
|
|
output [`BIT_WIDTH-1:0] z_hop;
|
|
output [`BIT_WIDTH-1:0] ux_hop;
|
|
output [`BIT_WIDTH-1:0] uy_hop;
|
|
output [`BIT_WIDTH-1:0] uz_hop;
|
|
output [`BIT_WIDTH-1:0] sz_hop;
|
|
output [`BIT_WIDTH-1:0] sr_hop;
|
|
output [`BIT_WIDTH-1:0] sleftz_hop;
|
|
output [`BIT_WIDTH-1:0] sleftr_hop;
|
|
output [`LAYER_WIDTH-1:0]layer_hop;
|
|
output [`BIT_WIDTH-1:0] weight_hop;
|
|
output dead_hop;
|
|
output hit_hop;
|
|
|
|
//------------Local Variables------------------------
|
|
reg [`BIT_WIDTH-1:0] c_x;
|
|
reg [`BIT_WIDTH-1:0] c_y;
|
|
reg [`BIT_WIDTH-1:0] c_z;
|
|
reg c_dead;
|
|
|
|
reg [`BIT_WIDTH:0] c_x_big;
|
|
reg [`BIT_WIDTH:0] c_y_big;
|
|
reg [`BIT_WIDTH:0] c_z_big;
|
|
|
|
wire [2*`BIT_WIDTH-1:0] c_xmult_big;
|
|
wire [2*`BIT_WIDTH-1:0] c_ymult_big;
|
|
wire [2*`BIT_WIDTH-1:0] c_zmult_big;
|
|
|
|
//------------REGISTERED Values------------------------
|
|
reg [`BIT_WIDTH-1:0] x_hop;
|
|
reg [`BIT_WIDTH-1:0] y_hop;
|
|
reg [`BIT_WIDTH-1:0] z_hop;
|
|
reg [`BIT_WIDTH-1:0] ux_hop;
|
|
reg [`BIT_WIDTH-1:0] uy_hop;
|
|
reg [`BIT_WIDTH-1:0] uz_hop;
|
|
reg [`BIT_WIDTH-1:0] sz_hop;
|
|
reg [`BIT_WIDTH-1:0] sr_hop;
|
|
reg [`BIT_WIDTH-1:0] sleftz_hop;
|
|
reg [`BIT_WIDTH-1:0] sleftr_hop;
|
|
reg [`LAYER_WIDTH-1:0]layer_hop;
|
|
reg [`BIT_WIDTH-1:0] weight_hop;
|
|
reg dead_hop;
|
|
reg hit_hop;
|
|
|
|
mult_signed_32 u1(sr_boundaryChecker, ux_boundaryChecker, c_xmult_big);
|
|
mult_signed_32 u2(sr_boundaryChecker, uy_boundaryChecker, c_ymult_big);
|
|
mult_signed_32 u3(sz_boundaryChecker, uz_boundaryChecker, c_zmult_big);
|
|
|
|
// Determine new (x,y,z) coordinates
|
|
always @(c_dead or
|
|
c_x_big or c_y_big or c_z_big or
|
|
c_x or c_y or c_z or
|
|
x_boundaryChecker or y_boundaryChecker or z_boundaryChecker or
|
|
c_xmult_big or c_ymult_big or c_zmult_big
|
|
or hit_boundaryChecker or dead_boundaryChecker)
|
|
begin
|
|
|
|
c_x_big = x_boundaryChecker + c_xmult_big[2*`BIT_WIDTH-2:31];
|
|
c_y_big = y_boundaryChecker + c_ymult_big[2*`BIT_WIDTH-2:31];
|
|
c_z_big = z_boundaryChecker + c_zmult_big[2*`BIT_WIDTH-2:31];
|
|
|
|
|
|
// Calculate x position, photon dies if outside grid
|
|
if(c_x_big[`BIT_WIDTH] != c_x_big[`BIT_WIDTH-1] && x_boundaryChecker[`BIT_WIDTH-1] == c_xmult_big[2*`BIT_WIDTH-2])
|
|
begin
|
|
if(c_x_big[`BIT_WIDTH] == 1'b0)
|
|
begin
|
|
// c_dead = 1'b1;
|
|
c_x = `INTMAX;
|
|
end
|
|
else
|
|
begin
|
|
// c_dead = 1'b1;
|
|
c_x = `INTMIN;
|
|
end
|
|
end
|
|
else
|
|
begin
|
|
c_x = c_x_big[`BIT_WIDTH-1:0];
|
|
end
|
|
|
|
|
|
// Calculate y position, photon dies if outside grid
|
|
if(c_y_big[`BIT_WIDTH] != c_y_big[`BIT_WIDTH-1] && y_boundaryChecker[`BIT_WIDTH-1] == c_ymult_big[2*`BIT_WIDTH-2])
|
|
begin
|
|
if(c_y_big[`BIT_WIDTH] == 1'b0)
|
|
begin
|
|
// c_dead = 1'b1;
|
|
c_y = `INTMAX;
|
|
end
|
|
else
|
|
begin
|
|
// c_dead = 1'b1;
|
|
c_y = `INTMIN;
|
|
end
|
|
end
|
|
else
|
|
begin
|
|
c_y = c_y_big[`BIT_WIDTH-1:0];
|
|
end
|
|
|
|
// Calculate z position, photon dies if outside grid
|
|
if(hit_boundaryChecker)
|
|
begin
|
|
c_z = z_boundaryChecker;
|
|
end
|
|
else if(c_z_big[`BIT_WIDTH] != c_z_big[`BIT_WIDTH-1] && z_boundaryChecker[`BIT_WIDTH-1] == c_zmult_big[2*`BIT_WIDTH-2])
|
|
begin
|
|
// c_dead = 1'b1;
|
|
c_z = `INTMAX;
|
|
end
|
|
else if (c_z_big[`BIT_WIDTH-1] == 1'b1)
|
|
begin
|
|
// c_dead = 1'b1;
|
|
c_z = 0;
|
|
end
|
|
else
|
|
begin
|
|
c_z = c_z_big[`BIT_WIDTH-1:0];
|
|
end
|
|
|
|
// Calculate c_dead (necessary because odin does not support block statements).
|
|
if( (c_x_big[`BIT_WIDTH] != c_x_big[`BIT_WIDTH-1] && x_boundaryChecker[`BIT_WIDTH-1] == c_xmult_big[2*`BIT_WIDTH-2])
|
|
|(c_y_big[`BIT_WIDTH] != c_y_big[`BIT_WIDTH-1] && y_boundaryChecker[`BIT_WIDTH-1] == c_ymult_big[2*`BIT_WIDTH-2])
|
|
|(c_z_big[`BIT_WIDTH] != c_z_big[`BIT_WIDTH-1] && z_boundaryChecker[`BIT_WIDTH-1] == c_zmult_big[2*`BIT_WIDTH-2]) )
|
|
begin
|
|
c_dead = 1'b1;
|
|
end
|
|
else
|
|
begin
|
|
c_dead = dead_boundaryChecker;
|
|
end
|
|
|
|
end
|
|
|
|
// latch values
|
|
always @ (posedge clock)
|
|
begin
|
|
if (reset)
|
|
begin
|
|
// Photon variables
|
|
x_hop <= 0;
|
|
y_hop <= 0;
|
|
z_hop <= 0;
|
|
ux_hop <= 0;
|
|
uy_hop <= 0;
|
|
uz_hop <= 0;
|
|
sz_hop <= 0;
|
|
sr_hop <= 0;
|
|
sleftz_hop <= 0;
|
|
sleftr_hop <= 0;
|
|
layer_hop <= 0;
|
|
weight_hop <= 0;
|
|
dead_hop <= 1'b1;
|
|
hit_hop <= 1'b0;
|
|
end
|
|
else
|
|
begin
|
|
if(enable)
|
|
begin
|
|
// Photon variables
|
|
ux_hop <= ux_boundaryChecker;
|
|
uy_hop <= uy_boundaryChecker;
|
|
uz_hop <= uz_boundaryChecker;
|
|
sz_hop <= sz_boundaryChecker;
|
|
sr_hop <= sr_boundaryChecker;
|
|
sleftz_hop <= sleftz_boundaryChecker;
|
|
sleftr_hop <= sleftr_boundaryChecker;
|
|
layer_hop <= layer_boundaryChecker;
|
|
weight_hop <= weight_boundaryChecker;
|
|
hit_hop <= hit_boundaryChecker;
|
|
|
|
x_hop <= c_x;
|
|
y_hop <= c_y;
|
|
z_hop <= c_z;
|
|
dead_hop <= c_dead;
|
|
end
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
//mult_signed_32
|
|
/////////////////////////////////////////////////////////////
|
|
module mult_signed_32(a, b, c);
|
|
input [31:0]a;
|
|
input [31:0]b;
|
|
output [63:0]c;
|
|
reg [63:0]c;
|
|
|
|
reg is_neg_a;
|
|
reg is_neg_b;
|
|
reg [31:0]a_tmp;
|
|
reg [31:0]b_tmp;
|
|
reg [63:0]c_tmp;
|
|
|
|
|
|
always@(a or b or is_neg_a or is_neg_b or a_tmp or b_tmp or c)
|
|
begin
|
|
|
|
if(a[31] == 1) begin
|
|
a_tmp = -a;
|
|
is_neg_a = 1;
|
|
end else
|
|
begin
|
|
a_tmp = a;
|
|
is_neg_a = 0;
|
|
end
|
|
|
|
if(b[31] == 1) begin
|
|
b_tmp = -b;
|
|
is_neg_b = 1;
|
|
end else
|
|
begin
|
|
b_tmp = b;
|
|
is_neg_b = 0;
|
|
end
|
|
|
|
if( is_neg_a != is_neg_b) begin
|
|
c_tmp = -(a_tmp * b_tmp);
|
|
end else
|
|
begin
|
|
c_tmp = (a_tmp * b_tmp);
|
|
end
|
|
end
|
|
|
|
always@(c_tmp)
|
|
begin
|
|
c = c_tmp;
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
module Roulette ( //INPUTS
|
|
clock, reset, enable,
|
|
x_RouletteMux, y_RouletteMux, z_RouletteMux,
|
|
ux_RouletteMux, uy_RouletteMux, uz_RouletteMux,
|
|
sz_RouletteMux, sr_RouletteMux,
|
|
sleftz_RouletteMux, sleftr_RouletteMux,
|
|
layer_RouletteMux, weight_absorber, dead_RouletteMux,
|
|
|
|
//From Random Number Generator in Skeleton.v
|
|
randnumber,
|
|
|
|
//OUTPUTS
|
|
x_Roulette, y_Roulette, z_Roulette,
|
|
ux_Roulette, uy_Roulette, uz_Roulette,
|
|
sz_Roulette, sr_Roulette,
|
|
sleftz_Roulette, sleftr_Roulette,
|
|
layer_Roulette, weight_Roulette, dead_Roulette
|
|
);
|
|
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter LAYER_WIDTH=3;
|
|
|
|
//parameter LEFTSHIFT=3; // 2^3=8=1/0.125 where 0.125 = CHANCE of roulette
|
|
//parameter INTCHANCE=536870912; //Based on 32 bit rand num generator
|
|
//parameter MIN_WEIGHT=200;
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [`BIT_WIDTH-1:0] x_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] y_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] z_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] ux_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] uy_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] uz_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] sz_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] sr_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] sleftz_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] sleftr_RouletteMux;
|
|
input [`LAYER_WIDTH-1:0] layer_RouletteMux;
|
|
input [`BIT_WIDTH-1:0] weight_absorber;
|
|
input [`BIT_WIDTH-1:0] randnumber;
|
|
input dead_RouletteMux;
|
|
|
|
output [`BIT_WIDTH-1:0] x_Roulette;
|
|
output [`BIT_WIDTH-1:0] y_Roulette;
|
|
output [`BIT_WIDTH-1:0] z_Roulette;
|
|
output [`BIT_WIDTH-1:0] ux_Roulette;
|
|
output [`BIT_WIDTH-1:0] uy_Roulette;
|
|
output [`BIT_WIDTH-1:0] uz_Roulette;
|
|
output [`BIT_WIDTH-1:0] sz_Roulette;
|
|
output [`BIT_WIDTH-1:0] sr_Roulette;
|
|
output [`BIT_WIDTH-1:0] sleftz_Roulette;
|
|
output [`BIT_WIDTH-1:0] sleftr_Roulette;
|
|
output [`LAYER_WIDTH-1:0]layer_Roulette;
|
|
output [`BIT_WIDTH-1:0] weight_Roulette;
|
|
output dead_Roulette;
|
|
|
|
//------------Local Variables------------------------
|
|
reg dead_roulette;
|
|
reg [`BIT_WIDTH-1:0] weight_roulette;
|
|
reg [31:0] randBits; //Hard-coded bitwidth because rng is 32-bit
|
|
|
|
//------------REGISTERED Values------------------------
|
|
reg [`BIT_WIDTH-1:0] x_Roulette;
|
|
reg [`BIT_WIDTH-1:0] y_Roulette;
|
|
reg [`BIT_WIDTH-1:0] z_Roulette;
|
|
reg [`BIT_WIDTH-1:0] ux_Roulette;
|
|
reg [`BIT_WIDTH-1:0] uy_Roulette;
|
|
reg [`BIT_WIDTH-1:0] uz_Roulette;
|
|
reg [`BIT_WIDTH-1:0] sz_Roulette;
|
|
reg [`BIT_WIDTH-1:0] sr_Roulette;
|
|
reg [`BIT_WIDTH-1:0] sleftz_Roulette;
|
|
reg [`BIT_WIDTH-1:0] sleftr_Roulette;
|
|
reg [`LAYER_WIDTH-1:0]layer_Roulette;
|
|
reg [`BIT_WIDTH-1:0] weight_Roulette;
|
|
reg dead_Roulette;
|
|
|
|
always @ (reset or enable or weight_absorber or randBits or randnumber or dead_RouletteMux) begin
|
|
//Default case moved inside else statements for odin
|
|
//randBits = randnumber; //Reading from external random num generator
|
|
//weight_roulette=weight_absorber; //Avoid inferring a latch
|
|
//dead_roulette=dead_RouletteMux;
|
|
|
|
if (reset) begin
|
|
//Local variables
|
|
weight_roulette=0;
|
|
dead_roulette=0;
|
|
randBits=0;
|
|
end
|
|
|
|
else if (enable) begin
|
|
//Set default case
|
|
randBits = randnumber;
|
|
//DO ROULETTE!!!
|
|
if (weight_absorber < `MIN_WEIGHT && !dead_RouletteMux) begin
|
|
//Replicate Operator (same as 32'b000000..., except more flexible)
|
|
if (weight_absorber== {`BIT_WIDTH{1'b0}}) begin
|
|
dead_roulette = 1;
|
|
weight_roulette = weight_absorber;
|
|
end
|
|
|
|
else if (randBits < `INTCHANCE) begin // survived the roulette
|
|
dead_roulette=0;
|
|
weight_roulette=weight_absorber << `LEFTSHIFT; //To avoid mult
|
|
end
|
|
|
|
else begin
|
|
dead_roulette=1;
|
|
weight_roulette = weight_absorber;
|
|
end
|
|
end
|
|
|
|
//No Roulette
|
|
else begin
|
|
weight_roulette = weight_absorber;
|
|
dead_roulette = 0;
|
|
end
|
|
end
|
|
|
|
else //for insurance that this is default case
|
|
begin
|
|
randBits = randnumber;
|
|
weight_roulette = weight_absorber;
|
|
dead_roulette = dead_RouletteMux;
|
|
end
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
if (reset) begin
|
|
x_Roulette <= 0;
|
|
y_Roulette <= 0;
|
|
z_Roulette <= 0;
|
|
ux_Roulette <= 0;
|
|
uy_Roulette <= 0;
|
|
uz_Roulette <= 0;
|
|
sz_Roulette <= 0;
|
|
sr_Roulette <= 0;
|
|
sleftz_Roulette <= 0;
|
|
sleftr_Roulette <= 0;
|
|
layer_Roulette <= 0;
|
|
weight_Roulette <= 0;
|
|
dead_Roulette <= 1'b1;
|
|
end
|
|
|
|
else if (enable) begin
|
|
//Write through values from Roulette block
|
|
dead_Roulette <= (dead_RouletteMux | dead_roulette); //OR operator ???
|
|
weight_Roulette <= weight_roulette; //weight_absorber.read();
|
|
|
|
//Write through unchanged values
|
|
x_Roulette <= x_RouletteMux;
|
|
y_Roulette <= y_RouletteMux;
|
|
z_Roulette <= z_RouletteMux;
|
|
|
|
ux_Roulette <= ux_RouletteMux;
|
|
uy_Roulette <= uy_RouletteMux;
|
|
uz_Roulette <= uz_RouletteMux;
|
|
sz_Roulette <= sz_RouletteMux;
|
|
sr_Roulette <= sr_RouletteMux;
|
|
sleftz_Roulette <= sleftz_RouletteMux;
|
|
sleftr_Roulette <= sleftr_RouletteMux;
|
|
layer_Roulette <= layer_RouletteMux;
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
module rng(clk, en, resetn,loadseed_i,seed_i,number_o);
|
|
input clk;
|
|
input resetn;
|
|
input en;
|
|
input loadseed_i;
|
|
input [31:0] seed_i;
|
|
output [31:0] number_o;
|
|
|
|
wire [31:0] number_o;
|
|
|
|
reg [31:0] c_b1, c_b2, c_b3;
|
|
reg [31:0] c_s1, c_s2, c_s3;
|
|
|
|
reg [31:0] r_s1, r_s2, r_s3;
|
|
|
|
assign number_o = r_s1 ^ r_s2 ^ r_s3;
|
|
|
|
always @(loadseed_i or seed_i or r_s1 or r_s2 or r_s3)
|
|
begin
|
|
if(loadseed_i)
|
|
begin
|
|
c_b1 = 32'b0;
|
|
c_s1 = seed_i;
|
|
c_b2 = 32'b0;
|
|
c_s2 = {seed_i[5:0], seed_i[17], seed_i[18], seed_i[19], seed_i[20], seed_i[25:21], seed_i[31:26], seed_i[16:6]} ^ 32'd1493609598;
|
|
c_b3 = 32'b0;
|
|
c_s3 = {seed_i[23:16], seed_i[5], seed_i[6], seed_i[7], seed_i[15:8], seed_i[4:0], seed_i[31:24]} ^ 32'd3447127471;
|
|
end
|
|
else
|
|
begin
|
|
c_b1 = (((r_s1 << 13) ^ r_s1) >> 19);
|
|
c_s1 = (((r_s1 & 32'd4294967294) << 12) ^ c_b1);
|
|
c_b2 = (((r_s2 << 2) ^ r_s2) >> 25);
|
|
c_s2 = (((r_s2 & 32'd4294967288) << 4) ^ c_b2);
|
|
c_b3 = (((r_s3 << 3) ^ r_s3) >> 11);
|
|
c_s3 = (((r_s3 & 32'd4294967280) << 17) ^ c_b3);
|
|
end
|
|
end
|
|
|
|
|
|
//combinate:
|
|
always @(posedge clk or negedge resetn)
|
|
begin
|
|
if (!resetn )
|
|
begin
|
|
r_s1 <= 32'b0;
|
|
r_s2 <= 32'b0;
|
|
r_s3 <= 32'b0;
|
|
end
|
|
else if (en) //Originally else only
|
|
begin
|
|
r_s1 <= c_s1;
|
|
r_s2 <= c_s2;
|
|
r_s3 <= c_s3;
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
|
|
module LogCalc(clock, reset, enable, in_x, log_x);
|
|
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter MANTISSA_PRECISION=10;
|
|
//parameter LOG2_BIT_WIDTH = 6;
|
|
//parameter LOG2=93032639;
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
input [`BIT_WIDTH - 1:0] in_x;
|
|
output [`BIT_WIDTH - 1:0] log_x;
|
|
|
|
|
|
wire [`BIT_WIDTH - 1:0] mantissa;
|
|
|
|
reg [`BIT_WIDTH - 1:0] c_mantissa_val;
|
|
|
|
// deleted unsigned in these
|
|
reg [`BIT_WIDTH - 1:0] c_log_x;
|
|
reg [`LOG2_BIT_WIDTH - 1:0] c_indexFirstOne;
|
|
reg [`BIT_WIDTH - 1:0] c_temp_shift_x;
|
|
reg [`MANTISSA_PRECISION - 1:0] c_shifted_x;
|
|
|
|
reg [`LOG2_BIT_WIDTH - 1:0] r_indexFirstOne;
|
|
reg [`BIT_WIDTH - 1:0] log_x;
|
|
|
|
//Log_mantissa u1(c_shifted_x, clock, mantissa);
|
|
wire [31:0]blank;
|
|
assign blank = 32'b000000000000000000000000000000;
|
|
single_port_ram sram_replace0 (.clk (clock), .addr (c_shifted_x), .data (blank), .we (1'b0), .out (mantissa));
|
|
|
|
// priority encoder
|
|
//integer i;
|
|
//always @*
|
|
//begin
|
|
// c_indexFirstOne = 6'b0;
|
|
// for(i = 0; i < `BIT_WIDTH; i = i + 1)
|
|
// begin
|
|
// if(in_x[i])
|
|
// c_indexFirstOne = i;
|
|
// end
|
|
//end
|
|
|
|
// Priority encoder, loop expanded
|
|
always @(in_x)
|
|
begin
|
|
if (in_x[31]) begin
|
|
c_indexFirstOne = 6'b011111;
|
|
end
|
|
else if (in_x[30]) begin
|
|
c_indexFirstOne = 6'b011110;
|
|
end
|
|
else if (in_x[29]) begin
|
|
c_indexFirstOne = 6'b011101;
|
|
end
|
|
else if (in_x[28]) begin
|
|
c_indexFirstOne = 6'b011100;
|
|
end
|
|
else if (in_x[27]) begin
|
|
c_indexFirstOne = 6'b011011;
|
|
end
|
|
else if (in_x[26]) begin
|
|
c_indexFirstOne = 6'b011010;
|
|
end
|
|
else if (in_x[25]) begin
|
|
c_indexFirstOne = 6'b011001;
|
|
end
|
|
else if (in_x[24]) begin
|
|
c_indexFirstOne = 6'b011000;
|
|
end
|
|
else if (in_x[23]) begin
|
|
c_indexFirstOne = 6'b010111;
|
|
end
|
|
else if (in_x[22]) begin
|
|
c_indexFirstOne = 6'b010110;
|
|
end
|
|
else if (in_x[21]) begin
|
|
c_indexFirstOne = 6'b010101;
|
|
end
|
|
else if (in_x[20]) begin
|
|
c_indexFirstOne = 6'b010100;
|
|
end
|
|
else if (in_x[19]) begin
|
|
c_indexFirstOne = 6'b010011;
|
|
end
|
|
else if (in_x[18]) begin
|
|
c_indexFirstOne = 6'b010010;
|
|
end
|
|
else if (in_x[17]) begin
|
|
c_indexFirstOne = 6'b010001;
|
|
end
|
|
else if (in_x[16]) begin
|
|
c_indexFirstOne = 6'b010000;
|
|
end
|
|
else if (in_x[15]) begin
|
|
c_indexFirstOne = 6'b001111;
|
|
end
|
|
else if (in_x[14]) begin
|
|
c_indexFirstOne = 6'b001110;
|
|
end
|
|
else if (in_x[13]) begin
|
|
c_indexFirstOne = 6'b001101;
|
|
end
|
|
else if (in_x[12]) begin
|
|
c_indexFirstOne = 6'b001100;
|
|
end
|
|
else if (in_x[11]) begin
|
|
c_indexFirstOne = 6'b001011;
|
|
end
|
|
else if (in_x[10]) begin
|
|
c_indexFirstOne = 6'b001010;
|
|
end
|
|
else if (in_x[9]) begin
|
|
c_indexFirstOne = 6'b001001;
|
|
end
|
|
else if (in_x[8]) begin
|
|
c_indexFirstOne = 6'b001000;
|
|
end
|
|
else if (in_x[7]) begin
|
|
c_indexFirstOne = 6'b000111;
|
|
end
|
|
else if (in_x[6]) begin
|
|
c_indexFirstOne = 6'b000110;
|
|
end
|
|
else if (in_x[5]) begin
|
|
c_indexFirstOne = 6'b000101;
|
|
end
|
|
else if (in_x[4]) begin
|
|
c_indexFirstOne = 6'b000100;
|
|
end
|
|
else if (in_x[3]) begin
|
|
c_indexFirstOne = 6'b000011;
|
|
end
|
|
else if (in_x[2]) begin
|
|
c_indexFirstOne = 6'b000010;
|
|
end
|
|
else if (in_x[1]) begin
|
|
c_indexFirstOne = 6'b000001;
|
|
end
|
|
else if (in_x[0]) begin
|
|
c_indexFirstOne = 6'b000000;
|
|
end
|
|
else begin
|
|
c_indexFirstOne = 6'b000000;
|
|
end
|
|
end
|
|
|
|
// shift operation based on priority encoder results
|
|
|
|
//Need constant shift
|
|
wire [5:0]shifted;
|
|
assign shifted = c_indexFirstOne - `MANTISSA_PRECISION + 1;
|
|
|
|
always@(c_indexFirstOne or in_x or shifted)
|
|
begin
|
|
// c_temp_shift_x = in_x >> (c_indexFirstOne - `MANTISSA_PRECISION + 1);
|
|
if(c_indexFirstOne >= `MANTISSA_PRECISION)
|
|
begin
|
|
if(shifted == 22) begin
|
|
c_temp_shift_x = in_x >> 22;
|
|
end
|
|
else if(shifted == 21) begin
|
|
c_temp_shift_x = in_x >> 21;
|
|
end
|
|
else if(shifted == 20) begin
|
|
c_temp_shift_x = in_x >> 20;
|
|
end
|
|
else if(shifted == 19) begin
|
|
c_temp_shift_x = in_x >> 19;
|
|
end
|
|
else if(shifted == 18) begin
|
|
c_temp_shift_x = in_x >> 18;
|
|
end
|
|
else if(shifted == 17) begin
|
|
c_temp_shift_x = in_x >> 17;
|
|
end
|
|
else if(shifted == 16) begin
|
|
c_temp_shift_x = in_x >> 16;
|
|
end
|
|
else if(shifted == 15) begin
|
|
c_temp_shift_x = in_x >> 15;
|
|
end
|
|
else if(shifted == 14) begin
|
|
c_temp_shift_x = in_x >> 14;
|
|
end
|
|
else if(shifted == 13) begin
|
|
c_temp_shift_x = in_x >> 13;
|
|
end
|
|
else if(shifted == 12) begin
|
|
c_temp_shift_x = in_x >> 12;
|
|
end
|
|
else if(shifted == 11) begin
|
|
c_temp_shift_x = in_x >> 11;
|
|
end
|
|
else if(shifted == 10) begin
|
|
c_temp_shift_x = in_x >> 10;
|
|
end
|
|
else if(shifted == 9) begin
|
|
c_temp_shift_x = in_x >> 9;
|
|
end
|
|
else if(shifted == 8) begin
|
|
c_temp_shift_x = in_x >> 8;
|
|
end
|
|
else if(shifted == 7) begin
|
|
c_temp_shift_x = in_x >> 7;
|
|
end
|
|
else if(shifted == 6) begin
|
|
c_temp_shift_x = in_x >> 6;
|
|
end
|
|
else if(shifted == 5) begin
|
|
c_temp_shift_x = in_x >> 5;
|
|
end
|
|
else if(shifted == 4) begin
|
|
c_temp_shift_x = in_x >> 4;
|
|
end
|
|
else if(shifted == 3) begin
|
|
c_temp_shift_x = in_x >> 3;
|
|
end
|
|
else if(shifted == 2) begin
|
|
c_temp_shift_x = in_x >> 2;
|
|
end
|
|
else if(shifted == 1) begin
|
|
c_temp_shift_x = in_x >> 1;
|
|
end
|
|
else begin
|
|
c_temp_shift_x = in_x >> 0;
|
|
end
|
|
//Store needed bits of shifted value
|
|
c_shifted_x = c_temp_shift_x[`MANTISSA_PRECISION - 1:0];
|
|
end
|
|
else begin
|
|
c_shifted_x = in_x[`MANTISSA_PRECISION - 1:0];
|
|
c_temp_shift_x = 32'b0;
|
|
end
|
|
end
|
|
|
|
// calculate log
|
|
always@(r_indexFirstOne or mantissa)
|
|
begin
|
|
if(r_indexFirstOne >= `MANTISSA_PRECISION)
|
|
begin
|
|
c_log_x = mantissa - ((`MANTISSA_PRECISION - 1) * `LOG2) + (r_indexFirstOne * `LOG2);
|
|
end
|
|
else
|
|
begin
|
|
c_log_x = mantissa;
|
|
end
|
|
end
|
|
|
|
// latch values
|
|
always @(posedge clock)
|
|
begin
|
|
if(reset)
|
|
begin
|
|
log_x <= 0;
|
|
r_indexFirstOne <= 0;
|
|
end
|
|
else
|
|
begin
|
|
if(enable)
|
|
begin
|
|
r_indexFirstOne <= c_indexFirstOne;
|
|
log_x <= c_log_x;
|
|
end
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
|
|
module DropSpinWrapper (
|
|
clock, reset, enable,
|
|
|
|
//From Hopper Module
|
|
i_x,
|
|
i_y,
|
|
i_z,
|
|
i_ux,
|
|
i_uy,
|
|
i_uz,
|
|
i_sz,
|
|
i_sr,
|
|
i_sleftz,
|
|
i_sleftr,
|
|
i_weight,
|
|
i_layer,
|
|
i_dead,
|
|
i_hit,
|
|
|
|
|
|
//From System Register File (5 layers)- Absorber
|
|
muaFraction1, muaFraction2, muaFraction3, muaFraction4, muaFraction5,
|
|
|
|
//From System Register File - ScattererReflector
|
|
down_niOverNt_1,
|
|
down_niOverNt_2,
|
|
down_niOverNt_3,
|
|
down_niOverNt_4,
|
|
down_niOverNt_5,
|
|
up_niOverNt_1,
|
|
up_niOverNt_2,
|
|
up_niOverNt_3,
|
|
up_niOverNt_4,
|
|
up_niOverNt_5,
|
|
down_niOverNt_2_1,
|
|
down_niOverNt_2_2,
|
|
down_niOverNt_2_3,
|
|
down_niOverNt_2_4,
|
|
down_niOverNt_2_5,
|
|
up_niOverNt_2_1,
|
|
up_niOverNt_2_2,
|
|
up_niOverNt_2_3,
|
|
up_niOverNt_2_4,
|
|
up_niOverNt_2_5,
|
|
downCritAngle_0,
|
|
downCritAngle_1,
|
|
downCritAngle_2,
|
|
downCritAngle_3,
|
|
downCritAngle_4,
|
|
upCritAngle_0,
|
|
upCritAngle_1,
|
|
upCritAngle_2,
|
|
upCritAngle_3,
|
|
upCritAngle_4,
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//I/O to on-chip mem
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
data,
|
|
rdaddress, wraddress,
|
|
wren, q,
|
|
|
|
//From Memories
|
|
up_rFresnel,
|
|
down_rFresnel,
|
|
sint,
|
|
cost,
|
|
rand2,
|
|
rand3,
|
|
rand5,
|
|
//To Memories
|
|
tindex,
|
|
fresIndex,
|
|
|
|
|
|
//To DeadOrAlive Module
|
|
o_x,
|
|
o_y,
|
|
o_z,
|
|
o_ux,
|
|
o_uy,
|
|
o_uz,
|
|
o_sz,
|
|
o_sr,
|
|
o_sleftz,
|
|
o_sleftr,
|
|
o_weight,
|
|
o_layer,
|
|
o_dead,
|
|
o_hit
|
|
|
|
);
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//PARAMETERS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter LAYER_WIDTH=3;
|
|
//parameter PIPE_DEPTH = 37;
|
|
//parameter ADDR_WIDTH=16; //TODO: TBD
|
|
//parameter WORD_WIDTH=64;
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//INPUTS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
input clock, reset, enable;
|
|
|
|
//From Hopper Module
|
|
input [`BIT_WIDTH-1:0] i_x;
|
|
input [`BIT_WIDTH-1:0] i_y;
|
|
input [`BIT_WIDTH-1:0] i_z;
|
|
input [`BIT_WIDTH-1:0] i_ux;
|
|
input [`BIT_WIDTH-1:0] i_uy;
|
|
input [`BIT_WIDTH-1:0] i_uz;
|
|
input [`BIT_WIDTH-1:0] i_sz;
|
|
input [`BIT_WIDTH-1:0] i_sr;
|
|
input [`BIT_WIDTH-1:0] i_sleftz;
|
|
input [`BIT_WIDTH-1:0] i_sleftr;
|
|
input [`BIT_WIDTH-1:0] i_weight;
|
|
input [`LAYER_WIDTH-1:0] i_layer;
|
|
input i_dead;
|
|
input i_hit;
|
|
|
|
|
|
//From System Register File (5 layers)- Absorber
|
|
input [`BIT_WIDTH-1:0] muaFraction1, muaFraction2, muaFraction3, muaFraction4, muaFraction5;
|
|
|
|
//From System Register File - ScattererReflector
|
|
input [`BIT_WIDTH-1:0] down_niOverNt_1;
|
|
input [`BIT_WIDTH-1:0] down_niOverNt_2;
|
|
input [`BIT_WIDTH-1:0] down_niOverNt_3;
|
|
input [`BIT_WIDTH-1:0] down_niOverNt_4;
|
|
input [`BIT_WIDTH-1:0] down_niOverNt_5;
|
|
input [`BIT_WIDTH-1:0] up_niOverNt_1;
|
|
input [`BIT_WIDTH-1:0] up_niOverNt_2;
|
|
input [`BIT_WIDTH-1:0] up_niOverNt_3;
|
|
input [`BIT_WIDTH-1:0] up_niOverNt_4;
|
|
input [`BIT_WIDTH-1:0] up_niOverNt_5;
|
|
input [`WORD_WIDTH-1:0] down_niOverNt_2_1;
|
|
input [`WORD_WIDTH-1:0] down_niOverNt_2_2;
|
|
input [`WORD_WIDTH-1:0] down_niOverNt_2_3;
|
|
input [`WORD_WIDTH-1:0] down_niOverNt_2_4;
|
|
input [`WORD_WIDTH-1:0] down_niOverNt_2_5;
|
|
input [`WORD_WIDTH-1:0] up_niOverNt_2_1;
|
|
input [`WORD_WIDTH-1:0] up_niOverNt_2_2;
|
|
input [`WORD_WIDTH-1:0] up_niOverNt_2_3;
|
|
input [`WORD_WIDTH-1:0] up_niOverNt_2_4;
|
|
input [`WORD_WIDTH-1:0] up_niOverNt_2_5;
|
|
input [`BIT_WIDTH-1:0] downCritAngle_0;
|
|
input [`BIT_WIDTH-1:0] downCritAngle_1;
|
|
input [`BIT_WIDTH-1:0] downCritAngle_2;
|
|
input [`BIT_WIDTH-1:0] downCritAngle_3;
|
|
input [`BIT_WIDTH-1:0] downCritAngle_4;
|
|
input [`BIT_WIDTH-1:0] upCritAngle_0;
|
|
input [`BIT_WIDTH-1:0] upCritAngle_1;
|
|
input [`BIT_WIDTH-1:0] upCritAngle_2;
|
|
input [`BIT_WIDTH-1:0] upCritAngle_3;
|
|
input [`BIT_WIDTH-1:0] upCritAngle_4;
|
|
|
|
//Generated by random number generators controlled by skeleton
|
|
output [12:0] tindex;
|
|
output [9:0] fresIndex;
|
|
|
|
|
|
input [31:0] rand2;
|
|
input [31:0] rand3;
|
|
input [31:0] rand5;
|
|
input [31:0] sint;
|
|
input [31:0] cost;
|
|
input [31:0] up_rFresnel;
|
|
input [31:0] down_rFresnel;
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//OUTPUTS
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//To DeadOrAlive Module
|
|
output [`BIT_WIDTH-1:0] o_x;
|
|
output [`BIT_WIDTH-1:0] o_y;
|
|
output [`BIT_WIDTH-1:0] o_z;
|
|
output [`BIT_WIDTH-1:0] o_ux;
|
|
output [`BIT_WIDTH-1:0] o_uy;
|
|
output [`BIT_WIDTH-1:0] o_uz;
|
|
output [`BIT_WIDTH-1:0] o_sz;
|
|
output [`BIT_WIDTH-1:0] o_sr;
|
|
output [`BIT_WIDTH-1:0] o_sleftz;
|
|
output [`BIT_WIDTH-1:0] o_sleftr;
|
|
output [`BIT_WIDTH-1:0] o_weight;
|
|
output [`LAYER_WIDTH-1:0] o_layer;
|
|
output o_dead;
|
|
output o_hit;
|
|
|
|
wire [`BIT_WIDTH-1:0] o_x;
|
|
wire [`BIT_WIDTH-1:0] o_y;
|
|
wire [`BIT_WIDTH-1:0] o_z;
|
|
reg [`BIT_WIDTH-1:0] o_ux;
|
|
reg [`BIT_WIDTH-1:0] o_uy;
|
|
reg [`BIT_WIDTH-1:0] o_uz;
|
|
wire [`BIT_WIDTH-1:0] o_sz;
|
|
wire [`BIT_WIDTH-1:0] o_sr;
|
|
wire [`BIT_WIDTH-1:0] o_sleftz;
|
|
wire [`BIT_WIDTH-1:0] o_sleftr;
|
|
wire [`BIT_WIDTH-1:0] o_weight;
|
|
reg [`LAYER_WIDTH-1:0] o_layer;
|
|
reg o_dead;
|
|
wire o_hit;
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//I/O to on-chip mem
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
output [`WORD_WIDTH-1:0] data;
|
|
output [`ADDR_WIDTH-1:0] rdaddress, wraddress;
|
|
output wren;
|
|
input [`WORD_WIDTH-1:0] q;
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//Generate SHARED REGISTER PIPELINE
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//WIRES FOR CONNECTING REGISTERS
|
|
//wire [`BIT_WIDTH-1:0] x [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] y [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] z [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] ux [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] uy [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] uz [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] sz [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] sr [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] sleftz [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] sleftr [PIPE_DEPTH:0];
|
|
//wire [`BIT_WIDTH-1:0] weight [PIPE_DEPTH:0];
|
|
//wire [LAYER_WIDTH-1:0] layer [PIPE_DEPTH:0];
|
|
//wire dead [PIPE_DEPTH:0];
|
|
//wire hit [PIPE_DEPTH:0];
|
|
|
|
//WIRES FOR CONNECTING REGISTERS
|
|
//wire [32-1:0] x [37:0];
|
|
wire [32-1:0] x__0;
|
|
wire [32-1:0] x__1;
|
|
wire [32-1:0] x__2;
|
|
wire [32-1:0] x__3;
|
|
wire [32-1:0] x__4;
|
|
wire [32-1:0] x__5;
|
|
wire [32-1:0] x__6;
|
|
wire [32-1:0] x__7;
|
|
wire [32-1:0] x__8;
|
|
wire [32-1:0] x__9;
|
|
wire [32-1:0] x__10;
|
|
wire [32-1:0] x__11;
|
|
wire [32-1:0] x__12;
|
|
wire [32-1:0] x__13;
|
|
wire [32-1:0] x__14;
|
|
wire [32-1:0] x__15;
|
|
wire [32-1:0] x__16;
|
|
wire [32-1:0] x__17;
|
|
wire [32-1:0] x__18;
|
|
wire [32-1:0] x__19;
|
|
wire [32-1:0] x__20;
|
|
wire [32-1:0] x__21;
|
|
wire [32-1:0] x__22;
|
|
wire [32-1:0] x__23;
|
|
wire [32-1:0] x__24;
|
|
wire [32-1:0] x__25;
|
|
wire [32-1:0] x__26;
|
|
wire [32-1:0] x__27;
|
|
wire [32-1:0] x__28;
|
|
wire [32-1:0] x__29;
|
|
wire [32-1:0] x__30;
|
|
wire [32-1:0] x__31;
|
|
wire [32-1:0] x__32;
|
|
wire [32-1:0] x__33;
|
|
wire [32-1:0] x__34;
|
|
wire [32-1:0] x__35;
|
|
wire [32-1:0] x__36;
|
|
wire [32-1:0] x__37;
|
|
|
|
|
|
|
|
|
|
//wire [32-1:0] y [37:0];
|
|
wire [32-1:0] y__0;
|
|
wire [32-1:0] y__1;
|
|
wire [32-1:0] y__2;
|
|
wire [32-1:0] y__3;
|
|
wire [32-1:0] y__4;
|
|
wire [32-1:0] y__5;
|
|
wire [32-1:0] y__6;
|
|
wire [32-1:0] y__7;
|
|
wire [32-1:0] y__8;
|
|
wire [32-1:0] y__9;
|
|
wire [32-1:0] y__10;
|
|
wire [32-1:0] y__11;
|
|
wire [32-1:0] y__12;
|
|
wire [32-1:0] y__13;
|
|
wire [32-1:0] y__14;
|
|
wire [32-1:0] y__15;
|
|
wire [32-1:0] y__16;
|
|
wire [32-1:0] y__17;
|
|
wire [32-1:0] y__18;
|
|
wire [32-1:0] y__19;
|
|
wire [32-1:0] y__20;
|
|
wire [32-1:0] y__21;
|
|
wire [32-1:0] y__22;
|
|
wire [32-1:0] y__23;
|
|
wire [32-1:0] y__24;
|
|
wire [32-1:0] y__25;
|
|
wire [32-1:0] y__26;
|
|
wire [32-1:0] y__27;
|
|
wire [32-1:0] y__28;
|
|
wire [32-1:0] y__29;
|
|
wire [32-1:0] y__30;
|
|
wire [32-1:0] y__31;
|
|
wire [32-1:0] y__32;
|
|
wire [32-1:0] y__33;
|
|
wire [32-1:0] y__34;
|
|
wire [32-1:0] y__35;
|
|
wire [32-1:0] y__36;
|
|
wire [32-1:0] y__37;
|
|
|
|
|
|
|
|
//wire [32-1:0] z [37:0];
|
|
wire [32-1:0] z__0;
|
|
wire [32-1:0] z__1;
|
|
wire [32-1:0] z__2;
|
|
wire [32-1:0] z__3;
|
|
wire [32-1:0] z__4;
|
|
wire [32-1:0] z__5;
|
|
wire [32-1:0] z__6;
|
|
wire [32-1:0] z__7;
|
|
wire [32-1:0] z__8;
|
|
wire [32-1:0] z__9;
|
|
wire [32-1:0] z__10;
|
|
wire [32-1:0] z__11;
|
|
wire [32-1:0] z__12;
|
|
wire [32-1:0] z__13;
|
|
wire [32-1:0] z__14;
|
|
wire [32-1:0] z__15;
|
|
wire [32-1:0] z__16;
|
|
wire [32-1:0] z__17;
|
|
wire [32-1:0] z__18;
|
|
wire [32-1:0] z__19;
|
|
wire [32-1:0] z__20;
|
|
wire [32-1:0] z__21;
|
|
wire [32-1:0] z__22;
|
|
wire [32-1:0] z__23;
|
|
wire [32-1:0] z__24;
|
|
wire [32-1:0] z__25;
|
|
wire [32-1:0] z__26;
|
|
wire [32-1:0] z__27;
|
|
wire [32-1:0] z__28;
|
|
wire [32-1:0] z__29;
|
|
wire [32-1:0] z__30;
|
|
wire [32-1:0] z__31;
|
|
wire [32-1:0] z__32;
|
|
wire [32-1:0] z__33;
|
|
wire [32-1:0] z__34;
|
|
wire [32-1:0] z__35;
|
|
wire [32-1:0] z__36;
|
|
wire [32-1:0] z__37;
|
|
|
|
|
|
//wire [32-1:0] ux [37:0];
|
|
wire [32-1:0] ux__0;
|
|
wire [32-1:0] ux__1;
|
|
wire [32-1:0] ux__2;
|
|
wire [32-1:0] ux__3;
|
|
wire [32-1:0] ux__4;
|
|
wire [32-1:0] ux__5;
|
|
wire [32-1:0] ux__6;
|
|
wire [32-1:0] ux__7;
|
|
wire [32-1:0] ux__8;
|
|
wire [32-1:0] ux__9;
|
|
wire [32-1:0] ux__10;
|
|
wire [32-1:0] ux__11;
|
|
wire [32-1:0] ux__12;
|
|
wire [32-1:0] ux__13;
|
|
wire [32-1:0] ux__14;
|
|
wire [32-1:0] ux__15;
|
|
wire [32-1:0] ux__16;
|
|
wire [32-1:0] ux__17;
|
|
wire [32-1:0] ux__18;
|
|
wire [32-1:0] ux__19;
|
|
wire [32-1:0] ux__20;
|
|
wire [32-1:0] ux__21;
|
|
wire [32-1:0] ux__22;
|
|
wire [32-1:0] ux__23;
|
|
wire [32-1:0] ux__24;
|
|
wire [32-1:0] ux__25;
|
|
wire [32-1:0] ux__26;
|
|
wire [32-1:0] ux__27;
|
|
wire [32-1:0] ux__28;
|
|
wire [32-1:0] ux__29;
|
|
wire [32-1:0] ux__30;
|
|
wire [32-1:0] ux__31;
|
|
wire [32-1:0] ux__32;
|
|
wire [32-1:0] ux__33;
|
|
wire [32-1:0] ux__34;
|
|
wire [32-1:0] ux__35;
|
|
wire [32-1:0] ux__36;
|
|
wire [32-1:0] ux__37;
|
|
|
|
|
|
|
|
//wire [32-1:0] uy [37:0];
|
|
wire [32-1:0] uy__0;
|
|
wire [32-1:0] uy__1;
|
|
wire [32-1:0] uy__2;
|
|
wire [32-1:0] uy__3;
|
|
wire [32-1:0] uy__4;
|
|
wire [32-1:0] uy__5;
|
|
wire [32-1:0] uy__6;
|
|
wire [32-1:0] uy__7;
|
|
wire [32-1:0] uy__8;
|
|
wire [32-1:0] uy__9;
|
|
wire [32-1:0] uy__10;
|
|
wire [32-1:0] uy__11;
|
|
wire [32-1:0] uy__12;
|
|
wire [32-1:0] uy__13;
|
|
wire [32-1:0] uy__14;
|
|
wire [32-1:0] uy__15;
|
|
wire [32-1:0] uy__16;
|
|
wire [32-1:0] uy__17;
|
|
wire [32-1:0] uy__18;
|
|
wire [32-1:0] uy__19;
|
|
wire [32-1:0] uy__20;
|
|
wire [32-1:0] uy__21;
|
|
wire [32-1:0] uy__22;
|
|
wire [32-1:0] uy__23;
|
|
wire [32-1:0] uy__24;
|
|
wire [32-1:0] uy__25;
|
|
wire [32-1:0] uy__26;
|
|
wire [32-1:0] uy__27;
|
|
wire [32-1:0] uy__28;
|
|
wire [32-1:0] uy__29;
|
|
wire [32-1:0] uy__30;
|
|
wire [32-1:0] uy__31;
|
|
wire [32-1:0] uy__32;
|
|
wire [32-1:0] uy__33;
|
|
wire [32-1:0] uy__34;
|
|
wire [32-1:0] uy__35;
|
|
wire [32-1:0] uy__36;
|
|
wire [32-1:0] uy__37;
|
|
|
|
|
|
//wire [32-1:0] uz [37:0];
|
|
wire [32-1:0] uz__0;
|
|
wire [32-1:0] uz__1;
|
|
wire [32-1:0] uz__2;
|
|
wire [32-1:0] uz__3;
|
|
wire [32-1:0] uz__4;
|
|
wire [32-1:0] uz__5;
|
|
wire [32-1:0] uz__6;
|
|
wire [32-1:0] uz__7;
|
|
wire [32-1:0] uz__8;
|
|
wire [32-1:0] uz__9;
|
|
wire [32-1:0] uz__10;
|
|
wire [32-1:0] uz__11;
|
|
wire [32-1:0] uz__12;
|
|
wire [32-1:0] uz__13;
|
|
wire [32-1:0] uz__14;
|
|
wire [32-1:0] uz__15;
|
|
wire [32-1:0] uz__16;
|
|
wire [32-1:0] uz__17;
|
|
wire [32-1:0] uz__18;
|
|
wire [32-1:0] uz__19;
|
|
wire [32-1:0] uz__20;
|
|
wire [32-1:0] uz__21;
|
|
wire [32-1:0] uz__22;
|
|
wire [32-1:0] uz__23;
|
|
wire [32-1:0] uz__24;
|
|
wire [32-1:0] uz__25;
|
|
wire [32-1:0] uz__26;
|
|
wire [32-1:0] uz__27;
|
|
wire [32-1:0] uz__28;
|
|
wire [32-1:0] uz__29;
|
|
wire [32-1:0] uz__30;
|
|
wire [32-1:0] uz__31;
|
|
wire [32-1:0] uz__32;
|
|
wire [32-1:0] uz__33;
|
|
wire [32-1:0] uz__34;
|
|
wire [32-1:0] uz__35;
|
|
wire [32-1:0] uz__36;
|
|
wire [32-1:0] uz__37;
|
|
|
|
|
|
//wire [32-1:0] sz [37:0];
|
|
wire [32-1:0] sz__0;
|
|
wire [32-1:0] sz__1;
|
|
wire [32-1:0] sz__2;
|
|
wire [32-1:0] sz__3;
|
|
wire [32-1:0] sz__4;
|
|
wire [32-1:0] sz__5;
|
|
wire [32-1:0] sz__6;
|
|
wire [32-1:0] sz__7;
|
|
wire [32-1:0] sz__8;
|
|
wire [32-1:0] sz__9;
|
|
wire [32-1:0] sz__10;
|
|
wire [32-1:0] sz__11;
|
|
wire [32-1:0] sz__12;
|
|
wire [32-1:0] sz__13;
|
|
wire [32-1:0] sz__14;
|
|
wire [32-1:0] sz__15;
|
|
wire [32-1:0] sz__16;
|
|
wire [32-1:0] sz__17;
|
|
wire [32-1:0] sz__18;
|
|
wire [32-1:0] sz__19;
|
|
wire [32-1:0] sz__20;
|
|
wire [32-1:0] sz__21;
|
|
wire [32-1:0] sz__22;
|
|
wire [32-1:0] sz__23;
|
|
wire [32-1:0] sz__24;
|
|
wire [32-1:0] sz__25;
|
|
wire [32-1:0] sz__26;
|
|
wire [32-1:0] sz__27;
|
|
wire [32-1:0] sz__28;
|
|
wire [32-1:0] sz__29;
|
|
wire [32-1:0] sz__30;
|
|
wire [32-1:0] sz__31;
|
|
wire [32-1:0] sz__32;
|
|
wire [32-1:0] sz__33;
|
|
wire [32-1:0] sz__34;
|
|
wire [32-1:0] sz__35;
|
|
wire [32-1:0] sz__36;
|
|
wire [32-1:0] sz__37;
|
|
|
|
|
|
//wire [32-1:0] sr [37:0];
|
|
wire [32-1:0] sr__0;
|
|
wire [32-1:0] sr__1;
|
|
wire [32-1:0] sr__2;
|
|
wire [32-1:0] sr__3;
|
|
wire [32-1:0] sr__4;
|
|
wire [32-1:0] sr__5;
|
|
wire [32-1:0] sr__6;
|
|
wire [32-1:0] sr__7;
|
|
wire [32-1:0] sr__8;
|
|
wire [32-1:0] sr__9;
|
|
wire [32-1:0] sr__10;
|
|
wire [32-1:0] sr__11;
|
|
wire [32-1:0] sr__12;
|
|
wire [32-1:0] sr__13;
|
|
wire [32-1:0] sr__14;
|
|
wire [32-1:0] sr__15;
|
|
wire [32-1:0] sr__16;
|
|
wire [32-1:0] sr__17;
|
|
wire [32-1:0] sr__18;
|
|
wire [32-1:0] sr__19;
|
|
wire [32-1:0] sr__20;
|
|
wire [32-1:0] sr__21;
|
|
wire [32-1:0] sr__22;
|
|
wire [32-1:0] sr__23;
|
|
wire [32-1:0] sr__24;
|
|
wire [32-1:0] sr__25;
|
|
wire [32-1:0] sr__26;
|
|
wire [32-1:0] sr__27;
|
|
wire [32-1:0] sr__28;
|
|
wire [32-1:0] sr__29;
|
|
wire [32-1:0] sr__30;
|
|
wire [32-1:0] sr__31;
|
|
wire [32-1:0] sr__32;
|
|
wire [32-1:0] sr__33;
|
|
wire [32-1:0] sr__34;
|
|
wire [32-1:0] sr__35;
|
|
wire [32-1:0] sr__36;
|
|
wire [32-1:0] sr__37;
|
|
|
|
|
|
|
|
//wire [32-1:0] sleftz [37:0];
|
|
wire [32-1:0] sleftz__0;
|
|
wire [32-1:0] sleftz__1;
|
|
wire [32-1:0] sleftz__2;
|
|
wire [32-1:0] sleftz__3;
|
|
wire [32-1:0] sleftz__4;
|
|
wire [32-1:0] sleftz__5;
|
|
wire [32-1:0] sleftz__6;
|
|
wire [32-1:0] sleftz__7;
|
|
wire [32-1:0] sleftz__8;
|
|
wire [32-1:0] sleftz__9;
|
|
wire [32-1:0] sleftz__10;
|
|
wire [32-1:0] sleftz__11;
|
|
wire [32-1:0] sleftz__12;
|
|
wire [32-1:0] sleftz__13;
|
|
wire [32-1:0] sleftz__14;
|
|
wire [32-1:0] sleftz__15;
|
|
wire [32-1:0] sleftz__16;
|
|
wire [32-1:0] sleftz__17;
|
|
wire [32-1:0] sleftz__18;
|
|
wire [32-1:0] sleftz__19;
|
|
wire [32-1:0] sleftz__20;
|
|
wire [32-1:0] sleftz__21;
|
|
wire [32-1:0] sleftz__22;
|
|
wire [32-1:0] sleftz__23;
|
|
wire [32-1:0] sleftz__24;
|
|
wire [32-1:0] sleftz__25;
|
|
wire [32-1:0] sleftz__26;
|
|
wire [32-1:0] sleftz__27;
|
|
wire [32-1:0] sleftz__28;
|
|
wire [32-1:0] sleftz__29;
|
|
wire [32-1:0] sleftz__30;
|
|
wire [32-1:0] sleftz__31;
|
|
wire [32-1:0] sleftz__32;
|
|
wire [32-1:0] sleftz__33;
|
|
wire [32-1:0] sleftz__34;
|
|
wire [32-1:0] sleftz__35;
|
|
wire [32-1:0] sleftz__36;
|
|
wire [32-1:0] sleftz__37;
|
|
|
|
|
|
//wire [32-1:0] sleftr [37:0];
|
|
wire [32-1:0] sleftr__0;
|
|
wire [32-1:0] sleftr__1;
|
|
wire [32-1:0] sleftr__2;
|
|
wire [32-1:0] sleftr__3;
|
|
wire [32-1:0] sleftr__4;
|
|
wire [32-1:0] sleftr__5;
|
|
wire [32-1:0] sleftr__6;
|
|
wire [32-1:0] sleftr__7;
|
|
wire [32-1:0] sleftr__8;
|
|
wire [32-1:0] sleftr__9;
|
|
wire [32-1:0] sleftr__10;
|
|
wire [32-1:0] sleftr__11;
|
|
wire [32-1:0] sleftr__12;
|
|
wire [32-1:0] sleftr__13;
|
|
wire [32-1:0] sleftr__14;
|
|
wire [32-1:0] sleftr__15;
|
|
wire [32-1:0] sleftr__16;
|
|
wire [32-1:0] sleftr__17;
|
|
wire [32-1:0] sleftr__18;
|
|
wire [32-1:0] sleftr__19;
|
|
wire [32-1:0] sleftr__20;
|
|
wire [32-1:0] sleftr__21;
|
|
wire [32-1:0] sleftr__22;
|
|
wire [32-1:0] sleftr__23;
|
|
wire [32-1:0] sleftr__24;
|
|
wire [32-1:0] sleftr__25;
|
|
wire [32-1:0] sleftr__26;
|
|
wire [32-1:0] sleftr__27;
|
|
wire [32-1:0] sleftr__28;
|
|
wire [32-1:0] sleftr__29;
|
|
wire [32-1:0] sleftr__30;
|
|
wire [32-1:0] sleftr__31;
|
|
wire [32-1:0] sleftr__32;
|
|
wire [32-1:0] sleftr__33;
|
|
wire [32-1:0] sleftr__34;
|
|
wire [32-1:0] sleftr__35;
|
|
wire [32-1:0] sleftr__36;
|
|
wire [32-1:0] sleftr__37;
|
|
|
|
|
|
//wire [32-1:0] weight [37:0];
|
|
wire [32-1:0] weight__0;
|
|
wire [32-1:0] weight__1;
|
|
wire [32-1:0] weight__2;
|
|
wire [32-1:0] weight__3;
|
|
wire [32-1:0] weight__4;
|
|
wire [32-1:0] weight__5;
|
|
wire [32-1:0] weight__6;
|
|
wire [32-1:0] weight__7;
|
|
wire [32-1:0] weight__8;
|
|
wire [32-1:0] weight__9;
|
|
wire [32-1:0] weight__10;
|
|
wire [32-1:0] weight__11;
|
|
wire [32-1:0] weight__12;
|
|
wire [32-1:0] weight__13;
|
|
wire [32-1:0] weight__14;
|
|
wire [32-1:0] weight__15;
|
|
wire [32-1:0] weight__16;
|
|
wire [32-1:0] weight__17;
|
|
wire [32-1:0] weight__18;
|
|
wire [32-1:0] weight__19;
|
|
wire [32-1:0] weight__20;
|
|
wire [32-1:0] weight__21;
|
|
wire [32-1:0] weight__22;
|
|
wire [32-1:0] weight__23;
|
|
wire [32-1:0] weight__24;
|
|
wire [32-1:0] weight__25;
|
|
wire [32-1:0] weight__26;
|
|
wire [32-1:0] weight__27;
|
|
wire [32-1:0] weight__28;
|
|
wire [32-1:0] weight__29;
|
|
wire [32-1:0] weight__30;
|
|
wire [32-1:0] weight__31;
|
|
wire [32-1:0] weight__32;
|
|
wire [32-1:0] weight__33;
|
|
wire [32-1:0] weight__34;
|
|
wire [32-1:0] weight__35;
|
|
wire [32-1:0] weight__36;
|
|
wire [32-1:0] weight__37;
|
|
|
|
|
|
//wire [3-1:0] layer [37:0];
|
|
wire [3-1:0] layer__0;
|
|
wire [3-1:0] layer__1;
|
|
wire [3-1:0] layer__2;
|
|
wire [3-1:0] layer__3;
|
|
wire [3-1:0] layer__4;
|
|
wire [3-1:0] layer__5;
|
|
wire [3-1:0] layer__6;
|
|
wire [3-1:0] layer__7;
|
|
wire [3-1:0] layer__8;
|
|
wire [3-1:0] layer__9;
|
|
wire [3-1:0] layer__10;
|
|
wire [3-1:0] layer__11;
|
|
wire [3-1:0] layer__12;
|
|
wire [3-1:0] layer__13;
|
|
wire [3-1:0] layer__14;
|
|
wire [3-1:0] layer__15;
|
|
wire [3-1:0] layer__16;
|
|
wire [3-1:0] layer__17;
|
|
wire [3-1:0] layer__18;
|
|
wire [3-1:0] layer__19;
|
|
wire [3-1:0] layer__20;
|
|
wire [3-1:0] layer__21;
|
|
wire [3-1:0] layer__22;
|
|
wire [3-1:0] layer__23;
|
|
wire [3-1:0] layer__24;
|
|
wire [3-1:0] layer__25;
|
|
wire [3-1:0] layer__26;
|
|
wire [3-1:0] layer__27;
|
|
wire [3-1:0] layer__28;
|
|
wire [3-1:0] layer__29;
|
|
wire [3-1:0] layer__30;
|
|
wire [3-1:0] layer__31;
|
|
wire [3-1:0] layer__32;
|
|
wire [3-1:0] layer__33;
|
|
wire [3-1:0] layer__34;
|
|
wire [3-1:0] layer__35;
|
|
wire [3-1:0] layer__36;
|
|
wire [3-1:0] layer__37;
|
|
|
|
//wire [37:0] dead;
|
|
wire dead__0;
|
|
wire dead__1;
|
|
wire dead__2;
|
|
wire dead__3;
|
|
wire dead__4;
|
|
wire dead__5;
|
|
wire dead__6;
|
|
wire dead__7;
|
|
wire dead__8;
|
|
wire dead__9;
|
|
wire dead__10;
|
|
wire dead__11;
|
|
wire dead__12;
|
|
wire dead__13;
|
|
wire dead__14;
|
|
wire dead__15;
|
|
wire dead__16;
|
|
wire dead__17;
|
|
wire dead__18;
|
|
wire dead__19;
|
|
wire dead__20;
|
|
wire dead__21;
|
|
wire dead__22;
|
|
wire dead__23;
|
|
wire dead__24;
|
|
wire dead__25;
|
|
wire dead__26;
|
|
wire dead__27;
|
|
wire dead__28;
|
|
wire dead__29;
|
|
wire dead__30;
|
|
wire dead__31;
|
|
wire dead__32;
|
|
wire dead__33;
|
|
wire dead__34;
|
|
wire dead__35;
|
|
wire dead__36;
|
|
wire dead__37;
|
|
|
|
|
|
//wire [37:0] hit ;
|
|
|
|
wire hit__0;
|
|
wire hit__1;
|
|
wire hit__2;
|
|
wire hit__3;
|
|
wire hit__4;
|
|
wire hit__5;
|
|
wire hit__6;
|
|
wire hit__7;
|
|
wire hit__8;
|
|
wire hit__9;
|
|
wire hit__10;
|
|
wire hit__11;
|
|
wire hit__12;
|
|
wire hit__13;
|
|
wire hit__14;
|
|
wire hit__15;
|
|
wire hit__16;
|
|
wire hit__17;
|
|
wire hit__18;
|
|
wire hit__19;
|
|
wire hit__20;
|
|
wire hit__21;
|
|
wire hit__22;
|
|
wire hit__23;
|
|
wire hit__24;
|
|
wire hit__25;
|
|
wire hit__26;
|
|
wire hit__27;
|
|
wire hit__28;
|
|
wire hit__29;
|
|
wire hit__30;
|
|
wire hit__31;
|
|
wire hit__32;
|
|
wire hit__33;
|
|
wire hit__34;
|
|
wire hit__35;
|
|
wire hit__36;
|
|
wire hit__37;
|
|
|
|
|
|
//ASSIGNMENTS FROM INPUTS TO PIPE
|
|
assign x__0 = i_x;
|
|
assign y__0 = i_y;
|
|
assign z__0 = i_z;
|
|
assign ux__0 = i_ux;
|
|
assign uy__0 = i_uy;
|
|
assign uz__0 = i_uz;
|
|
assign sz__0 = i_sz;
|
|
assign sr__0 = i_sr;
|
|
assign sleftz__0 = i_sleftz;
|
|
assign sleftr__0 = i_sleftr;
|
|
assign weight__0 = i_weight;
|
|
assign layer__0 = i_layer;
|
|
assign dead__0 = i_dead;
|
|
assign hit__0 = i_hit;
|
|
|
|
//ASSIGNMENTS FROM PIPE TO OUTPUT
|
|
//TODO: Assign outputs from the correct module
|
|
assign o_x =x__37;
|
|
assign o_y =y__37;
|
|
assign o_z =z__37;
|
|
//assign o_ux =ux[PIPE_DEPTH]; Assigned by deadOrAliveMux
|
|
//assign o_uy =uy[PIPE_DEPTH]; Assigned by deadOrAliveMux
|
|
//assign o_uz =uz[PIPE_DEPTH]; Assigned by deadOrAliveMux
|
|
assign o_sz =sz__37;
|
|
assign o_sr =sr__37;
|
|
assign o_sleftz =sleftz__37;
|
|
assign o_sleftr =sleftr__37;
|
|
//assign o_weight =weight[PIPE_DEPTH]; Assigned by absorber module (below)
|
|
//assign o_layer =layer[PIPE_DEPTH]; Assigned by deadOrAliveMux
|
|
//assign o_dead =dead[PIPE_DEPTH]; Assigned by deadOrAliveMux
|
|
assign o_hit =hit__37;
|
|
|
|
|
|
//GENERATE PIPELINE
|
|
//genvar i;
|
|
//generate
|
|
// for(i=PIPE_DEPTH; i>0; i=i-1) begin: regPipe
|
|
// case(i)
|
|
//
|
|
// default:
|
|
// PhotonBlock5 photon(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_x(x[i-1]),
|
|
// .i_y(y[i-1]),
|
|
// .i_z(z[i-1]),
|
|
// .i_ux(ux[i-1]),
|
|
// .i_uy(uy[i-1]),
|
|
// .i_uz(uz[i-1]),
|
|
// .i_sz(sz[i-1]),
|
|
// .i_sr(sr[i-1]),
|
|
// .i_sleftz(sleftz[i-1]),
|
|
// .i_sleftr(sleftr[i-1]),
|
|
// .i_weight(weight[i-1]),
|
|
// .i_layer(layer[i-1]),
|
|
// .i_dead(dead[i-1]),
|
|
// .i_hit(hit[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_x(x[i]),
|
|
// .o_y(y[i]),
|
|
// .o_z(z[i]),
|
|
// .o_ux(ux[i]),
|
|
// .o_uy(uy[i]),
|
|
// .o_uz(uz[i]),
|
|
// .o_sz(sz[i]),
|
|
// .o_sr(sr[i]),
|
|
// .o_sleftz(sleftz[i]),
|
|
// .o_sleftr(sleftr[i]),
|
|
// .o_weight(weight[i]),
|
|
// .o_layer(layer[i]),
|
|
// .o_dead(dead[i]),
|
|
// .o_hit(hit[i])
|
|
// );
|
|
// endcase
|
|
// end
|
|
//endgenerate
|
|
|
|
PhotonBlock5 photon37(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__36),
|
|
.i_y(y__36),
|
|
.i_z(z__36),
|
|
.i_ux(ux__36),
|
|
.i_uy(uy__36),
|
|
.i_uz(uz__36),
|
|
.i_sz(sz__36),
|
|
.i_sr(sr__36),
|
|
.i_sleftz(sleftz__36),
|
|
.i_sleftr(sleftr__36),
|
|
.i_weight(weight__36),
|
|
.i_layer(layer__36),
|
|
.i_dead(dead__36),
|
|
.i_hit(hit__36),
|
|
//Outputs
|
|
.o_x(x__37),
|
|
.o_y(y__37),
|
|
.o_z(z__37),
|
|
.o_ux(ux__37),
|
|
.o_uy(uy__37),
|
|
.o_uz(uz__37),
|
|
.o_sz(sz__37),
|
|
.o_sr(sr__37),
|
|
.o_sleftz(sleftz__37),
|
|
.o_sleftr(sleftr__37),
|
|
.o_weight(weight__37),
|
|
.o_layer(layer__37),
|
|
.o_dead(dead__37),
|
|
.o_hit(hit__37)
|
|
);
|
|
PhotonBlock5 photon36(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__35),
|
|
.i_y(y__35),
|
|
.i_z(z__35),
|
|
.i_ux(ux__35),
|
|
.i_uy(uy__35),
|
|
.i_uz(uz__35),
|
|
.i_sz(sz__35),
|
|
.i_sr(sr__35),
|
|
.i_sleftz(sleftz__35),
|
|
.i_sleftr(sleftr__35),
|
|
.i_weight(weight__35),
|
|
.i_layer(layer__35),
|
|
.i_dead(dead__35),
|
|
.i_hit(hit__35),
|
|
//Outputs
|
|
.o_x(x__36),
|
|
.o_y(y__36),
|
|
.o_z(z__36),
|
|
.o_ux(ux__36),
|
|
.o_uy(uy__36),
|
|
.o_uz(uz__36),
|
|
.o_sz(sz__36),
|
|
.o_sr(sr__36),
|
|
.o_sleftz(sleftz__36),
|
|
.o_sleftr(sleftr__36),
|
|
.o_weight(weight__36),
|
|
.o_layer(layer__36),
|
|
.o_dead(dead__36),
|
|
.o_hit(hit__36)
|
|
);
|
|
PhotonBlock5 photon35(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__34),
|
|
.i_y(y__34),
|
|
.i_z(z__34),
|
|
.i_ux(ux__34),
|
|
.i_uy(uy__34),
|
|
.i_uz(uz__34),
|
|
.i_sz(sz__34),
|
|
.i_sr(sr__34),
|
|
.i_sleftz(sleftz__34),
|
|
.i_sleftr(sleftr__34),
|
|
.i_weight(weight__34),
|
|
.i_layer(layer__34),
|
|
.i_dead(dead__34),
|
|
.i_hit(hit__34),
|
|
//Outputs
|
|
.o_x(x__35),
|
|
.o_y(y__35),
|
|
.o_z(z__35),
|
|
.o_ux(ux__35),
|
|
.o_uy(uy__35),
|
|
.o_uz(uz__35),
|
|
.o_sz(sz__35),
|
|
.o_sr(sr__35),
|
|
.o_sleftz(sleftz__35),
|
|
.o_sleftr(sleftr__35),
|
|
.o_weight(weight__35),
|
|
.o_layer(layer__35),
|
|
.o_dead(dead__35),
|
|
.o_hit(hit__35)
|
|
);
|
|
PhotonBlock5 photon34(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__33),
|
|
.i_y(y__33),
|
|
.i_z(z__33),
|
|
.i_ux(ux__33),
|
|
.i_uy(uy__33),
|
|
.i_uz(uz__33),
|
|
.i_sz(sz__33),
|
|
.i_sr(sr__33),
|
|
.i_sleftz(sleftz__33),
|
|
.i_sleftr(sleftr__33),
|
|
.i_weight(weight__33),
|
|
.i_layer(layer__33),
|
|
.i_dead(dead__33),
|
|
.i_hit(hit__33),
|
|
//Outputs
|
|
.o_x(x__34),
|
|
.o_y(y__34),
|
|
.o_z(z__34),
|
|
.o_ux(ux__34),
|
|
.o_uy(uy__34),
|
|
.o_uz(uz__34),
|
|
.o_sz(sz__34),
|
|
.o_sr(sr__34),
|
|
.o_sleftz(sleftz__34),
|
|
.o_sleftr(sleftr__34),
|
|
.o_weight(weight__34),
|
|
.o_layer(layer__34),
|
|
.o_dead(dead__34),
|
|
.o_hit(hit__34)
|
|
);
|
|
PhotonBlock5 photon33(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__32),
|
|
.i_y(y__32),
|
|
.i_z(z__32),
|
|
.i_ux(ux__32),
|
|
.i_uy(uy__32),
|
|
.i_uz(uz__32),
|
|
.i_sz(sz__32),
|
|
.i_sr(sr__32),
|
|
.i_sleftz(sleftz__32),
|
|
.i_sleftr(sleftr__32),
|
|
.i_weight(weight__32),
|
|
.i_layer(layer__32),
|
|
.i_dead(dead__32),
|
|
.i_hit(hit__32),
|
|
//Outputs
|
|
.o_x(x__33),
|
|
.o_y(y__33),
|
|
.o_z(z__33),
|
|
.o_ux(ux__33),
|
|
.o_uy(uy__33),
|
|
.o_uz(uz__33),
|
|
.o_sz(sz__33),
|
|
.o_sr(sr__33),
|
|
.o_sleftz(sleftz__33),
|
|
.o_sleftr(sleftr__33),
|
|
.o_weight(weight__33),
|
|
.o_layer(layer__33),
|
|
.o_dead(dead__33),
|
|
.o_hit(hit__33)
|
|
);
|
|
PhotonBlock5 photon32(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__31),
|
|
.i_y(y__31),
|
|
.i_z(z__31),
|
|
.i_ux(ux__31),
|
|
.i_uy(uy__31),
|
|
.i_uz(uz__31),
|
|
.i_sz(sz__31),
|
|
.i_sr(sr__31),
|
|
.i_sleftz(sleftz__31),
|
|
.i_sleftr(sleftr__31),
|
|
.i_weight(weight__31),
|
|
.i_layer(layer__31),
|
|
.i_dead(dead__31),
|
|
.i_hit(hit__31),
|
|
//Outputs
|
|
.o_x(x__32),
|
|
.o_y(y__32),
|
|
.o_z(z__32),
|
|
.o_ux(ux__32),
|
|
.o_uy(uy__32),
|
|
.o_uz(uz__32),
|
|
.o_sz(sz__32),
|
|
.o_sr(sr__32),
|
|
.o_sleftz(sleftz__32),
|
|
.o_sleftr(sleftr__32),
|
|
.o_weight(weight__32),
|
|
.o_layer(layer__32),
|
|
.o_dead(dead__32),
|
|
.o_hit(hit__32)
|
|
);
|
|
PhotonBlock5 photon31(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__30),
|
|
.i_y(y__30),
|
|
.i_z(z__30),
|
|
.i_ux(ux__30),
|
|
.i_uy(uy__30),
|
|
.i_uz(uz__30),
|
|
.i_sz(sz__30),
|
|
.i_sr(sr__30),
|
|
.i_sleftz(sleftz__30),
|
|
.i_sleftr(sleftr__30),
|
|
.i_weight(weight__30),
|
|
.i_layer(layer__30),
|
|
.i_dead(dead__30),
|
|
.i_hit(hit__30),
|
|
//Outputs
|
|
.o_x(x__31),
|
|
.o_y(y__31),
|
|
.o_z(z__31),
|
|
.o_ux(ux__31),
|
|
.o_uy(uy__31),
|
|
.o_uz(uz__31),
|
|
.o_sz(sz__31),
|
|
.o_sr(sr__31),
|
|
.o_sleftz(sleftz__31),
|
|
.o_sleftr(sleftr__31),
|
|
.o_weight(weight__31),
|
|
.o_layer(layer__31),
|
|
.o_dead(dead__31),
|
|
.o_hit(hit__31)
|
|
);
|
|
PhotonBlock5 photon30(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__29),
|
|
.i_y(y__29),
|
|
.i_z(z__29),
|
|
.i_ux(ux__29),
|
|
.i_uy(uy__29),
|
|
.i_uz(uz__29),
|
|
.i_sz(sz__29),
|
|
.i_sr(sr__29),
|
|
.i_sleftz(sleftz__29),
|
|
.i_sleftr(sleftr__29),
|
|
.i_weight(weight__29),
|
|
.i_layer(layer__29),
|
|
.i_dead(dead__29),
|
|
.i_hit(hit__29),
|
|
//Outputs
|
|
.o_x(x__30),
|
|
.o_y(y__30),
|
|
.o_z(z__30),
|
|
.o_ux(ux__30),
|
|
.o_uy(uy__30),
|
|
.o_uz(uz__30),
|
|
.o_sz(sz__30),
|
|
.o_sr(sr__30),
|
|
.o_sleftz(sleftz__30),
|
|
.o_sleftr(sleftr__30),
|
|
.o_weight(weight__30),
|
|
.o_layer(layer__30),
|
|
.o_dead(dead__30),
|
|
.o_hit(hit__30)
|
|
);
|
|
PhotonBlock5 photon29(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__28),
|
|
.i_y(y__28),
|
|
.i_z(z__28),
|
|
.i_ux(ux__28),
|
|
.i_uy(uy__28),
|
|
.i_uz(uz__28),
|
|
.i_sz(sz__28),
|
|
.i_sr(sr__28),
|
|
.i_sleftz(sleftz__28),
|
|
.i_sleftr(sleftr__28),
|
|
.i_weight(weight__28),
|
|
.i_layer(layer__28),
|
|
.i_dead(dead__28),
|
|
.i_hit(hit__28),
|
|
//Outputs
|
|
.o_x(x__29),
|
|
.o_y(y__29),
|
|
.o_z(z__29),
|
|
.o_ux(ux__29),
|
|
.o_uy(uy__29),
|
|
.o_uz(uz__29),
|
|
.o_sz(sz__29),
|
|
.o_sr(sr__29),
|
|
.o_sleftz(sleftz__29),
|
|
.o_sleftr(sleftr__29),
|
|
.o_weight(weight__29),
|
|
.o_layer(layer__29),
|
|
.o_dead(dead__29),
|
|
.o_hit(hit__29)
|
|
);
|
|
PhotonBlock5 photon28(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__27),
|
|
.i_y(y__27),
|
|
.i_z(z__27),
|
|
.i_ux(ux__27),
|
|
.i_uy(uy__27),
|
|
.i_uz(uz__27),
|
|
.i_sz(sz__27),
|
|
.i_sr(sr__27),
|
|
.i_sleftz(sleftz__27),
|
|
.i_sleftr(sleftr__27),
|
|
.i_weight(weight__27),
|
|
.i_layer(layer__27),
|
|
.i_dead(dead__27),
|
|
.i_hit(hit__27),
|
|
//Outputs
|
|
.o_x(x__28),
|
|
.o_y(y__28),
|
|
.o_z(z__28),
|
|
.o_ux(ux__28),
|
|
.o_uy(uy__28),
|
|
.o_uz(uz__28),
|
|
.o_sz(sz__28),
|
|
.o_sr(sr__28),
|
|
.o_sleftz(sleftz__28),
|
|
.o_sleftr(sleftr__28),
|
|
.o_weight(weight__28),
|
|
.o_layer(layer__28),
|
|
.o_dead(dead__28),
|
|
.o_hit(hit__28)
|
|
);
|
|
PhotonBlock5 photon27(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__26),
|
|
.i_y(y__26),
|
|
.i_z(z__26),
|
|
.i_ux(ux__26),
|
|
.i_uy(uy__26),
|
|
.i_uz(uz__26),
|
|
.i_sz(sz__26),
|
|
.i_sr(sr__26),
|
|
.i_sleftz(sleftz__26),
|
|
.i_sleftr(sleftr__26),
|
|
.i_weight(weight__26),
|
|
.i_layer(layer__26),
|
|
.i_dead(dead__26),
|
|
.i_hit(hit__26),
|
|
//Outputs
|
|
.o_x(x__27),
|
|
.o_y(y__27),
|
|
.o_z(z__27),
|
|
.o_ux(ux__27),
|
|
.o_uy(uy__27),
|
|
.o_uz(uz__27),
|
|
.o_sz(sz__27),
|
|
.o_sr(sr__27),
|
|
.o_sleftz(sleftz__27),
|
|
.o_sleftr(sleftr__27),
|
|
.o_weight(weight__27),
|
|
.o_layer(layer__27),
|
|
.o_dead(dead__27),
|
|
.o_hit(hit__27)
|
|
);
|
|
PhotonBlock5 photon26(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__25),
|
|
.i_y(y__25),
|
|
.i_z(z__25),
|
|
.i_ux(ux__25),
|
|
.i_uy(uy__25),
|
|
.i_uz(uz__25),
|
|
.i_sz(sz__25),
|
|
.i_sr(sr__25),
|
|
.i_sleftz(sleftz__25),
|
|
.i_sleftr(sleftr__25),
|
|
.i_weight(weight__25),
|
|
.i_layer(layer__25),
|
|
.i_dead(dead__25),
|
|
.i_hit(hit__25),
|
|
//Outputs
|
|
.o_x(x__26),
|
|
.o_y(y__26),
|
|
.o_z(z__26),
|
|
.o_ux(ux__26),
|
|
.o_uy(uy__26),
|
|
.o_uz(uz__26),
|
|
.o_sz(sz__26),
|
|
.o_sr(sr__26),
|
|
.o_sleftz(sleftz__26),
|
|
.o_sleftr(sleftr__26),
|
|
.o_weight(weight__26),
|
|
.o_layer(layer__26),
|
|
.o_dead(dead__26),
|
|
.o_hit(hit__26)
|
|
);
|
|
PhotonBlock5 photon25(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__24),
|
|
.i_y(y__24),
|
|
.i_z(z__24),
|
|
.i_ux(ux__24),
|
|
.i_uy(uy__24),
|
|
.i_uz(uz__24),
|
|
.i_sz(sz__24),
|
|
.i_sr(sr__24),
|
|
.i_sleftz(sleftz__24),
|
|
.i_sleftr(sleftr__24),
|
|
.i_weight(weight__24),
|
|
.i_layer(layer__24),
|
|
.i_dead(dead__24),
|
|
.i_hit(hit__24),
|
|
//Outputs
|
|
.o_x(x__25),
|
|
.o_y(y__25),
|
|
.o_z(z__25),
|
|
.o_ux(ux__25),
|
|
.o_uy(uy__25),
|
|
.o_uz(uz__25),
|
|
.o_sz(sz__25),
|
|
.o_sr(sr__25),
|
|
.o_sleftz(sleftz__25),
|
|
.o_sleftr(sleftr__25),
|
|
.o_weight(weight__25),
|
|
.o_layer(layer__25),
|
|
.o_dead(dead__25),
|
|
.o_hit(hit__25)
|
|
);
|
|
PhotonBlock5 photon24(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__23),
|
|
.i_y(y__23),
|
|
.i_z(z__23),
|
|
.i_ux(ux__23),
|
|
.i_uy(uy__23),
|
|
.i_uz(uz__23),
|
|
.i_sz(sz__23),
|
|
.i_sr(sr__23),
|
|
.i_sleftz(sleftz__23),
|
|
.i_sleftr(sleftr__23),
|
|
.i_weight(weight__23),
|
|
.i_layer(layer__23),
|
|
.i_dead(dead__23),
|
|
.i_hit(hit__23),
|
|
//Outputs
|
|
.o_x(x__24),
|
|
.o_y(y__24),
|
|
.o_z(z__24),
|
|
.o_ux(ux__24),
|
|
.o_uy(uy__24),
|
|
.o_uz(uz__24),
|
|
.o_sz(sz__24),
|
|
.o_sr(sr__24),
|
|
.o_sleftz(sleftz__24),
|
|
.o_sleftr(sleftr__24),
|
|
.o_weight(weight__24),
|
|
.o_layer(layer__24),
|
|
.o_dead(dead__24),
|
|
.o_hit(hit__24)
|
|
);
|
|
PhotonBlock5 photon23(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__22),
|
|
.i_y(y__22),
|
|
.i_z(z__22),
|
|
.i_ux(ux__22),
|
|
.i_uy(uy__22),
|
|
.i_uz(uz__22),
|
|
.i_sz(sz__22),
|
|
.i_sr(sr__22),
|
|
.i_sleftz(sleftz__22),
|
|
.i_sleftr(sleftr__22),
|
|
.i_weight(weight__22),
|
|
.i_layer(layer__22),
|
|
.i_dead(dead__22),
|
|
.i_hit(hit__22),
|
|
//Outputs
|
|
.o_x(x__23),
|
|
.o_y(y__23),
|
|
.o_z(z__23),
|
|
.o_ux(ux__23),
|
|
.o_uy(uy__23),
|
|
.o_uz(uz__23),
|
|
.o_sz(sz__23),
|
|
.o_sr(sr__23),
|
|
.o_sleftz(sleftz__23),
|
|
.o_sleftr(sleftr__23),
|
|
.o_weight(weight__23),
|
|
.o_layer(layer__23),
|
|
.o_dead(dead__23),
|
|
.o_hit(hit__23)
|
|
);
|
|
PhotonBlock5 photon22(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__21),
|
|
.i_y(y__21),
|
|
.i_z(z__21),
|
|
.i_ux(ux__21),
|
|
.i_uy(uy__21),
|
|
.i_uz(uz__21),
|
|
.i_sz(sz__21),
|
|
.i_sr(sr__21),
|
|
.i_sleftz(sleftz__21),
|
|
.i_sleftr(sleftr__21),
|
|
.i_weight(weight__21),
|
|
.i_layer(layer__21),
|
|
.i_dead(dead__21),
|
|
.i_hit(hit__21),
|
|
//Outputs
|
|
.o_x(x__22),
|
|
.o_y(y__22),
|
|
.o_z(z__22),
|
|
.o_ux(ux__22),
|
|
.o_uy(uy__22),
|
|
.o_uz(uz__22),
|
|
.o_sz(sz__22),
|
|
.o_sr(sr__22),
|
|
.o_sleftz(sleftz__22),
|
|
.o_sleftr(sleftr__22),
|
|
.o_weight(weight__22),
|
|
.o_layer(layer__22),
|
|
.o_dead(dead__22),
|
|
.o_hit(hit__22)
|
|
);
|
|
PhotonBlock5 photon21(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__20),
|
|
.i_y(y__20),
|
|
.i_z(z__20),
|
|
.i_ux(ux__20),
|
|
.i_uy(uy__20),
|
|
.i_uz(uz__20),
|
|
.i_sz(sz__20),
|
|
.i_sr(sr__20),
|
|
.i_sleftz(sleftz__20),
|
|
.i_sleftr(sleftr__20),
|
|
.i_weight(weight__20),
|
|
.i_layer(layer__20),
|
|
.i_dead(dead__20),
|
|
.i_hit(hit__20),
|
|
//Outputs
|
|
.o_x(x__21),
|
|
.o_y(y__21),
|
|
.o_z(z__21),
|
|
.o_ux(ux__21),
|
|
.o_uy(uy__21),
|
|
.o_uz(uz__21),
|
|
.o_sz(sz__21),
|
|
.o_sr(sr__21),
|
|
.o_sleftz(sleftz__21),
|
|
.o_sleftr(sleftr__21),
|
|
.o_weight(weight__21),
|
|
.o_layer(layer__21),
|
|
.o_dead(dead__21),
|
|
.o_hit(hit__21)
|
|
);
|
|
PhotonBlock5 photon20(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__19),
|
|
.i_y(y__19),
|
|
.i_z(z__19),
|
|
.i_ux(ux__19),
|
|
.i_uy(uy__19),
|
|
.i_uz(uz__19),
|
|
.i_sz(sz__19),
|
|
.i_sr(sr__19),
|
|
.i_sleftz(sleftz__19),
|
|
.i_sleftr(sleftr__19),
|
|
.i_weight(weight__19),
|
|
.i_layer(layer__19),
|
|
.i_dead(dead__19),
|
|
.i_hit(hit__19),
|
|
//Outputs
|
|
.o_x(x__20),
|
|
.o_y(y__20),
|
|
.o_z(z__20),
|
|
.o_ux(ux__20),
|
|
.o_uy(uy__20),
|
|
.o_uz(uz__20),
|
|
.o_sz(sz__20),
|
|
.o_sr(sr__20),
|
|
.o_sleftz(sleftz__20),
|
|
.o_sleftr(sleftr__20),
|
|
.o_weight(weight__20),
|
|
.o_layer(layer__20),
|
|
.o_dead(dead__20),
|
|
.o_hit(hit__20)
|
|
);
|
|
PhotonBlock5 photon19(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__18),
|
|
.i_y(y__18),
|
|
.i_z(z__18),
|
|
.i_ux(ux__18),
|
|
.i_uy(uy__18),
|
|
.i_uz(uz__18),
|
|
.i_sz(sz__18),
|
|
.i_sr(sr__18),
|
|
.i_sleftz(sleftz__18),
|
|
.i_sleftr(sleftr__18),
|
|
.i_weight(weight__18),
|
|
.i_layer(layer__18),
|
|
.i_dead(dead__18),
|
|
.i_hit(hit__18),
|
|
//Outputs
|
|
.o_x(x__19),
|
|
.o_y(y__19),
|
|
.o_z(z__19),
|
|
.o_ux(ux__19),
|
|
.o_uy(uy__19),
|
|
.o_uz(uz__19),
|
|
.o_sz(sz__19),
|
|
.o_sr(sr__19),
|
|
.o_sleftz(sleftz__19),
|
|
.o_sleftr(sleftr__19),
|
|
.o_weight(weight__19),
|
|
.o_layer(layer__19),
|
|
.o_dead(dead__19),
|
|
.o_hit(hit__19)
|
|
);
|
|
PhotonBlock5 photon18(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__17),
|
|
.i_y(y__17),
|
|
.i_z(z__17),
|
|
.i_ux(ux__17),
|
|
.i_uy(uy__17),
|
|
.i_uz(uz__17),
|
|
.i_sz(sz__17),
|
|
.i_sr(sr__17),
|
|
.i_sleftz(sleftz__17),
|
|
.i_sleftr(sleftr__17),
|
|
.i_weight(weight__17),
|
|
.i_layer(layer__17),
|
|
.i_dead(dead__17),
|
|
.i_hit(hit__17),
|
|
//Outputs
|
|
.o_x(x__18),
|
|
.o_y(y__18),
|
|
.o_z(z__18),
|
|
.o_ux(ux__18),
|
|
.o_uy(uy__18),
|
|
.o_uz(uz__18),
|
|
.o_sz(sz__18),
|
|
.o_sr(sr__18),
|
|
.o_sleftz(sleftz__18),
|
|
.o_sleftr(sleftr__18),
|
|
.o_weight(weight__18),
|
|
.o_layer(layer__18),
|
|
.o_dead(dead__18),
|
|
.o_hit(hit__18)
|
|
);
|
|
PhotonBlock5 photon17(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__16),
|
|
.i_y(y__16),
|
|
.i_z(z__16),
|
|
.i_ux(ux__16),
|
|
.i_uy(uy__16),
|
|
.i_uz(uz__16),
|
|
.i_sz(sz__16),
|
|
.i_sr(sr__16),
|
|
.i_sleftz(sleftz__16),
|
|
.i_sleftr(sleftr__16),
|
|
.i_weight(weight__16),
|
|
.i_layer(layer__16),
|
|
.i_dead(dead__16),
|
|
.i_hit(hit__16),
|
|
//Outputs
|
|
.o_x(x__17),
|
|
.o_y(y__17),
|
|
.o_z(z__17),
|
|
.o_ux(ux__17),
|
|
.o_uy(uy__17),
|
|
.o_uz(uz__17),
|
|
.o_sz(sz__17),
|
|
.o_sr(sr__17),
|
|
.o_sleftz(sleftz__17),
|
|
.o_sleftr(sleftr__17),
|
|
.o_weight(weight__17),
|
|
.o_layer(layer__17),
|
|
.o_dead(dead__17),
|
|
.o_hit(hit__17)
|
|
);
|
|
PhotonBlock5 photon16(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__15),
|
|
.i_y(y__15),
|
|
.i_z(z__15),
|
|
.i_ux(ux__15),
|
|
.i_uy(uy__15),
|
|
.i_uz(uz__15),
|
|
.i_sz(sz__15),
|
|
.i_sr(sr__15),
|
|
.i_sleftz(sleftz__15),
|
|
.i_sleftr(sleftr__15),
|
|
.i_weight(weight__15),
|
|
.i_layer(layer__15),
|
|
.i_dead(dead__15),
|
|
.i_hit(hit__15),
|
|
//Outputs
|
|
.o_x(x__16),
|
|
.o_y(y__16),
|
|
.o_z(z__16),
|
|
.o_ux(ux__16),
|
|
.o_uy(uy__16),
|
|
.o_uz(uz__16),
|
|
.o_sz(sz__16),
|
|
.o_sr(sr__16),
|
|
.o_sleftz(sleftz__16),
|
|
.o_sleftr(sleftr__16),
|
|
.o_weight(weight__16),
|
|
.o_layer(layer__16),
|
|
.o_dead(dead__16),
|
|
.o_hit(hit__16)
|
|
);
|
|
PhotonBlock5 photon15(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__14),
|
|
.i_y(y__14),
|
|
.i_z(z__14),
|
|
.i_ux(ux__14),
|
|
.i_uy(uy__14),
|
|
.i_uz(uz__14),
|
|
.i_sz(sz__14),
|
|
.i_sr(sr__14),
|
|
.i_sleftz(sleftz__14),
|
|
.i_sleftr(sleftr__14),
|
|
.i_weight(weight__14),
|
|
.i_layer(layer__14),
|
|
.i_dead(dead__14),
|
|
.i_hit(hit__14),
|
|
//Outputs
|
|
.o_x(x__15),
|
|
.o_y(y__15),
|
|
.o_z(z__15),
|
|
.o_ux(ux__15),
|
|
.o_uy(uy__15),
|
|
.o_uz(uz__15),
|
|
.o_sz(sz__15),
|
|
.o_sr(sr__15),
|
|
.o_sleftz(sleftz__15),
|
|
.o_sleftr(sleftr__15),
|
|
.o_weight(weight__15),
|
|
.o_layer(layer__15),
|
|
.o_dead(dead__15),
|
|
.o_hit(hit__15)
|
|
);
|
|
PhotonBlock5 photon14(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__13),
|
|
.i_y(y__13),
|
|
.i_z(z__13),
|
|
.i_ux(ux__13),
|
|
.i_uy(uy__13),
|
|
.i_uz(uz__13),
|
|
.i_sz(sz__13),
|
|
.i_sr(sr__13),
|
|
.i_sleftz(sleftz__13),
|
|
.i_sleftr(sleftr__13),
|
|
.i_weight(weight__13),
|
|
.i_layer(layer__13),
|
|
.i_dead(dead__13),
|
|
.i_hit(hit__13),
|
|
//Outputs
|
|
.o_x(x__14),
|
|
.o_y(y__14),
|
|
.o_z(z__14),
|
|
.o_ux(ux__14),
|
|
.o_uy(uy__14),
|
|
.o_uz(uz__14),
|
|
.o_sz(sz__14),
|
|
.o_sr(sr__14),
|
|
.o_sleftz(sleftz__14),
|
|
.o_sleftr(sleftr__14),
|
|
.o_weight(weight__14),
|
|
.o_layer(layer__14),
|
|
.o_dead(dead__14),
|
|
.o_hit(hit__14)
|
|
);
|
|
PhotonBlock5 photon13(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__12),
|
|
.i_y(y__12),
|
|
.i_z(z__12),
|
|
.i_ux(ux__12),
|
|
.i_uy(uy__12),
|
|
.i_uz(uz__12),
|
|
.i_sz(sz__12),
|
|
.i_sr(sr__12),
|
|
.i_sleftz(sleftz__12),
|
|
.i_sleftr(sleftr__12),
|
|
.i_weight(weight__12),
|
|
.i_layer(layer__12),
|
|
.i_dead(dead__12),
|
|
.i_hit(hit__12),
|
|
//Outputs
|
|
.o_x(x__13),
|
|
.o_y(y__13),
|
|
.o_z(z__13),
|
|
.o_ux(ux__13),
|
|
.o_uy(uy__13),
|
|
.o_uz(uz__13),
|
|
.o_sz(sz__13),
|
|
.o_sr(sr__13),
|
|
.o_sleftz(sleftz__13),
|
|
.o_sleftr(sleftr__13),
|
|
.o_weight(weight__13),
|
|
.o_layer(layer__13),
|
|
.o_dead(dead__13),
|
|
.o_hit(hit__13)
|
|
);
|
|
PhotonBlock5 photon12(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__11),
|
|
.i_y(y__11),
|
|
.i_z(z__11),
|
|
.i_ux(ux__11),
|
|
.i_uy(uy__11),
|
|
.i_uz(uz__11),
|
|
.i_sz(sz__11),
|
|
.i_sr(sr__11),
|
|
.i_sleftz(sleftz__11),
|
|
.i_sleftr(sleftr__11),
|
|
.i_weight(weight__11),
|
|
.i_layer(layer__11),
|
|
.i_dead(dead__11),
|
|
.i_hit(hit__11),
|
|
//Outputs
|
|
.o_x(x__12),
|
|
.o_y(y__12),
|
|
.o_z(z__12),
|
|
.o_ux(ux__12),
|
|
.o_uy(uy__12),
|
|
.o_uz(uz__12),
|
|
.o_sz(sz__12),
|
|
.o_sr(sr__12),
|
|
.o_sleftz(sleftz__12),
|
|
.o_sleftr(sleftr__12),
|
|
.o_weight(weight__12),
|
|
.o_layer(layer__12),
|
|
.o_dead(dead__12),
|
|
.o_hit(hit__12)
|
|
);
|
|
PhotonBlock5 photon11(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__10),
|
|
.i_y(y__10),
|
|
.i_z(z__10),
|
|
.i_ux(ux__10),
|
|
.i_uy(uy__10),
|
|
.i_uz(uz__10),
|
|
.i_sz(sz__10),
|
|
.i_sr(sr__10),
|
|
.i_sleftz(sleftz__10),
|
|
.i_sleftr(sleftr__10),
|
|
.i_weight(weight__10),
|
|
.i_layer(layer__10),
|
|
.i_dead(dead__10),
|
|
.i_hit(hit__10),
|
|
//Outputs
|
|
.o_x(x__11),
|
|
.o_y(y__11),
|
|
.o_z(z__11),
|
|
.o_ux(ux__11),
|
|
.o_uy(uy__11),
|
|
.o_uz(uz__11),
|
|
.o_sz(sz__11),
|
|
.o_sr(sr__11),
|
|
.o_sleftz(sleftz__11),
|
|
.o_sleftr(sleftr__11),
|
|
.o_weight(weight__11),
|
|
.o_layer(layer__11),
|
|
.o_dead(dead__11),
|
|
.o_hit(hit__11)
|
|
);
|
|
PhotonBlock5 photon10(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__9),
|
|
.i_y(y__9),
|
|
.i_z(z__9),
|
|
.i_ux(ux__9),
|
|
.i_uy(uy__9),
|
|
.i_uz(uz__9),
|
|
.i_sz(sz__9),
|
|
.i_sr(sr__9),
|
|
.i_sleftz(sleftz__9),
|
|
.i_sleftr(sleftr__9),
|
|
.i_weight(weight__9),
|
|
.i_layer(layer__9),
|
|
.i_dead(dead__9),
|
|
.i_hit(hit__9),
|
|
//Outputs
|
|
.o_x(x__10),
|
|
.o_y(y__10),
|
|
.o_z(z__10),
|
|
.o_ux(ux__10),
|
|
.o_uy(uy__10),
|
|
.o_uz(uz__10),
|
|
.o_sz(sz__10),
|
|
.o_sr(sr__10),
|
|
.o_sleftz(sleftz__10),
|
|
.o_sleftr(sleftr__10),
|
|
.o_weight(weight__10),
|
|
.o_layer(layer__10),
|
|
.o_dead(dead__10),
|
|
.o_hit(hit__10)
|
|
);
|
|
PhotonBlock5 photon9(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__8),
|
|
.i_y(y__8),
|
|
.i_z(z__8),
|
|
.i_ux(ux__8),
|
|
.i_uy(uy__8),
|
|
.i_uz(uz__8),
|
|
.i_sz(sz__8),
|
|
.i_sr(sr__8),
|
|
.i_sleftz(sleftz__8),
|
|
.i_sleftr(sleftr__8),
|
|
.i_weight(weight__8),
|
|
.i_layer(layer__8),
|
|
.i_dead(dead__8),
|
|
.i_hit(hit__8),
|
|
//Outputs
|
|
.o_x(x__9),
|
|
.o_y(y__9),
|
|
.o_z(z__9),
|
|
.o_ux(ux__9),
|
|
.o_uy(uy__9),
|
|
.o_uz(uz__9),
|
|
.o_sz(sz__9),
|
|
.o_sr(sr__9),
|
|
.o_sleftz(sleftz__9),
|
|
.o_sleftr(sleftr__9),
|
|
.o_weight(weight__9),
|
|
.o_layer(layer__9),
|
|
.o_dead(dead__9),
|
|
.o_hit(hit__9)
|
|
);
|
|
PhotonBlock5 photon8(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__7),
|
|
.i_y(y__7),
|
|
.i_z(z__7),
|
|
.i_ux(ux__7),
|
|
.i_uy(uy__7),
|
|
.i_uz(uz__7),
|
|
.i_sz(sz__7),
|
|
.i_sr(sr__7),
|
|
.i_sleftz(sleftz__7),
|
|
.i_sleftr(sleftr__7),
|
|
.i_weight(weight__7),
|
|
.i_layer(layer__7),
|
|
.i_dead(dead__7),
|
|
.i_hit(hit__7),
|
|
//Outputs
|
|
.o_x(x__8),
|
|
.o_y(y__8),
|
|
.o_z(z__8),
|
|
.o_ux(ux__8),
|
|
.o_uy(uy__8),
|
|
.o_uz(uz__8),
|
|
.o_sz(sz__8),
|
|
.o_sr(sr__8),
|
|
.o_sleftz(sleftz__8),
|
|
.o_sleftr(sleftr__8),
|
|
.o_weight(weight__8),
|
|
.o_layer(layer__8),
|
|
.o_dead(dead__8),
|
|
.o_hit(hit__8)
|
|
);
|
|
PhotonBlock5 photon7(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__6),
|
|
.i_y(y__6),
|
|
.i_z(z__6),
|
|
.i_ux(ux__6),
|
|
.i_uy(uy__6),
|
|
.i_uz(uz__6),
|
|
.i_sz(sz__6),
|
|
.i_sr(sr__6),
|
|
.i_sleftz(sleftz__6),
|
|
.i_sleftr(sleftr__6),
|
|
.i_weight(weight__6),
|
|
.i_layer(layer__6),
|
|
.i_dead(dead__6),
|
|
.i_hit(hit__6),
|
|
//Outputs
|
|
.o_x(x__7),
|
|
.o_y(y__7),
|
|
.o_z(z__7),
|
|
.o_ux(ux__7),
|
|
.o_uy(uy__7),
|
|
.o_uz(uz__7),
|
|
.o_sz(sz__7),
|
|
.o_sr(sr__7),
|
|
.o_sleftz(sleftz__7),
|
|
.o_sleftr(sleftr__7),
|
|
.o_weight(weight__7),
|
|
.o_layer(layer__7),
|
|
.o_dead(dead__7),
|
|
.o_hit(hit__7)
|
|
);
|
|
PhotonBlock5 photon6(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__5),
|
|
.i_y(y__5),
|
|
.i_z(z__5),
|
|
.i_ux(ux__5),
|
|
.i_uy(uy__5),
|
|
.i_uz(uz__5),
|
|
.i_sz(sz__5),
|
|
.i_sr(sr__5),
|
|
.i_sleftz(sleftz__5),
|
|
.i_sleftr(sleftr__5),
|
|
.i_weight(weight__5),
|
|
.i_layer(layer__5),
|
|
.i_dead(dead__5),
|
|
.i_hit(hit__5),
|
|
//Outputs
|
|
.o_x(x__6),
|
|
.o_y(y__6),
|
|
.o_z(z__6),
|
|
.o_ux(ux__6),
|
|
.o_uy(uy__6),
|
|
.o_uz(uz__6),
|
|
.o_sz(sz__6),
|
|
.o_sr(sr__6),
|
|
.o_sleftz(sleftz__6),
|
|
.o_sleftr(sleftr__6),
|
|
.o_weight(weight__6),
|
|
.o_layer(layer__6),
|
|
.o_dead(dead__6),
|
|
.o_hit(hit__6)
|
|
);
|
|
PhotonBlock5 photon5(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__4),
|
|
.i_y(y__4),
|
|
.i_z(z__4),
|
|
.i_ux(ux__4),
|
|
.i_uy(uy__4),
|
|
.i_uz(uz__4),
|
|
.i_sz(sz__4),
|
|
.i_sr(sr__4),
|
|
.i_sleftz(sleftz__4),
|
|
.i_sleftr(sleftr__4),
|
|
.i_weight(weight__4),
|
|
.i_layer(layer__4),
|
|
.i_dead(dead__4),
|
|
.i_hit(hit__4),
|
|
//Outputs
|
|
.o_x(x__5),
|
|
.o_y(y__5),
|
|
.o_z(z__5),
|
|
.o_ux(ux__5),
|
|
.o_uy(uy__5),
|
|
.o_uz(uz__5),
|
|
.o_sz(sz__5),
|
|
.o_sr(sr__5),
|
|
.o_sleftz(sleftz__5),
|
|
.o_sleftr(sleftr__5),
|
|
.o_weight(weight__5),
|
|
.o_layer(layer__5),
|
|
.o_dead(dead__5),
|
|
.o_hit(hit__5)
|
|
);
|
|
PhotonBlock5 photon4(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__3),
|
|
.i_y(y__3),
|
|
.i_z(z__3),
|
|
.i_ux(ux__3),
|
|
.i_uy(uy__3),
|
|
.i_uz(uz__3),
|
|
.i_sz(sz__3),
|
|
.i_sr(sr__3),
|
|
.i_sleftz(sleftz__3),
|
|
.i_sleftr(sleftr__3),
|
|
.i_weight(weight__3),
|
|
.i_layer(layer__3),
|
|
.i_dead(dead__3),
|
|
.i_hit(hit__3),
|
|
//Outputs
|
|
.o_x(x__4),
|
|
.o_y(y__4),
|
|
.o_z(z__4),
|
|
.o_ux(ux__4),
|
|
.o_uy(uy__4),
|
|
.o_uz(uz__4),
|
|
.o_sz(sz__4),
|
|
.o_sr(sr__4),
|
|
.o_sleftz(sleftz__4),
|
|
.o_sleftr(sleftr__4),
|
|
.o_weight(weight__4),
|
|
.o_layer(layer__4),
|
|
.o_dead(dead__4),
|
|
.o_hit(hit__4)
|
|
);
|
|
PhotonBlock5 photon3(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__2),
|
|
.i_y(y__2),
|
|
.i_z(z__2),
|
|
.i_ux(ux__2),
|
|
.i_uy(uy__2),
|
|
.i_uz(uz__2),
|
|
.i_sz(sz__2),
|
|
.i_sr(sr__2),
|
|
.i_sleftz(sleftz__2),
|
|
.i_sleftr(sleftr__2),
|
|
.i_weight(weight__2),
|
|
.i_layer(layer__2),
|
|
.i_dead(dead__2),
|
|
.i_hit(hit__2),
|
|
//Outputs
|
|
.o_x(x__3),
|
|
.o_y(y__3),
|
|
.o_z(z__3),
|
|
.o_ux(ux__3),
|
|
.o_uy(uy__3),
|
|
.o_uz(uz__3),
|
|
.o_sz(sz__3),
|
|
.o_sr(sr__3),
|
|
.o_sleftz(sleftz__3),
|
|
.o_sleftr(sleftr__3),
|
|
.o_weight(weight__3),
|
|
.o_layer(layer__3),
|
|
.o_dead(dead__3),
|
|
.o_hit(hit__3)
|
|
);
|
|
PhotonBlock5 photon2(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__1),
|
|
.i_y(y__1),
|
|
.i_z(z__1),
|
|
.i_ux(ux__1),
|
|
.i_uy(uy__1),
|
|
.i_uz(uz__1),
|
|
.i_sz(sz__1),
|
|
.i_sr(sr__1),
|
|
.i_sleftz(sleftz__1),
|
|
.i_sleftr(sleftr__1),
|
|
.i_weight(weight__1),
|
|
.i_layer(layer__1),
|
|
.i_dead(dead__1),
|
|
.i_hit(hit__1),
|
|
//Outputs
|
|
.o_x(x__2),
|
|
.o_y(y__2),
|
|
.o_z(z__2),
|
|
.o_ux(ux__2),
|
|
.o_uy(uy__2),
|
|
.o_uz(uz__2),
|
|
.o_sz(sz__2),
|
|
.o_sr(sr__2),
|
|
.o_sleftz(sleftz__2),
|
|
.o_sleftr(sleftr__2),
|
|
.o_weight(weight__2),
|
|
.o_layer(layer__2),
|
|
.o_dead(dead__2),
|
|
.o_hit(hit__2)
|
|
);
|
|
PhotonBlock5 photon1(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(x__0),
|
|
.i_y(y__0),
|
|
.i_z(z__0),
|
|
.i_ux(ux__0),
|
|
.i_uy(uy__0),
|
|
.i_uz(uz__0),
|
|
.i_sz(sz__0),
|
|
.i_sr(sr__0),
|
|
.i_sleftz(sleftz__0),
|
|
.i_sleftr(sleftr__0),
|
|
.i_weight(weight__0),
|
|
.i_layer(layer__0),
|
|
.i_dead(dead__0),
|
|
.i_hit(hit__0),
|
|
//Outputs
|
|
.o_x(x__1),
|
|
.o_y(y__1),
|
|
.o_z(z__1),
|
|
.o_ux(ux__1),
|
|
.o_uy(uy__1),
|
|
.o_uz(uz__1),
|
|
.o_sz(sz__1),
|
|
.o_sr(sr__1),
|
|
.o_sleftz(sleftz__1),
|
|
.o_sleftr(sleftr__1),
|
|
.o_weight(weight__1),
|
|
.o_layer(layer__1),
|
|
.o_dead(dead__1),
|
|
.o_hit(hit__1)
|
|
);
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//Tapping into the Registered Pipeline
|
|
//***NOTE: Index must be incremented by 1 compared to SystemC version
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//>>>>>>>>>>>>> Absorber <<<<<<<<<<<<<<<<<<
|
|
wire [`BIT_WIDTH-1:0] x_pipe, y_pipe, z_pipe;
|
|
wire [`LAYER_WIDTH-1:0] layer_pipe;
|
|
assign x_pipe=x__2;
|
|
assign y_pipe=y__2;
|
|
assign z_pipe=z__14; //TODO: Check square-root latency and modify z[14] if needed!!!!
|
|
assign layer_pipe=layer__4;
|
|
|
|
//>>>>>>>>>>>>> ScattererReflectorWrapper <<<<<<<<<<<<<<<<<<
|
|
wire [`BIT_WIDTH-1:0] ux_scatterer;
|
|
wire [`BIT_WIDTH-1:0] uy_scatterer;
|
|
wire [`BIT_WIDTH-1:0] uz_scatterer;
|
|
wire [`BIT_WIDTH-1:0] ux_reflector;
|
|
wire [`BIT_WIDTH-1:0] uy_reflector;
|
|
wire [`BIT_WIDTH-1:0] uz_reflector;
|
|
wire [`LAYER_WIDTH-1:0] layer_reflector;
|
|
wire dead_reflector;
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//Connect up different modules
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//>>>>>>>>>>>>> Absorber <<<<<<<<<<<<<<<<<<
|
|
|
|
Absorber absorb ( //INPUTS
|
|
.clock(clock) , .reset(reset), .enable(enable),
|
|
|
|
//From hopper
|
|
.weight_hop(i_weight), .hit_hop(i_hit), .dead_hop(i_dead),
|
|
|
|
//From Shared Registers
|
|
.x_pipe (x_pipe), .y_pipe (y_pipe), .z_pipe(z_pipe), .layer_pipe(layer_pipe),
|
|
|
|
//From System Register File (5 layers)
|
|
.muaFraction1(muaFraction1), .muaFraction2(muaFraction2), .muaFraction3(muaFraction3), .muaFraction4(muaFraction4), .muaFraction5(muaFraction5),
|
|
|
|
//Dual-port Mem
|
|
.data(data), .rdaddress(rdaddress), .wraddress(wraddress),
|
|
.wren(wren), .q(q),
|
|
|
|
//OUTPUT
|
|
.weight_absorber(o_weight)
|
|
|
|
);
|
|
|
|
//>>>>>>>>>>>>> ScattererReflectorWrapper <<<<<<<<<<<<<<<<<<
|
|
|
|
ScattererReflectorWrapper scattererReflector(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
//Inputs
|
|
|
|
//Photon values
|
|
.i_uz1_pipeWrapper(uz__1),
|
|
.i_hit2_pipeWrapper(hit__1),
|
|
.i_ux3_pipeWrapper(ux__3),
|
|
.i_uz3_pipeWrapper(uz__3),
|
|
.i_layer3_pipeWrapper(layer__3),
|
|
.i_hit4_pipeWrapper(hit__3),
|
|
.i_hit6_pipeWrapper(hit__5),
|
|
.i_hit16_pipeWrapper(hit__15),
|
|
.i_layer31_pipeWrapper(layer__31),
|
|
.i_uy32_pipeWrapper(uy__32),
|
|
.i_uz32_pipeWrapper(uz__32),
|
|
.i_hit33_pipeWrapper(hit__32),
|
|
.i_ux33_pipeWrapper(ux__33),
|
|
.i_uy33_pipeWrapper(uy__33),
|
|
.i_hit34_pipeWrapper(hit__33),
|
|
.i_ux35_pipeWrapper(ux__35),
|
|
.i_uy35_pipeWrapper(uy__35),
|
|
.i_uz35_pipeWrapper(uz__35),
|
|
.i_layer35_pipeWrapper(layer__35),
|
|
.i_hit36_pipeWrapper(hit__35),
|
|
.i_ux36_pipeWrapper(ux__36),
|
|
.i_uy36_pipeWrapper(uy__36),
|
|
.i_uz36_pipeWrapper(uz__36),
|
|
.i_layer36_pipeWrapper(layer__36),
|
|
.i_dead36_pipeWrapper(dead__36),
|
|
|
|
//Memory Interface
|
|
//Inputs
|
|
.rand2(rand2),
|
|
.rand3(rand3),
|
|
.rand5(rand5),
|
|
.sint(sint),
|
|
.cost(cost),
|
|
.up_rFresnel(up_rFresnel),
|
|
.down_rFresnel(down_rFresnel),
|
|
//Outputs
|
|
.tindex(tindex),
|
|
.fresIndex(fresIndex),
|
|
|
|
//Constants
|
|
.down_niOverNt_1(down_niOverNt_1),
|
|
.down_niOverNt_2(down_niOverNt_2),
|
|
.down_niOverNt_3(down_niOverNt_3),
|
|
.down_niOverNt_4(down_niOverNt_4),
|
|
.down_niOverNt_5(down_niOverNt_5),
|
|
.up_niOverNt_1(up_niOverNt_1),
|
|
.up_niOverNt_2(up_niOverNt_2),
|
|
.up_niOverNt_3(up_niOverNt_3),
|
|
.up_niOverNt_4(up_niOverNt_4),
|
|
.up_niOverNt_5(up_niOverNt_5),
|
|
.down_niOverNt_2_1(down_niOverNt_2_1),
|
|
.down_niOverNt_2_2(down_niOverNt_2_2),
|
|
.down_niOverNt_2_3(down_niOverNt_2_3),
|
|
.down_niOverNt_2_4(down_niOverNt_2_4),
|
|
.down_niOverNt_2_5(down_niOverNt_2_5),
|
|
.up_niOverNt_2_1(up_niOverNt_2_1),
|
|
.up_niOverNt_2_2(up_niOverNt_2_2),
|
|
.up_niOverNt_2_3(up_niOverNt_2_3),
|
|
.up_niOverNt_2_4(up_niOverNt_2_4),
|
|
.up_niOverNt_2_5(up_niOverNt_2_5),
|
|
.downCritAngle_0(downCritAngle_0),
|
|
.downCritAngle_1(downCritAngle_1),
|
|
.downCritAngle_2(downCritAngle_2),
|
|
.downCritAngle_3(downCritAngle_3),
|
|
.downCritAngle_4(downCritAngle_4),
|
|
.upCritAngle_0(upCritAngle_0),
|
|
.upCritAngle_1(upCritAngle_1),
|
|
.upCritAngle_2(upCritAngle_2),
|
|
.upCritAngle_3(upCritAngle_3),
|
|
.upCritAngle_4(upCritAngle_4),
|
|
|
|
//Outputs
|
|
.ux_scatterer(ux_scatterer),
|
|
.uy_scatterer(uy_scatterer),
|
|
.uz_scatterer(uz_scatterer),
|
|
|
|
.ux_reflector(ux_reflector),
|
|
.uy_reflector(uy_reflector),
|
|
.uz_reflector(uz_reflector),
|
|
.layer_reflector(layer_reflector),
|
|
.dead_reflector(dead_reflector)
|
|
);
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
//// dead or alive MUX ////
|
|
//// ////
|
|
//// Description: ////
|
|
//// Used to determine whether the output from the scatterer ////
|
|
//// or the reflector should be used in any clock cycle ////
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
always @ (hit__37 or ux_scatterer or uy_scatterer or uz_scatterer or layer__37 or dead__37 or
|
|
ux_reflector or uy_reflector or uz_reflector or layer_reflector or dead_reflector) begin
|
|
case (hit__37)
|
|
0: begin
|
|
o_ux = ux_scatterer;
|
|
o_uy = uy_scatterer;
|
|
o_uz = uz_scatterer;
|
|
o_layer = layer__37;
|
|
o_dead = dead__37;
|
|
end
|
|
1: begin
|
|
o_ux = ux_reflector;
|
|
o_uy = uy_reflector;
|
|
o_uz = uz_reflector;
|
|
o_layer = layer_reflector;
|
|
o_dead = dead_reflector;
|
|
end
|
|
endcase
|
|
|
|
end
|
|
|
|
endmodule
|
|
|
|
//Photons that make up the register pipeline
|
|
module PhotonBlock5(
|
|
//Inputs
|
|
clock,
|
|
reset,
|
|
enable,
|
|
|
|
i_x,
|
|
i_y,
|
|
i_z,
|
|
i_ux,
|
|
i_uy,
|
|
i_uz,
|
|
i_sz,
|
|
i_sr,
|
|
i_sleftz,
|
|
i_sleftr,
|
|
i_weight,
|
|
i_layer,
|
|
i_dead,
|
|
i_hit,
|
|
//Outputs
|
|
o_x,
|
|
o_y,
|
|
o_z,
|
|
o_ux,
|
|
o_uy,
|
|
o_uz,
|
|
o_sz,
|
|
o_sr,
|
|
o_sleftz,
|
|
o_sleftr,
|
|
o_weight,
|
|
o_layer,
|
|
o_dead,
|
|
o_hit
|
|
);
|
|
|
|
//parameter BIT_WIDTH=32;
|
|
//parameter LAYER_WIDTH=3;
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [`BIT_WIDTH-1:0] i_x;
|
|
input [`BIT_WIDTH-1:0] i_y;
|
|
input [`BIT_WIDTH-1:0] i_z;
|
|
input [`BIT_WIDTH-1:0] i_ux;
|
|
input [`BIT_WIDTH-1:0] i_uy;
|
|
input [`BIT_WIDTH-1:0] i_uz;
|
|
input [`BIT_WIDTH-1:0] i_sz;
|
|
input [`BIT_WIDTH-1:0] i_sr;
|
|
input [`BIT_WIDTH-1:0] i_sleftz;
|
|
input [`BIT_WIDTH-1:0] i_sleftr;
|
|
input [`BIT_WIDTH-1:0] i_weight;
|
|
input [`LAYER_WIDTH-1:0] i_layer;
|
|
input i_dead;
|
|
input i_hit;
|
|
|
|
|
|
output [`BIT_WIDTH-1:0] o_x;
|
|
output [`BIT_WIDTH-1:0] o_y;
|
|
output [`BIT_WIDTH-1:0] o_z;
|
|
output [`BIT_WIDTH-1:0] o_ux;
|
|
output [`BIT_WIDTH-1:0] o_uy;
|
|
output [`BIT_WIDTH-1:0] o_uz;
|
|
output [`BIT_WIDTH-1:0] o_sz;
|
|
output [`BIT_WIDTH-1:0] o_sr;
|
|
output [`BIT_WIDTH-1:0] o_sleftz;
|
|
output [`BIT_WIDTH-1:0] o_sleftr;
|
|
output [`BIT_WIDTH-1:0] o_weight;
|
|
output [`LAYER_WIDTH-1:0] o_layer;
|
|
output o_dead;
|
|
output o_hit;
|
|
|
|
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
|
|
wire [`BIT_WIDTH-1:0] i_x;
|
|
wire [`BIT_WIDTH-1:0] i_y;
|
|
wire [`BIT_WIDTH-1:0] i_z;
|
|
wire [`BIT_WIDTH-1:0] i_ux;
|
|
wire [`BIT_WIDTH-1:0] i_uy;
|
|
wire [`BIT_WIDTH-1:0] i_uz;
|
|
wire [`BIT_WIDTH-1:0] i_sz;
|
|
wire [`BIT_WIDTH-1:0] i_sr;
|
|
wire [`BIT_WIDTH-1:0] i_sleftz;
|
|
wire [`BIT_WIDTH-1:0] i_sleftr;
|
|
wire [`BIT_WIDTH-1:0] i_weight;
|
|
wire [`LAYER_WIDTH-1:0] i_layer;
|
|
wire i_dead;
|
|
wire i_hit;
|
|
|
|
|
|
reg [`BIT_WIDTH-1:0] o_x;
|
|
reg [`BIT_WIDTH-1:0] o_y;
|
|
reg [`BIT_WIDTH-1:0] o_z;
|
|
reg [`BIT_WIDTH-1:0] o_ux;
|
|
reg [`BIT_WIDTH-1:0] o_uy;
|
|
reg [`BIT_WIDTH-1:0] o_uz;
|
|
reg [`BIT_WIDTH-1:0] o_sz;
|
|
reg [`BIT_WIDTH-1:0] o_sr;
|
|
reg [`BIT_WIDTH-1:0] o_sleftz;
|
|
reg [`BIT_WIDTH-1:0] o_sleftr;
|
|
reg [`BIT_WIDTH-1:0] o_weight;
|
|
reg [`LAYER_WIDTH-1:0] o_layer;
|
|
reg o_dead;
|
|
reg o_hit;
|
|
|
|
|
|
always @ (posedge clock)
|
|
if(reset) begin
|
|
o_x <= {`BIT_WIDTH{1'b0}};
|
|
o_y <= {`BIT_WIDTH{1'b0}};
|
|
o_z <= {`BIT_WIDTH{1'b0}};
|
|
o_ux <= {`BIT_WIDTH{1'b0}};
|
|
o_uy <= {`BIT_WIDTH{1'b0}};
|
|
o_uz <= {`BIT_WIDTH{1'b0}};
|
|
o_sz <= {`BIT_WIDTH{1'b0}};
|
|
o_sr <= {`BIT_WIDTH{1'b0}};
|
|
o_sleftz <= {`BIT_WIDTH{1'b0}};
|
|
o_sleftr <= {`BIT_WIDTH{1'b0}};
|
|
o_weight <= {`BIT_WIDTH{1'b0}};
|
|
o_layer <= {`LAYER_WIDTH{1'b0}};
|
|
o_dead <= 1'b1;
|
|
o_hit <= 1'b0;
|
|
end else if(enable) begin
|
|
o_x <= i_x;
|
|
o_y <= i_y;
|
|
o_z <= i_z;
|
|
o_ux <= i_ux;
|
|
o_uy <= i_uy;
|
|
o_uz <= i_uz;
|
|
o_sz <= i_sz;
|
|
o_sr <= i_sr;
|
|
o_sleftz <= i_sleftz;
|
|
o_sleftr <= i_sleftr;
|
|
o_weight <= i_weight;
|
|
o_layer <= i_layer;
|
|
o_dead <= i_dead;
|
|
o_hit <= i_hit;
|
|
end
|
|
endmodule
|
|
|
|
|
|
//module FluenceUpdate ( //INPUTS
|
|
module Absorber ( //INPUTS
|
|
clock, reset, enable,
|
|
|
|
//From hopper
|
|
weight_hop, hit_hop, dead_hop,
|
|
|
|
//From Shared Registers
|
|
x_pipe, y_pipe, z_pipe, layer_pipe,
|
|
|
|
//From System Register File (5 layers)
|
|
muaFraction1, muaFraction2, muaFraction3, muaFraction4, muaFraction5,
|
|
|
|
//I/O to on-chip mem -- check interface
|
|
data, rdaddress, wraddress, wren, q,
|
|
|
|
//OUTPUT
|
|
weight_absorber
|
|
|
|
);
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//PARAMETERS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//parameter `NR=256;
|
|
//parameter `NZ=256;
|
|
//
|
|
//parameter `NR_EXP=8; //meaning `NR=2^`NR_exp or 2^8=256
|
|
//parameter `RGRID_SCLAE_EXP=21; //2^21 = RGRID_SCALE
|
|
//parameter `ZGRID_SCLAE_EXP=21; //2^21 = ZGRID_SCALE
|
|
//
|
|
//
|
|
//parameter `BIT_WIDTH=32;
|
|
//parameter `BIT_WIDTH_2=64;
|
|
//parameter `WORD_WIDTH=64;
|
|
//parameter `ADDR_WIDTH=16; //256x256=2^8*2^8=2^16
|
|
//
|
|
//
|
|
//parameter `LAYER_WIDTH=3;
|
|
//parameter `PIPE_DEPTH = 37;
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//INPUTS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
//From hopper
|
|
input [`BIT_WIDTH-1:0] weight_hop;
|
|
input hit_hop;
|
|
input dead_hop;
|
|
|
|
//From Shared Reg
|
|
//input signed [`BIT_WIDTH-1:0] x_pipe;
|
|
//input signed [`BIT_WIDTH-1:0] y_pipe;
|
|
input [`BIT_WIDTH-1:0] x_pipe;
|
|
input [`BIT_WIDTH-1:0] y_pipe;
|
|
input [`BIT_WIDTH-1:0] z_pipe;
|
|
input [`LAYER_WIDTH-1:0] layer_pipe;
|
|
|
|
//From System Reg File
|
|
input [`BIT_WIDTH-1:0] muaFraction1, muaFraction2, muaFraction3, muaFraction4, muaFraction5;
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//OUTPUTS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
output [`BIT_WIDTH-1:0] weight_absorber;
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//I/O to on-chip mem -- check interface
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
output [`WORD_WIDTH-1:0] data;
|
|
output [`ADDR_WIDTH-1:0] rdaddress, wraddress;
|
|
output wren;
|
|
reg wren;
|
|
input [`WORD_WIDTH-1:0] q;
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//Local AND Registered Value Variables
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//STAGE 1 - Do nothing
|
|
|
|
//STAGE 2
|
|
reg [`BIT_WIDTH_2-1:0] x2_temp, y2_temp; //From mult
|
|
reg [`BIT_WIDTH_2-1:0] x2_P, y2_P; //Registered Value
|
|
|
|
//STAGE 3
|
|
reg [`BIT_WIDTH_2-1:0] r2_temp, r2_P;
|
|
wire [`BIT_WIDTH_2-1:0] r2_P_wire;
|
|
|
|
//STAGE 4
|
|
reg [`BIT_WIDTH-1:0] fractionScaled;
|
|
reg [`BIT_WIDTH-1:0] weight_P4;
|
|
reg [`BIT_WIDTH-1:0] r_P;
|
|
wire [`BIT_WIDTH-1:0] r_P_wire;
|
|
|
|
reg [`BIT_WIDTH_2-1:0] product64bit;
|
|
reg [`BIT_WIDTH-1:0] dwa_temp;
|
|
|
|
//STAGE 14
|
|
reg [`BIT_WIDTH-1:0] ir_temp;
|
|
reg [`BIT_WIDTH-1:0] iz_temp;
|
|
|
|
//STAGE 15
|
|
reg [`BIT_WIDTH-1:0] ir_P;
|
|
reg [`BIT_WIDTH-1:0] iz_P;
|
|
reg [`BIT_WIDTH-1:0] ir_scaled;
|
|
reg [`ADDR_WIDTH-1:0] rADDR_temp;
|
|
reg [`ADDR_WIDTH-1:0] rADDR_16;
|
|
|
|
//STAGE 16
|
|
reg [`WORD_WIDTH-1:0] oldAbs_MEM;
|
|
reg [`WORD_WIDTH-1:0] oldAbs_P;
|
|
reg [`ADDR_WIDTH-1:0] rADDR_17;
|
|
|
|
//STAGE 17
|
|
reg [`BIT_WIDTH-1:0] weight_P;
|
|
reg [`BIT_WIDTH-1:0] dwa_P;
|
|
reg [`BIT_WIDTH-1:0] newWeight;
|
|
|
|
reg [`WORD_WIDTH-1:0] newAbs_P;
|
|
reg [`WORD_WIDTH-1:0] newAbs_temp;
|
|
|
|
//reg [`ADDR_WIDTH-1:0] wADDR;
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//PIPELINE weight, hit, dead
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//WIRES FOR CONNECTING REGISTERS
|
|
|
|
//peter m made this manual
|
|
//wire [32-1:0] weight [37:0];
|
|
|
|
wire [32-1:0] weight__0;
|
|
wire [32-1:0] weight__1;
|
|
wire [32-1:0] weight__2;
|
|
wire [32-1:0] weight__3;
|
|
wire [32-1:0] weight__4;
|
|
wire [32-1:0] weight__5;
|
|
wire [32-1:0] weight__6;
|
|
wire [32-1:0] weight__7;
|
|
wire [32-1:0] weight__8;
|
|
wire [32-1:0] weight__9;
|
|
wire [32-1:0] weight__10;
|
|
wire [32-1:0] weight__11;
|
|
wire [32-1:0] weight__12;
|
|
wire [32-1:0] weight__13;
|
|
wire [32-1:0] weight__14;
|
|
wire [32-1:0] weight__15;
|
|
wire [32-1:0] weight__16;
|
|
wire [32-1:0] weight__17;
|
|
wire [32-1:0] weight__18;
|
|
wire [32-1:0] weight__19;
|
|
wire [32-1:0] weight__20;
|
|
wire [32-1:0] weight__21;
|
|
wire [32-1:0] weight__22;
|
|
wire [32-1:0] weight__23;
|
|
wire [32-1:0] weight__24;
|
|
wire [32-1:0] weight__25;
|
|
wire [32-1:0] weight__26;
|
|
wire [32-1:0] weight__27;
|
|
wire [32-1:0] weight__28;
|
|
wire [32-1:0] weight__29;
|
|
wire [32-1:0] weight__30;
|
|
wire [32-1:0] weight__31;
|
|
wire [32-1:0] weight__32;
|
|
wire [32-1:0] weight__33;
|
|
wire [32-1:0] weight__34;
|
|
wire [32-1:0] weight__35;
|
|
wire [32-1:0] weight__36;
|
|
wire [32-1:0] weight__37;
|
|
|
|
|
|
//wire [37:0] hit ;
|
|
wire hit__0;
|
|
wire hit__1;
|
|
wire hit__2;
|
|
wire hit__3;
|
|
wire hit__4;
|
|
wire hit__5;
|
|
wire hit__6;
|
|
wire hit__7;
|
|
wire hit__8;
|
|
wire hit__9;
|
|
wire hit__10;
|
|
wire hit__11;
|
|
wire hit__12;
|
|
wire hit__13;
|
|
wire hit__14;
|
|
wire hit__15;
|
|
wire hit__16;
|
|
wire hit__17;
|
|
wire hit__18;
|
|
wire hit__19;
|
|
wire hit__20;
|
|
wire hit__21;
|
|
wire hit__22;
|
|
wire hit__23;
|
|
wire hit__24;
|
|
wire hit__25;
|
|
wire hit__26;
|
|
wire hit__27;
|
|
wire hit__28;
|
|
wire hit__29;
|
|
wire hit__30;
|
|
wire hit__31;
|
|
wire hit__32;
|
|
wire hit__33;
|
|
wire hit__34;
|
|
wire hit__35;
|
|
wire hit__36;
|
|
wire hit__37;
|
|
|
|
|
|
|
|
//wire [37:0] dead ;
|
|
wire dead__0;
|
|
wire dead__1;
|
|
wire dead__2;
|
|
wire dead__3;
|
|
wire dead__4;
|
|
wire dead__5;
|
|
wire dead__6;
|
|
wire dead__7;
|
|
wire dead__8;
|
|
wire dead__9;
|
|
wire dead__10;
|
|
wire dead__11;
|
|
wire dead__12;
|
|
wire dead__13;
|
|
wire dead__14;
|
|
wire dead__15;
|
|
wire dead__16;
|
|
wire dead__17;
|
|
wire dead__18;
|
|
wire dead__19;
|
|
wire dead__20;
|
|
wire dead__21;
|
|
wire dead__22;
|
|
wire dead__23;
|
|
wire dead__24;
|
|
wire dead__25;
|
|
wire dead__26;
|
|
wire dead__27;
|
|
wire dead__28;
|
|
wire dead__29;
|
|
wire dead__30;
|
|
wire dead__31;
|
|
wire dead__32;
|
|
wire dead__33;
|
|
wire dead__34;
|
|
wire dead__35;
|
|
wire dead__36;
|
|
wire dead__37;
|
|
|
|
|
|
//ASSIGNMENTS FROM INPUTS TO PIPE
|
|
assign weight__0 = weight_hop;
|
|
assign hit__0 = hit_hop;
|
|
assign dead__0 = dead_hop;
|
|
|
|
//ASSIGNMENTS FROM PIPE TO OUTPUT
|
|
assign weight_absorber = weight__37;
|
|
|
|
//GENERATE PIPELINE
|
|
//genvar i;
|
|
//generate
|
|
// for(i=`PIPE_DEPTH; i>0; i=i-1) begin: weightHitDeadPipe
|
|
// case(i)
|
|
//
|
|
// //REGISTER 17 on diagram!!
|
|
// 18:
|
|
// begin
|
|
//
|
|
// PhotonBlock2 photon(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_x(newWeight),
|
|
// .i_y(hit[17]),
|
|
// .i_z(dead[17]),
|
|
//
|
|
// //Outputs
|
|
// .o_x(weight[18]),
|
|
// .o_y(hit[18]),
|
|
// .o_z(dead[18])
|
|
// );
|
|
//
|
|
// end
|
|
// default:
|
|
// begin
|
|
// PhotonBlock2 photon(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_x(weight[i-1]),
|
|
// .i_y(hit[i-1]),
|
|
// .i_z(dead[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_x(weight[i]),
|
|
// .o_y(hit[i]),
|
|
// .o_z(dead[i])
|
|
// );
|
|
// end
|
|
// endcase
|
|
// end
|
|
//endgenerate
|
|
|
|
//Expand pipeline generation
|
|
//special case i = 18 first
|
|
PhotonBlock2 photon18(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_x(newWeight),
|
|
.i_y(hit__17),
|
|
.i_z(dead__17),
|
|
|
|
//Outputs
|
|
.o_x(weight__18),
|
|
.o_y(hit__18),
|
|
.o_z(dead__18)
|
|
);
|
|
|
|
PhotonBlock2 photon37(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__36),
|
|
.i_y(hit__36),
|
|
.i_z(dead__36),
|
|
//Outputs
|
|
.o_x(weight__37),
|
|
.o_y(hit__37),
|
|
.o_z(dead__37)
|
|
);
|
|
|
|
PhotonBlock2 photon36(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__35),
|
|
.i_y(hit__35),
|
|
.i_z(dead__35),
|
|
//Outputs
|
|
.o_x(weight__36),
|
|
.o_y(hit__36),
|
|
.o_z(dead__36)
|
|
);
|
|
|
|
PhotonBlock2 photon35(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__34),
|
|
.i_y(hit__34),
|
|
.i_z(dead__34),
|
|
//Outputs
|
|
.o_x(weight__35),
|
|
.o_y(hit__35),
|
|
.o_z(dead__35)
|
|
);
|
|
|
|
PhotonBlock2 photon34(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__33),
|
|
.i_y(hit__33),
|
|
.i_z(dead__33),
|
|
//Outputs
|
|
.o_x(weight__34),
|
|
.o_y(hit__34),
|
|
.o_z(dead__34)
|
|
);
|
|
|
|
PhotonBlock2 photon33(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__32),
|
|
.i_y(hit__32),
|
|
.i_z(dead__32),
|
|
//Outputs
|
|
.o_x(weight__33),
|
|
.o_y(hit__33),
|
|
.o_z(dead__33)
|
|
);
|
|
|
|
PhotonBlock2 photon32(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__31),
|
|
.i_y(hit__31),
|
|
.i_z(dead__31),
|
|
//Outputs
|
|
.o_x(weight__32),
|
|
.o_y(hit__32),
|
|
.o_z(dead__32)
|
|
);
|
|
|
|
PhotonBlock2 photon31(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__30),
|
|
.i_y(hit__30),
|
|
.i_z(dead__30),
|
|
//Outputs
|
|
.o_x(weight__31),
|
|
.o_y(hit__31),
|
|
.o_z(dead__31)
|
|
);
|
|
|
|
PhotonBlock2 photon30(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__29),
|
|
.i_y(hit__29),
|
|
.i_z(dead__29),
|
|
//Outputs
|
|
.o_x(weight__30),
|
|
.o_y(hit__30),
|
|
.o_z(dead__30)
|
|
);
|
|
|
|
PhotonBlock2 photon29(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__28),
|
|
.i_y(hit__28),
|
|
.i_z(dead__28),
|
|
//Outputs
|
|
.o_x(weight__29),
|
|
.o_y(hit__29),
|
|
.o_z(dead__29)
|
|
);
|
|
|
|
PhotonBlock2 photon28(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__27),
|
|
.i_y(hit__27),
|
|
.i_z(dead__27),
|
|
//Outputs
|
|
.o_x(weight__28),
|
|
.o_y(hit__28),
|
|
.o_z(dead__28)
|
|
);
|
|
|
|
PhotonBlock2 photon27(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__26),
|
|
.i_y(hit__26),
|
|
.i_z(dead__26),
|
|
//Outputs
|
|
.o_x(weight__27),
|
|
.o_y(hit__27),
|
|
.o_z(dead__27)
|
|
);
|
|
|
|
PhotonBlock2 photon26(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__25),
|
|
.i_y(hit__25),
|
|
.i_z(dead__25),
|
|
//Outputs
|
|
.o_x(weight__26),
|
|
.o_y(hit__26),
|
|
.o_z(dead__26)
|
|
);
|
|
|
|
PhotonBlock2 photon25(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__24),
|
|
.i_y(hit__24),
|
|
.i_z(dead__24),
|
|
//Outputs
|
|
.o_x(weight__25),
|
|
.o_y(hit__25),
|
|
.o_z(dead__25)
|
|
);
|
|
|
|
PhotonBlock2 photon24(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__23),
|
|
.i_y(hit__23),
|
|
.i_z(dead__23),
|
|
//Outputs
|
|
.o_x(weight__24),
|
|
.o_y(hit__24),
|
|
.o_z(dead__24)
|
|
);
|
|
|
|
PhotonBlock2 photon23(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__22),
|
|
.i_y(hit__22),
|
|
.i_z(dead__22),
|
|
//Outputs
|
|
.o_x(weight__23),
|
|
.o_y(hit__23),
|
|
.o_z(dead__23)
|
|
);
|
|
|
|
PhotonBlock2 photon22(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__21),
|
|
.i_y(hit__21),
|
|
.i_z(dead__21),
|
|
//Outputs
|
|
.o_x(weight__22),
|
|
.o_y(hit__22),
|
|
.o_z(dead__22)
|
|
);
|
|
|
|
PhotonBlock2 photon21(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__20),
|
|
.i_y(hit__20),
|
|
.i_z(dead__20),
|
|
//Outputs
|
|
.o_x(weight__21),
|
|
.o_y(hit__21),
|
|
.o_z(dead__21)
|
|
);
|
|
|
|
PhotonBlock2 photon20(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__19),
|
|
.i_y(hit__19),
|
|
.i_z(dead__19),
|
|
//Outputs
|
|
.o_x(weight__20),
|
|
.o_y(hit__20),
|
|
.o_z(dead__20)
|
|
);
|
|
|
|
PhotonBlock2 photon19(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__18),
|
|
.i_y(hit__18),
|
|
.i_z(dead__18),
|
|
//Outputs
|
|
.o_x(weight__19),
|
|
.o_y(hit__19),
|
|
.o_z(dead__19)
|
|
);
|
|
|
|
|
|
PhotonBlock2 photon17(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__16),
|
|
.i_y(hit__16),
|
|
.i_z(dead__16),
|
|
//Outputs
|
|
.o_x(weight__17),
|
|
.o_y(hit__17),
|
|
.o_z(dead__17)
|
|
);
|
|
|
|
PhotonBlock2 photon16(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__15),
|
|
.i_y(hit__15),
|
|
.i_z(dead__15),
|
|
//Outputs
|
|
.o_x(weight__16),
|
|
.o_y(hit__16),
|
|
.o_z(dead__16)
|
|
);
|
|
|
|
PhotonBlock2 photon15(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__14),
|
|
.i_y(hit__14),
|
|
.i_z(dead__14),
|
|
//Outputs
|
|
.o_x(weight__15),
|
|
.o_y(hit__15),
|
|
.o_z(dead__15)
|
|
);
|
|
|
|
PhotonBlock2 photon14(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__13),
|
|
.i_y(hit__13),
|
|
.i_z(dead__13),
|
|
//Outputs
|
|
.o_x(weight__14),
|
|
.o_y(hit__14),
|
|
.o_z(dead__14)
|
|
);
|
|
|
|
PhotonBlock2 photon13(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__12),
|
|
.i_y(hit__12),
|
|
.i_z(dead__12),
|
|
//Outputs
|
|
.o_x(weight__13),
|
|
.o_y(hit__13),
|
|
.o_z(dead__13)
|
|
);
|
|
|
|
PhotonBlock2 photon12(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__11),
|
|
.i_y(hit__11),
|
|
.i_z(dead__11),
|
|
//Outputs
|
|
.o_x(weight__12),
|
|
.o_y(hit__12),
|
|
.o_z(dead__12)
|
|
);
|
|
|
|
PhotonBlock2 photon11(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__10),
|
|
.i_y(hit__10),
|
|
.i_z(dead__10),
|
|
//Outputs
|
|
.o_x(weight__11),
|
|
.o_y(hit__11),
|
|
.o_z(dead__11)
|
|
);
|
|
|
|
PhotonBlock2 photon10(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__9),
|
|
.i_y(hit__9),
|
|
.i_z(dead__9),
|
|
//Outputs
|
|
.o_x(weight__10),
|
|
.o_y(hit__10),
|
|
.o_z(dead__10)
|
|
);
|
|
|
|
PhotonBlock2 photon9(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__8),
|
|
.i_y(hit__8),
|
|
.i_z(dead__8),
|
|
//Outputs
|
|
.o_x(weight__9),
|
|
.o_y(hit__9),
|
|
.o_z(dead__9)
|
|
);
|
|
|
|
PhotonBlock2 photon8(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__7),
|
|
.i_y(hit__7),
|
|
.i_z(dead__7),
|
|
//Outputs
|
|
.o_x(weight__8),
|
|
.o_y(hit__8),
|
|
.o_z(dead__8)
|
|
);
|
|
|
|
PhotonBlock2 photon7(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__6),
|
|
.i_y(hit__6),
|
|
.i_z(dead__6),
|
|
//Outputs
|
|
.o_x(weight__7),
|
|
.o_y(hit__7),
|
|
.o_z(dead__7)
|
|
);
|
|
|
|
PhotonBlock2 photon6(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__5),
|
|
.i_y(hit__5),
|
|
.i_z(dead__5),
|
|
//Outputs
|
|
.o_x(weight__6),
|
|
.o_y(hit__6),
|
|
.o_z(dead__6)
|
|
);
|
|
|
|
PhotonBlock2 photon5(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__4),
|
|
.i_y(hit__4),
|
|
.i_z(dead__4),
|
|
//Outputs
|
|
.o_x(weight__5),
|
|
.o_y(hit__5),
|
|
.o_z(dead__5)
|
|
);
|
|
|
|
PhotonBlock2 photon4(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__3),
|
|
.i_y(hit__3),
|
|
.i_z(dead__3),
|
|
//Outputs
|
|
.o_x(weight__4),
|
|
.o_y(hit__4),
|
|
.o_z(dead__4)
|
|
);
|
|
|
|
PhotonBlock2 photon3(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__2),
|
|
.i_y(hit__2),
|
|
.i_z(dead__2),
|
|
//Outputs
|
|
.o_x(weight__3),
|
|
.o_y(hit__3),
|
|
.o_z(dead__3)
|
|
);
|
|
|
|
PhotonBlock2 photon2(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__1),
|
|
.i_y(hit__1),
|
|
.i_z(dead__1),
|
|
//Outputs
|
|
.o_x(weight__2),
|
|
.o_y(hit__2),
|
|
.o_z(dead__2)
|
|
);
|
|
|
|
PhotonBlock2 photon1(
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(weight__0),
|
|
.i_y(hit__0),
|
|
.i_z(dead__0),
|
|
//Outputs
|
|
.o_x(weight__1),
|
|
.o_y(hit__1),
|
|
.o_z(dead__1)
|
|
);
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//PIPELINE ir,iz,dwa
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//WIRES FOR CONNECTING REGISTERS
|
|
//wire [32-1:0] ir [37:0];
|
|
|
|
wire [32-1:0] ir__0;
|
|
wire [32-1:0] ir__1;
|
|
wire [32-1:0] ir__2;
|
|
wire [32-1:0] ir__3;
|
|
wire [32-1:0] ir__4;
|
|
wire [32-1:0] ir__5;
|
|
wire [32-1:0] ir__6;
|
|
wire [32-1:0] ir__7;
|
|
wire [32-1:0] ir__8;
|
|
wire [32-1:0] ir__9;
|
|
wire [32-1:0] ir__10;
|
|
wire [32-1:0] ir__11;
|
|
wire [32-1:0] ir__12;
|
|
wire [32-1:0] ir__13;
|
|
wire [32-1:0] ir__14;
|
|
wire [32-1:0] ir__15;
|
|
wire [32-1:0] ir__16;
|
|
wire [32-1:0] ir__17;
|
|
wire [32-1:0] ir__18;
|
|
wire [32-1:0] ir__19;
|
|
wire [32-1:0] ir__20;
|
|
wire [32-1:0] ir__21;
|
|
wire [32-1:0] ir__22;
|
|
wire [32-1:0] ir__23;
|
|
wire [32-1:0] ir__24;
|
|
wire [32-1:0] ir__25;
|
|
wire [32-1:0] ir__26;
|
|
wire [32-1:0] ir__27;
|
|
wire [32-1:0] ir__28;
|
|
wire [32-1:0] ir__29;
|
|
wire [32-1:0] ir__30;
|
|
wire [32-1:0] ir__31;
|
|
wire [32-1:0] ir__32;
|
|
wire [32-1:0] ir__33;
|
|
wire [32-1:0] ir__34;
|
|
wire [32-1:0] ir__35;
|
|
wire [32-1:0] ir__36;
|
|
wire [32-1:0] ir__37;
|
|
|
|
|
|
//wire [32-1:0] iz [37:0];
|
|
|
|
|
|
wire [32-1:0] iz__0;
|
|
wire [32-1:0] iz__1;
|
|
wire [32-1:0] iz__2;
|
|
wire [32-1:0] iz__3;
|
|
wire [32-1:0] iz__4;
|
|
wire [32-1:0] iz__5;
|
|
wire [32-1:0] iz__6;
|
|
wire [32-1:0] iz__7;
|
|
wire [32-1:0] iz__8;
|
|
wire [32-1:0] iz__9;
|
|
wire [32-1:0] iz__10;
|
|
wire [32-1:0] iz__11;
|
|
wire [32-1:0] iz__12;
|
|
wire [32-1:0] iz__13;
|
|
wire [32-1:0] iz__14;
|
|
wire [32-1:0] iz__15;
|
|
wire [32-1:0] iz__16;
|
|
wire [32-1:0] iz__17;
|
|
wire [32-1:0] iz__18;
|
|
wire [32-1:0] iz__19;
|
|
wire [32-1:0] iz__20;
|
|
wire [32-1:0] iz__21;
|
|
wire [32-1:0] iz__22;
|
|
wire [32-1:0] iz__23;
|
|
wire [32-1:0] iz__24;
|
|
wire [32-1:0] iz__25;
|
|
wire [32-1:0] iz__26;
|
|
wire [32-1:0] iz__27;
|
|
wire [32-1:0] iz__28;
|
|
wire [32-1:0] iz__29;
|
|
wire [32-1:0] iz__30;
|
|
wire [32-1:0] iz__31;
|
|
wire [32-1:0] iz__32;
|
|
wire [32-1:0] iz__33;
|
|
wire [32-1:0] iz__34;
|
|
wire [32-1:0] iz__35;
|
|
wire [32-1:0] iz__36;
|
|
wire [32-1:0] iz__37;
|
|
|
|
|
|
//wire [32-1:0] dwa [37:0];
|
|
|
|
|
|
wire [32-1:0] dwa__0;
|
|
wire [32-1:0] dwa__1;
|
|
wire [32-1:0] dwa__2;
|
|
wire [32-1:0] dwa__3;
|
|
wire [32-1:0] dwa__4;
|
|
wire [32-1:0] dwa__5;
|
|
wire [32-1:0] dwa__6;
|
|
wire [32-1:0] dwa__7;
|
|
wire [32-1:0] dwa__8;
|
|
wire [32-1:0] dwa__9;
|
|
wire [32-1:0] dwa__10;
|
|
wire [32-1:0] dwa__11;
|
|
wire [32-1:0] dwa__12;
|
|
wire [32-1:0] dwa__13;
|
|
wire [32-1:0] dwa__14;
|
|
wire [32-1:0] dwa__15;
|
|
wire [32-1:0] dwa__16;
|
|
wire [32-1:0] dwa__17;
|
|
wire [32-1:0] dwa__18;
|
|
wire [32-1:0] dwa__19;
|
|
wire [32-1:0] dwa__20;
|
|
wire [32-1:0] dwa__21;
|
|
wire [32-1:0] dwa__22;
|
|
wire [32-1:0] dwa__23;
|
|
wire [32-1:0] dwa__24;
|
|
wire [32-1:0] dwa__25;
|
|
wire [32-1:0] dwa__26;
|
|
wire [32-1:0] dwa__27;
|
|
wire [32-1:0] dwa__28;
|
|
wire [32-1:0] dwa__29;
|
|
wire [32-1:0] dwa__30;
|
|
wire [32-1:0] dwa__31;
|
|
wire [32-1:0] dwa__32;
|
|
wire [32-1:0] dwa__33;
|
|
wire [32-1:0] dwa__34;
|
|
wire [32-1:0] dwa__35;
|
|
wire [32-1:0] dwa__36;
|
|
wire [32-1:0] dwa__37;
|
|
|
|
|
|
//ASSIGNMENTS FROM INPUTS TO PIPE
|
|
assign ir__0 = 32'b0;
|
|
assign iz__0 = 32'b0;
|
|
assign dwa__0 = 32'b0;
|
|
|
|
//GENERATE PIPELINE
|
|
//generate
|
|
// for(i=`PIPE_DEPTH; i>0; i=i-1) begin: IrIzDwaPipe
|
|
// case(i)
|
|
//
|
|
// //NOTE: STAGE 14 --> REGISTER 14 on diagram !! ir, iz
|
|
// 15:
|
|
// begin
|
|
//
|
|
// PhotonBlock1 photon(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_x(ir_temp),
|
|
// .i_y(iz_temp),
|
|
// .i_z(dwa[14]),
|
|
//
|
|
// //Outputs
|
|
// .o_x(ir[15]),
|
|
// .o_y(iz[15]),
|
|
// .o_z(dwa[15])
|
|
// );
|
|
//
|
|
// end
|
|
//
|
|
// //NOTE: STAGE 4 --> REGISTER 4 on diagram !! dwa
|
|
// 5:
|
|
// begin
|
|
//
|
|
// PhotonBlock1 photon(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_x(ir[4]),
|
|
// .i_y(iz[4]),
|
|
// .i_z(dwa_temp),
|
|
//
|
|
// //Outputs
|
|
// .o_x(ir[5]),
|
|
// .o_y(iz[5]),
|
|
// .o_z(dwa[5])
|
|
// );
|
|
//
|
|
// end
|
|
//
|
|
// default:
|
|
// begin
|
|
//
|
|
// PhotonBlock1 photon(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_x(ir[i-1]),
|
|
// .i_y(iz[i-1]),
|
|
// .i_z(dwa[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_x(ir[i]),
|
|
// .o_y(iz[i]),
|
|
// .o_z(dwa[i])
|
|
// );
|
|
// end
|
|
// endcase
|
|
// end
|
|
//endgenerate
|
|
|
|
//Expanded generation
|
|
|
|
|
|
//special cases first peter m
|
|
|
|
|
|
|
|
PhotonBlock1 photon15q(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_x(ir_temp),
|
|
.i_y(iz_temp),
|
|
.i_z(dwa__14),
|
|
|
|
//Outputs
|
|
.o_x(ir__15),
|
|
.o_y(iz__15),
|
|
.o_z(dwa__15)
|
|
);
|
|
|
|
|
|
|
|
//NOTE: STAGE 4 --> REGISTER 4 on diagram !! dwa
|
|
|
|
|
|
PhotonBlock1 photon5q(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_x(ir__4),
|
|
.i_y(iz__4),
|
|
.i_z(dwa_temp),
|
|
|
|
//Outputs
|
|
.o_x(ir__5),
|
|
.o_y(iz__5),
|
|
.o_z(dwa__5)
|
|
);
|
|
|
|
PhotonBlock1 photon37q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__36),
|
|
.i_y(iz__36),
|
|
.i_z(dwa__36),
|
|
//Outputs
|
|
.o_x(ir__37),
|
|
.o_y(iz__37),
|
|
.o_z(dwa__37)
|
|
);
|
|
PhotonBlock1 photon36q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__35),
|
|
.i_y(iz__35),
|
|
.i_z(dwa__35),
|
|
//Outputs
|
|
.o_x(ir__36),
|
|
.o_y(iz__36),
|
|
.o_z(dwa__36)
|
|
);
|
|
PhotonBlock1 photon35q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__34),
|
|
.i_y(iz__34),
|
|
.i_z(dwa__34),
|
|
//Outputs
|
|
.o_x(ir__35),
|
|
.o_y(iz__35),
|
|
.o_z(dwa__35)
|
|
);
|
|
PhotonBlock1 photon34q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__33),
|
|
.i_y(iz__33),
|
|
.i_z(dwa__33),
|
|
//Outputs
|
|
.o_x(ir__34),
|
|
.o_y(iz__34),
|
|
.o_z(dwa__34)
|
|
);
|
|
PhotonBlock1 photon33q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__32),
|
|
.i_y(iz__32),
|
|
.i_z(dwa__32),
|
|
//Outputs
|
|
.o_x(ir__33),
|
|
.o_y(iz__33),
|
|
.o_z(dwa__33)
|
|
);
|
|
PhotonBlock1 photon32q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__31),
|
|
.i_y(iz__31),
|
|
.i_z(dwa__31),
|
|
//Outputs
|
|
.o_x(ir__32),
|
|
.o_y(iz__32),
|
|
.o_z(dwa__32)
|
|
);
|
|
PhotonBlock1 photon31q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__30),
|
|
.i_y(iz__30),
|
|
.i_z(dwa__30),
|
|
//Outputs
|
|
.o_x(ir__31),
|
|
.o_y(iz__31),
|
|
.o_z(dwa__31)
|
|
);
|
|
PhotonBlock1 photon30q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__29),
|
|
.i_y(iz__29),
|
|
.i_z(dwa__29),
|
|
//Outputs
|
|
.o_x(ir__30),
|
|
.o_y(iz__30),
|
|
.o_z(dwa__30)
|
|
);
|
|
PhotonBlock1 photon29q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__28),
|
|
.i_y(iz__28),
|
|
.i_z(dwa__28),
|
|
//Outputs
|
|
.o_x(ir__29),
|
|
.o_y(iz__29),
|
|
.o_z(dwa__29)
|
|
);
|
|
PhotonBlock1 photon28q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__27),
|
|
.i_y(iz__27),
|
|
.i_z(dwa__27),
|
|
//Outputs
|
|
.o_x(ir__28),
|
|
.o_y(iz__28),
|
|
.o_z(dwa__28)
|
|
);
|
|
PhotonBlock1 photon27q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__26),
|
|
.i_y(iz__26),
|
|
.i_z(dwa__26),
|
|
//Outputs
|
|
.o_x(ir__27),
|
|
.o_y(iz__27),
|
|
.o_z(dwa__27)
|
|
);
|
|
PhotonBlock1 photon26q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__25),
|
|
.i_y(iz__25),
|
|
.i_z(dwa__25),
|
|
//Outputs
|
|
.o_x(ir__26),
|
|
.o_y(iz__26),
|
|
.o_z(dwa__26)
|
|
);
|
|
PhotonBlock1 photon25q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__24),
|
|
.i_y(iz__24),
|
|
.i_z(dwa__24),
|
|
//Outputs
|
|
.o_x(ir__25),
|
|
.o_y(iz__25),
|
|
.o_z(dwa__25)
|
|
);
|
|
PhotonBlock1 photon24q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__23),
|
|
.i_y(iz__23),
|
|
.i_z(dwa__23),
|
|
//Outputs
|
|
.o_x(ir__24),
|
|
.o_y(iz__24),
|
|
.o_z(dwa__24)
|
|
);
|
|
PhotonBlock1 photon23q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__22),
|
|
.i_y(iz__22),
|
|
.i_z(dwa__22),
|
|
//Outputs
|
|
.o_x(ir__23),
|
|
.o_y(iz__23),
|
|
.o_z(dwa__23)
|
|
);
|
|
PhotonBlock1 photon22q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__21),
|
|
.i_y(iz__21),
|
|
.i_z(dwa__21),
|
|
//Outputs
|
|
.o_x(ir__22),
|
|
.o_y(iz__22),
|
|
.o_z(dwa__22)
|
|
);
|
|
PhotonBlock1 photon21q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__20),
|
|
.i_y(iz__20),
|
|
.i_z(dwa__20),
|
|
//Outputs
|
|
.o_x(ir__21),
|
|
.o_y(iz__21),
|
|
.o_z(dwa__21)
|
|
);
|
|
PhotonBlock1 photon20q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__19),
|
|
.i_y(iz__19),
|
|
.i_z(dwa__19),
|
|
//Outputs
|
|
.o_x(ir__20),
|
|
.o_y(iz__20),
|
|
.o_z(dwa__20)
|
|
);
|
|
PhotonBlock1 photon19q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__18),
|
|
.i_y(iz__18),
|
|
.i_z(dwa__18),
|
|
//Outputs
|
|
.o_x(ir__19),
|
|
.o_y(iz__19),
|
|
.o_z(dwa__19)
|
|
);
|
|
PhotonBlock1 photon18q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__17),
|
|
.i_y(iz__17),
|
|
.i_z(dwa__17),
|
|
//Outputs
|
|
.o_x(ir__18),
|
|
.o_y(iz__18),
|
|
.o_z(dwa__18)
|
|
);
|
|
PhotonBlock1 photon17q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__16),
|
|
.i_y(iz__16),
|
|
.i_z(dwa__16),
|
|
//Outputs
|
|
.o_x(ir__17),
|
|
.o_y(iz__17),
|
|
.o_z(dwa__17)
|
|
);
|
|
PhotonBlock1 photon16q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__15),
|
|
.i_y(iz__15),
|
|
.i_z(dwa__15),
|
|
//Outputs
|
|
.o_x(ir__16),
|
|
.o_y(iz__16),
|
|
.o_z(dwa__16)
|
|
);
|
|
|
|
|
|
|
|
|
|
PhotonBlock1 photon14q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__13),
|
|
.i_y(iz__13),
|
|
.i_z(dwa__13),
|
|
//Outputs
|
|
.o_x(ir__14),
|
|
.o_y(iz__14),
|
|
.o_z(dwa__14)
|
|
);
|
|
PhotonBlock1 photon13q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__12),
|
|
.i_y(iz__12),
|
|
.i_z(dwa__12),
|
|
//Outputs
|
|
.o_x(ir__13),
|
|
.o_y(iz__13),
|
|
.o_z(dwa__13)
|
|
);
|
|
PhotonBlock1 photon12q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__11),
|
|
.i_y(iz__11),
|
|
.i_z(dwa__11),
|
|
//Outputs
|
|
.o_x(ir__12),
|
|
.o_y(iz__12),
|
|
.o_z(dwa__12)
|
|
);
|
|
PhotonBlock1 photon11q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__10),
|
|
.i_y(iz__10),
|
|
.i_z(dwa__10),
|
|
//Outputs
|
|
.o_x(ir__11),
|
|
.o_y(iz__11),
|
|
.o_z(dwa__11)
|
|
);
|
|
PhotonBlock1 photon10q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__9),
|
|
.i_y(iz__9),
|
|
.i_z(dwa__9),
|
|
//Outputs
|
|
.o_x(ir__10),
|
|
.o_y(iz__10),
|
|
.o_z(dwa__10)
|
|
);
|
|
PhotonBlock1 photon9q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__8),
|
|
.i_y(iz__8),
|
|
.i_z(dwa__8),
|
|
//Outputs
|
|
.o_x(ir__9),
|
|
.o_y(iz__9),
|
|
.o_z(dwa__9)
|
|
);
|
|
PhotonBlock1 photon8q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__7),
|
|
.i_y(iz__7),
|
|
.i_z(dwa__7),
|
|
//Outputs
|
|
.o_x(ir__8),
|
|
.o_y(iz__8),
|
|
.o_z(dwa__8)
|
|
);
|
|
PhotonBlock1 photon7q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__6),
|
|
.i_y(iz__6),
|
|
.i_z(dwa__6),
|
|
//Outputs
|
|
.o_x(ir__7),
|
|
.o_y(iz__7),
|
|
.o_z(dwa__7)
|
|
);
|
|
PhotonBlock1 photon6q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__5),
|
|
.i_y(iz__5),
|
|
.i_z(dwa__5),
|
|
//Outputs
|
|
.o_x(ir__6),
|
|
.o_y(iz__6),
|
|
.o_z(dwa__6)
|
|
);
|
|
|
|
|
|
|
|
PhotonBlock1 photon4q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__3),
|
|
.i_y(iz__3),
|
|
.i_z(dwa__3),
|
|
//Outputs
|
|
.o_x(ir__4),
|
|
.o_y(iz__4),
|
|
.o_z(dwa__4)
|
|
);
|
|
PhotonBlock1 photon3q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__2),
|
|
.i_y(iz__2),
|
|
.i_z(dwa__2),
|
|
//Outputs
|
|
.o_x(ir__3),
|
|
.o_y(iz__3),
|
|
.o_z(dwa__3)
|
|
);
|
|
PhotonBlock1 photon2q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__1),
|
|
.i_y(iz__1),
|
|
.i_z(dwa__1),
|
|
//Outputs
|
|
.o_x(ir__2),
|
|
.o_y(iz__2),
|
|
.o_z(dwa__2)
|
|
);
|
|
PhotonBlock1 photon1q(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_x(ir__0),
|
|
.i_y(iz__0),
|
|
.i_z(dwa__0),
|
|
//Outputs
|
|
.o_x(ir__1),
|
|
.o_y(iz__1),
|
|
.o_z(dwa__1)
|
|
);
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//STAGE BY STAGE PIPELINE DESIGN
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
///////////////STAGE 2 - square of x and y/////////////////////////
|
|
always @(reset or x_pipe or y_pipe) begin
|
|
if (reset) begin
|
|
x2_temp=0;
|
|
y2_temp=0;
|
|
end
|
|
else begin
|
|
x2_temp=x_pipe*x_pipe;
|
|
y2_temp=y_pipe*y_pipe;
|
|
end
|
|
end
|
|
|
|
///////////////STAGE 3 - square of r/////////////////////////
|
|
always @(reset or x2_P or y2_P) begin
|
|
if (reset)
|
|
r2_temp=0;
|
|
else
|
|
r2_temp=x2_P+y2_P;
|
|
end
|
|
|
|
///////////////STAGE 4 - Find r and dwa/////////////////////////
|
|
//Create MUX
|
|
always@(layer_pipe or muaFraction1 or muaFraction2 or muaFraction3 or muaFraction4 or muaFraction5)
|
|
case(layer_pipe)
|
|
1: fractionScaled=muaFraction1;
|
|
2: fractionScaled=muaFraction2;
|
|
3: fractionScaled=muaFraction3;
|
|
4: fractionScaled=muaFraction4;
|
|
5: fractionScaled=muaFraction5;
|
|
default: fractionScaled=0; //Sys Reset case
|
|
endcase
|
|
|
|
|
|
always @(reset or weight__4 or r_P_wire or weight_P4 or fractionScaled or product64bit or dead__4 or hit__4) begin
|
|
if (reset) begin
|
|
weight_P4=0;
|
|
r_P=0;
|
|
product64bit=0;
|
|
dwa_temp=0;
|
|
end
|
|
else begin
|
|
weight_P4=weight__4;
|
|
r_P=r_P_wire; //Connect to sqrt block
|
|
product64bit=weight_P4*fractionScaled;
|
|
|
|
//Checking corner cases
|
|
if (dead__4==1) //Dead photon
|
|
dwa_temp=weight_P4;//drop all its weight
|
|
else if (hit__4==1) //Hit Boundary
|
|
dwa_temp=0; //Don't add to absorption array
|
|
else
|
|
dwa_temp=product64bit[63:32];
|
|
end
|
|
end
|
|
|
|
assign r2_P_wire=r2_P;
|
|
|
|
Sqrt_64b squareRoot (
|
|
.clk(clock),
|
|
.num_(r2_P_wire),
|
|
.res(r_P_wire)
|
|
);
|
|
|
|
///////////////STAGE 14 - Find ir and iz/////////////////////////
|
|
always @(reset or r_P or z_pipe or dead__14 or hit__14 or iz_temp or ir_temp) begin
|
|
if (reset) begin
|
|
ir_temp=0;
|
|
iz_temp=0;
|
|
end
|
|
|
|
//Checking corner cases!!!
|
|
else begin
|
|
//ir_temp=r_P>>`RGRID_SCLAE_EXP;
|
|
//iz_temp=z_pipe>>`ZGRID_SCLAE_EXP;
|
|
if (dead__14==1) begin
|
|
ir_temp=`NR-1;
|
|
iz_temp=`NZ-1;
|
|
end
|
|
else if (hit__14==1) begin
|
|
ir_temp=0;
|
|
iz_temp=0;
|
|
end
|
|
else begin
|
|
if ((z_pipe>>`ZGRID_SCLAE_EXP) >=`NZ ) begin
|
|
iz_temp=`NZ-1;
|
|
end
|
|
else begin
|
|
iz_temp=z_pipe>>`ZGRID_SCLAE_EXP;
|
|
end
|
|
|
|
if ((r_P>>`RGRID_SCLAE_EXP) >= `NR ) begin
|
|
ir_temp=`NR-1;
|
|
end
|
|
else begin
|
|
ir_temp=r_P>>`RGRID_SCLAE_EXP;
|
|
end
|
|
end
|
|
|
|
// if (iz_temp>=`NZ) begin
|
|
// iz_temp=`NZ-1;
|
|
// end
|
|
//
|
|
//
|
|
// if (ir_temp>=`NR) begin
|
|
// ir_temp=`NR-1;
|
|
// end
|
|
|
|
|
|
end
|
|
end
|
|
|
|
///////////////STAGE 15 - Compute MEM address/////////////////////////
|
|
always @(reset or ir__15 or iz__15 or ir_P or iz_P or ir_scaled) begin
|
|
if (reset) begin
|
|
ir_P=0;
|
|
iz_P=0;
|
|
ir_scaled=0;
|
|
rADDR_temp=0;
|
|
end
|
|
else begin
|
|
ir_P=ir__15;
|
|
iz_P=iz__15;
|
|
ir_scaled=ir_P<<`NR_EXP;
|
|
rADDR_temp=ir_scaled[15:0] + iz_P[15:0];
|
|
end
|
|
end
|
|
|
|
///////////////STAGE 16 - MEM read/////////////////////////
|
|
always @(reset or ir__16 or ir__17 or iz__16 or iz__17 or ir__18 or iz__18 or newAbs_P or q or newAbs_temp) begin
|
|
if (reset) begin
|
|
oldAbs_MEM=0;
|
|
end else begin
|
|
//Check Corner cases (RAW hazards)
|
|
if ((ir__16==ir__17) && (iz__16==iz__17)) begin
|
|
oldAbs_MEM=newAbs_temp;
|
|
end else if ((ir__16==ir__18) && (iz__16==iz__18)) begin
|
|
oldAbs_MEM=newAbs_P; //RAW hazard
|
|
end else begin
|
|
oldAbs_MEM=q; //Connect to REAL dual-port MEM
|
|
end
|
|
end
|
|
|
|
end
|
|
|
|
///////////////STAGE 17 - Update Weight/////////////////////////
|
|
//TO BE TESTED!!!
|
|
always @(reset or dwa__17 or weight__17 or weight_P or dwa_P or oldAbs_P) begin
|
|
if(reset) begin
|
|
dwa_P=0; //How to specify Base 10???
|
|
weight_P=0;
|
|
newWeight = 0;
|
|
newAbs_temp =0;
|
|
end
|
|
else begin
|
|
dwa_P=dwa__17;
|
|
weight_P=weight__17;
|
|
newWeight=weight_P-dwa_P;
|
|
newAbs_temp=oldAbs_P+dwa_P; //Check bit width casting (64-bit<--64-bit+32-bit)
|
|
end
|
|
end
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//STAGE BY STAGE - EXTRA REGISTERS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
always @ (posedge clock)
|
|
begin
|
|
if (reset) begin
|
|
//Stage 2
|
|
x2_P<=0;
|
|
y2_P<=0;
|
|
|
|
//Stage 3
|
|
r2_P<=0;
|
|
|
|
//Stage 15
|
|
rADDR_16<=0;
|
|
|
|
//Stage 16
|
|
oldAbs_P<=0;
|
|
rADDR_17<=0;
|
|
|
|
//Stage 17
|
|
newAbs_P<=0;
|
|
// wADDR <=0;
|
|
end
|
|
|
|
else if (enable) begin
|
|
//Stage 2
|
|
x2_P<=x2_temp; //From comb logic above
|
|
y2_P<=y2_temp;
|
|
|
|
//Stage 3
|
|
r2_P<=r2_temp;
|
|
|
|
//Stage 15
|
|
rADDR_16<=rADDR_temp;
|
|
|
|
//Stage 16
|
|
oldAbs_P<=oldAbs_MEM;
|
|
rADDR_17<=rADDR_16;
|
|
|
|
//Stage 17
|
|
newAbs_P<=newAbs_temp;
|
|
// wADDR <=rADDR_17;
|
|
end
|
|
end
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//INTERFACE to on-chip MEM
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
always @ (posedge clock)
|
|
begin
|
|
if (reset)
|
|
wren <=0;
|
|
else
|
|
wren<=1; //Memory enabled every cycle after global enable
|
|
end
|
|
|
|
assign rdaddress=rADDR_temp;
|
|
assign wraddress=rADDR_17;
|
|
|
|
assign data=newAbs_temp;
|
|
|
|
endmodule
|
|
|
|
|
|
//Photons that make up the register pipeline
|
|
module PhotonBlock1(
|
|
//Inputs
|
|
clock,
|
|
reset,
|
|
enable,
|
|
|
|
i_x,
|
|
i_y,
|
|
i_z,
|
|
|
|
//Outputs
|
|
o_x,
|
|
o_y,
|
|
o_z
|
|
);
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//PARAMETERS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//parameter BIT_WIDTH=32;
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [`BIT_WIDTH-1:0] i_x;
|
|
input [`BIT_WIDTH-1:0] i_y;
|
|
input [`BIT_WIDTH-1:0] i_z;
|
|
|
|
|
|
output [`BIT_WIDTH-1:0] o_x;
|
|
output [`BIT_WIDTH-1:0] o_y;
|
|
output [`BIT_WIDTH-1:0] o_z;
|
|
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
|
|
wire [`BIT_WIDTH-1:0] i_x;
|
|
wire [`BIT_WIDTH-1:0] i_y;
|
|
wire [`BIT_WIDTH-1:0] i_z;
|
|
|
|
reg [`BIT_WIDTH-1:0] o_x;
|
|
reg [`BIT_WIDTH-1:0] o_y;
|
|
reg [`BIT_WIDTH-1:0] o_z;
|
|
|
|
always @ (posedge clock)
|
|
if(reset) begin
|
|
o_x <= {`BIT_WIDTH{1'b0}} ;
|
|
o_y <= {`BIT_WIDTH{1'b0}};
|
|
o_z <= {`BIT_WIDTH{1'b0}};
|
|
end else if(enable) begin
|
|
o_x <= i_x;
|
|
o_y <= i_y;
|
|
o_z <= i_z;
|
|
end
|
|
endmodule
|
|
|
|
|
|
//Photons that make up the register pipeline
|
|
module PhotonBlock2(
|
|
//Inputs
|
|
clock,
|
|
reset,
|
|
enable,
|
|
|
|
i_x,
|
|
i_y,
|
|
i_z,
|
|
|
|
//Outputs
|
|
o_x,
|
|
o_y,
|
|
o_z
|
|
);
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//PARAMETERS
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
//parameter BIT_WIDTH=32;
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [`BIT_WIDTH-1:0] i_x;
|
|
input i_y;
|
|
input i_z;
|
|
|
|
|
|
output [`BIT_WIDTH-1:0] o_x;
|
|
output o_y;
|
|
output o_z;
|
|
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
|
|
wire [`BIT_WIDTH-1:0] i_x;
|
|
wire i_y;
|
|
wire i_z;
|
|
|
|
reg [`BIT_WIDTH-1:0] o_x;
|
|
reg o_y;
|
|
reg o_z;
|
|
|
|
always @ (posedge clock)
|
|
if(reset) begin
|
|
o_x <= {`BIT_WIDTH{1'b0}} ;
|
|
o_y <= 1'b0;
|
|
o_z <= 1'b0;
|
|
end else if(enable) begin
|
|
o_x <= i_x;
|
|
o_y <= i_y;
|
|
o_z <= i_z;
|
|
end
|
|
endmodule
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
module ScattererReflectorWrapper (
|
|
//Inputs
|
|
clock,
|
|
reset,
|
|
enable,
|
|
//MEMORY WRAPPER
|
|
|
|
//Inputs
|
|
|
|
//Photon values
|
|
i_uz1_pipeWrapper,
|
|
i_hit2_pipeWrapper,
|
|
i_ux3_pipeWrapper,
|
|
i_uz3_pipeWrapper,
|
|
i_layer3_pipeWrapper,
|
|
i_hit4_pipeWrapper,
|
|
i_hit6_pipeWrapper,
|
|
i_hit16_pipeWrapper,
|
|
i_layer31_pipeWrapper,
|
|
i_uy32_pipeWrapper,
|
|
i_uz32_pipeWrapper,
|
|
i_hit33_pipeWrapper,
|
|
i_ux33_pipeWrapper,
|
|
i_uy33_pipeWrapper,
|
|
i_hit34_pipeWrapper,
|
|
i_ux35_pipeWrapper,
|
|
i_uy35_pipeWrapper,
|
|
i_uz35_pipeWrapper,
|
|
i_layer35_pipeWrapper,
|
|
i_hit36_pipeWrapper,
|
|
i_ux36_pipeWrapper,
|
|
i_uy36_pipeWrapper,
|
|
i_uz36_pipeWrapper,
|
|
i_layer36_pipeWrapper,
|
|
i_dead36_pipeWrapper,
|
|
|
|
|
|
//Memory Interface
|
|
//Inputs
|
|
rand2,
|
|
rand3,
|
|
rand5,
|
|
sint,
|
|
cost,
|
|
up_rFresnel,
|
|
down_rFresnel,
|
|
//Outputs
|
|
tindex,
|
|
fresIndex,
|
|
|
|
//Constants
|
|
down_niOverNt_1,
|
|
down_niOverNt_2,
|
|
down_niOverNt_3,
|
|
down_niOverNt_4,
|
|
down_niOverNt_5,
|
|
up_niOverNt_1,
|
|
up_niOverNt_2,
|
|
up_niOverNt_3,
|
|
up_niOverNt_4,
|
|
up_niOverNt_5,
|
|
down_niOverNt_2_1,
|
|
down_niOverNt_2_2,
|
|
down_niOverNt_2_3,
|
|
down_niOverNt_2_4,
|
|
down_niOverNt_2_5,
|
|
up_niOverNt_2_1,
|
|
up_niOverNt_2_2,
|
|
up_niOverNt_2_3,
|
|
up_niOverNt_2_4,
|
|
up_niOverNt_2_5,
|
|
downCritAngle_0,
|
|
downCritAngle_1,
|
|
downCritAngle_2,
|
|
downCritAngle_3,
|
|
downCritAngle_4,
|
|
upCritAngle_0,
|
|
upCritAngle_1,
|
|
upCritAngle_2,
|
|
upCritAngle_3,
|
|
upCritAngle_4,
|
|
|
|
//Outputs
|
|
ux_scatterer,
|
|
uy_scatterer,
|
|
uz_scatterer,
|
|
|
|
ux_reflector,
|
|
uy_reflector,
|
|
uz_reflector,
|
|
layer_reflector,
|
|
dead_reflector
|
|
);
|
|
|
|
//-------------------PARAMETER DEFINITION----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign values to parameters used later in the program.
|
|
|
|
//parameter INTMAX_2 = 64'h3FFFFFFF00000001;
|
|
//The above parameter is never used in the ScattererReflectorWrapper module itself
|
|
|
|
|
|
//-----------------------------PIN DECLARATION----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign appropriate types to pins (input or output).
|
|
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
input [2:0] i_layer31_pipeWrapper;
|
|
|
|
|
|
|
|
input [31:0] i_uz1_pipeWrapper;
|
|
input i_hit2_pipeWrapper;
|
|
input [31:0] i_ux3_pipeWrapper;
|
|
input [31:0] i_uz3_pipeWrapper;
|
|
input [2:0] i_layer3_pipeWrapper;
|
|
input i_hit4_pipeWrapper;
|
|
input i_hit6_pipeWrapper;
|
|
input i_hit16_pipeWrapper;
|
|
input [31:0] i_uy32_pipeWrapper;
|
|
input [31:0] i_uz32_pipeWrapper;
|
|
input i_hit33_pipeWrapper;
|
|
input [31:0] i_ux33_pipeWrapper;
|
|
input [31:0] i_uy33_pipeWrapper;
|
|
input i_hit34_pipeWrapper;
|
|
input [31:0] i_ux35_pipeWrapper;
|
|
input [31:0] i_uy35_pipeWrapper;
|
|
input [31:0] i_uz35_pipeWrapper;
|
|
input [2:0] i_layer35_pipeWrapper;
|
|
input i_hit36_pipeWrapper;
|
|
input [31:0] i_ux36_pipeWrapper;
|
|
input [31:0] i_uy36_pipeWrapper;
|
|
input [31:0] i_uz36_pipeWrapper;
|
|
input [2:0] i_layer36_pipeWrapper;
|
|
input i_dead36_pipeWrapper;
|
|
|
|
|
|
//Memory Interface
|
|
input [31:0] rand2;
|
|
input [31:0] rand3;
|
|
input [31:0] rand5;
|
|
input [31:0] sint;
|
|
input [31:0] cost;
|
|
input [31:0] up_rFresnel;
|
|
input [31:0] down_rFresnel;
|
|
|
|
output [12:0] tindex;
|
|
output [9:0] fresIndex;
|
|
|
|
|
|
//Constants
|
|
input [31:0] down_niOverNt_1;
|
|
input [31:0] down_niOverNt_2;
|
|
input [31:0] down_niOverNt_3;
|
|
input [31:0] down_niOverNt_4;
|
|
input [31:0] down_niOverNt_5;
|
|
input [31:0] up_niOverNt_1;
|
|
input [31:0] up_niOverNt_2;
|
|
input [31:0] up_niOverNt_3;
|
|
input [31:0] up_niOverNt_4;
|
|
input [31:0] up_niOverNt_5;
|
|
input [63:0] down_niOverNt_2_1;
|
|
input [63:0] down_niOverNt_2_2;
|
|
input [63:0] down_niOverNt_2_3;
|
|
input [63:0] down_niOverNt_2_4;
|
|
input [63:0] down_niOverNt_2_5;
|
|
input [63:0] up_niOverNt_2_1;
|
|
input [63:0] up_niOverNt_2_2;
|
|
input [63:0] up_niOverNt_2_3;
|
|
input [63:0] up_niOverNt_2_4;
|
|
input [63:0] up_niOverNt_2_5;
|
|
input [31:0] downCritAngle_0;
|
|
input [31:0] downCritAngle_1;
|
|
input [31:0] downCritAngle_2;
|
|
input [31:0] downCritAngle_3;
|
|
input [31:0] downCritAngle_4;
|
|
input [31:0] upCritAngle_0;
|
|
input [31:0] upCritAngle_1;
|
|
input [31:0] upCritAngle_2;
|
|
input [31:0] upCritAngle_3;
|
|
input [31:0] upCritAngle_4;
|
|
|
|
|
|
output [31:0] ux_scatterer;
|
|
output [31:0] uy_scatterer;
|
|
output [31:0] uz_scatterer;
|
|
output [31:0] ux_reflector;
|
|
output [31:0] uy_reflector;
|
|
output [31:0] uz_reflector;
|
|
output [2:0] layer_reflector;
|
|
output dead_reflector;
|
|
|
|
|
|
|
|
|
|
//-----------------------------PIN TYPES-----------------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign pins to be wires or regs.
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
|
|
wire [2:0] i_layer31_pipeWrapper;
|
|
|
|
wire [31:0] i_uz1_pipeWrapper;
|
|
wire i_hit2_pipeWrapper;
|
|
wire [31:0] i_ux3_pipeWrapper;
|
|
wire [31:0] i_uz3_pipeWrapper;
|
|
wire [2:0] i_layer3_pipeWrapper;
|
|
wire i_hit4_pipeWrapper;
|
|
wire i_hit6_pipeWrapper;
|
|
wire i_hit16_pipeWrapper;
|
|
wire [31:0] i_uy32_pipeWrapper;
|
|
wire [31:0] i_uz32_pipeWrapper;
|
|
wire i_hit33_pipeWrapper;
|
|
wire [31:0] i_ux33_pipeWrapper;
|
|
wire [31:0] i_uy33_pipeWrapper;
|
|
wire i_hit34_pipeWrapper;
|
|
wire [31:0] i_ux35_pipeWrapper;
|
|
wire [31:0] i_uy35_pipeWrapper;
|
|
wire [31:0] i_uz35_pipeWrapper;
|
|
wire [2:0] i_layer35_pipeWrapper;
|
|
wire i_hit36_pipeWrapper;
|
|
wire [31:0] i_ux36_pipeWrapper;
|
|
wire [31:0] i_uy36_pipeWrapper;
|
|
wire [31:0] i_uz36_pipeWrapper;
|
|
wire [2:0] i_layer36_pipeWrapper;
|
|
wire i_dead36_pipeWrapper;
|
|
|
|
wire [9:0] pindex;
|
|
wire [12:0] tindex;
|
|
wire [31:0] rand2;
|
|
wire [31:0] rand3;
|
|
wire [31:0] rand5;
|
|
|
|
|
|
//Constants
|
|
wire [31:0] down_niOverNt_1;
|
|
wire [31:0] down_niOverNt_2;
|
|
wire [31:0] down_niOverNt_3;
|
|
wire [31:0] down_niOverNt_4;
|
|
wire [31:0] down_niOverNt_5;
|
|
wire [31:0] up_niOverNt_1;
|
|
wire [31:0] up_niOverNt_2;
|
|
wire [31:0] up_niOverNt_3;
|
|
wire [31:0] up_niOverNt_4;
|
|
wire [31:0] up_niOverNt_5;
|
|
wire [63:0] down_niOverNt_2_1;
|
|
wire [63:0] down_niOverNt_2_2;
|
|
wire [63:0] down_niOverNt_2_3;
|
|
wire [63:0] down_niOverNt_2_4;
|
|
wire [63:0] down_niOverNt_2_5;
|
|
wire [63:0] up_niOverNt_2_1;
|
|
wire [63:0] up_niOverNt_2_2;
|
|
wire [63:0] up_niOverNt_2_3;
|
|
wire [63:0] up_niOverNt_2_4;
|
|
wire [63:0] up_niOverNt_2_5;
|
|
wire [31:0] downCritAngle_0;
|
|
wire [31:0] downCritAngle_1;
|
|
wire [31:0] downCritAngle_2;
|
|
wire [31:0] downCritAngle_3;
|
|
wire [31:0] downCritAngle_4;
|
|
wire [31:0] upCritAngle_0;
|
|
wire [31:0] upCritAngle_1;
|
|
wire [31:0] upCritAngle_2;
|
|
wire [31:0] upCritAngle_3;
|
|
wire [31:0] upCritAngle_4;
|
|
|
|
//Scatterer, final calculated values
|
|
wire [31:0] ux_scatterer;
|
|
wire [31:0] uy_scatterer;
|
|
wire [31:0] uz_scatterer;
|
|
wire [31:0] ux_reflector;
|
|
wire [31:0] uy_reflector;
|
|
wire [31:0] uz_reflector;
|
|
wire [2:0] layer_reflector;
|
|
wire dead_reflector;
|
|
|
|
|
|
//Mathematics results signals
|
|
wire [63:0] prod1_2;
|
|
wire [63:0] prod1_4;
|
|
wire [31:0] sqrtResult1_6;
|
|
//wire [32:0] sqrtRemainder; //not necessary, not used except as dummy var in sqrt.
|
|
wire [63:0] prod1_33;
|
|
wire [63:0] prod2_33;
|
|
wire [63:0] prod3_33;
|
|
wire [63:0] prod1_34;
|
|
wire [63:0] prod2_34;
|
|
wire [63:0] prod3_34;
|
|
wire [63:0] prod4_34;
|
|
wire [63:0] quot1_16;
|
|
wire [31:0] divRemainder;
|
|
wire [63:0] prod1_36;
|
|
wire [63:0] prod2_36;
|
|
wire [63:0] prod3_36;
|
|
wire [63:0] prod4_36;
|
|
wire [63:0] prod5_36;
|
|
wire [63:0] prod6_36;
|
|
|
|
//Scatterer Operands
|
|
wire [31:0] op1_2_1_scatterer;
|
|
wire [31:0] op1_2_2_scatterer;
|
|
wire [31:0] op1_4_1_scatterer;
|
|
wire [31:0] op1_4_2_scatterer;
|
|
wire [63:0] sqrtOperand1_6_scatterer;
|
|
wire [63:0] divNumerator1_16_scatterer;
|
|
wire [31:0] divDenominator1_16_scatterer;
|
|
wire [31:0] op1_33_1_scatterer;
|
|
wire [31:0] op1_33_2_scatterer;
|
|
wire [31:0] op2_33_1_scatterer;
|
|
wire [31:0] op2_33_2_scatterer;
|
|
wire [31:0] op3_33_1_scatterer;
|
|
wire [31:0] op3_33_2_scatterer;
|
|
wire [31:0] op1_34_1_scatterer;
|
|
wire [31:0] op1_34_2_scatterer;
|
|
wire [31:0] op2_34_1_scatterer;
|
|
wire [31:0] op2_34_2_scatterer;
|
|
wire [31:0] op3_34_1_scatterer;
|
|
wire [31:0] op3_34_2_scatterer;
|
|
wire [31:0] op4_34_1_scatterer;
|
|
wire [31:0] op4_34_2_scatterer;
|
|
wire [31:0] op1_36_1_scatterer;
|
|
wire [31:0] op1_36_2_scatterer;
|
|
wire [31:0] op2_36_1_scatterer;
|
|
wire [31:0] op2_36_2_scatterer;
|
|
wire [31:0] op3_36_1_scatterer;
|
|
wire [31:0] op3_36_2_scatterer;
|
|
wire [31:0] op4_36_1_scatterer;
|
|
wire [31:0] op4_36_2_scatterer;
|
|
wire [31:0] op5_36_1_scatterer;
|
|
wire [31:0] op5_36_2_scatterer;
|
|
wire [31:0] op6_36_1_scatterer;
|
|
wire [31:0] op6_36_2_scatterer;
|
|
|
|
|
|
//Reflector Operands
|
|
wire [31:0] op1_2_1_reflector;
|
|
wire [31:0] op1_2_2_reflector;
|
|
wire [31:0] op1_4_1_reflector;
|
|
wire [31:0] op1_4_2_reflector;
|
|
wire [63:0] sqrtOperand1_6_reflector;
|
|
wire [31:0] op1_36_1_reflector;
|
|
wire [31:0] op1_36_2_reflector;
|
|
wire [31:0] op2_36_1_reflector;
|
|
wire [31:0] op2_36_2_reflector;
|
|
|
|
|
|
|
|
|
|
//Operands entering the multipliers, divider, and sqrt
|
|
wire [31:0] op1_2_1;
|
|
wire [31:0] op1_2_2;
|
|
wire [31:0] op1_4_1;
|
|
wire [31:0] op1_4_2;
|
|
wire [63:0] sqrtOperand1_6;
|
|
wire [63:0] divNumerator1_16;
|
|
wire [31:0] divDenominator1_16;
|
|
wire [31:0] op1_33_1;
|
|
wire [31:0] op1_33_2;
|
|
wire [31:0] op2_33_1;
|
|
wire [31:0] op2_33_2;
|
|
wire [31:0] op3_33_1;
|
|
wire [31:0] op3_33_2;
|
|
wire [31:0] op1_34_1;
|
|
wire [31:0] op1_34_2;
|
|
wire [31:0] op2_34_1;
|
|
wire [31:0] op2_34_2;
|
|
wire [31:0] op3_34_1;
|
|
wire [31:0] op3_34_2;
|
|
wire [31:0] op4_34_1;
|
|
wire [31:0] op4_34_2;
|
|
wire [31:0] op1_36_1;
|
|
wire [31:0] op1_36_2;
|
|
wire [31:0] op2_36_1;
|
|
wire [31:0] op2_36_2;
|
|
wire [31:0] op3_36_1;
|
|
wire [31:0] op3_36_2;
|
|
wire [31:0] op4_36_1;
|
|
wire [31:0] op4_36_2;
|
|
wire [31:0] op5_36_1;
|
|
wire [31:0] op5_36_2;
|
|
wire [31:0] op6_36_1;
|
|
wire [31:0] op6_36_2;
|
|
|
|
|
|
reg [2:0] layerMinusOne;
|
|
|
|
wire [31:0] sint;
|
|
wire [31:0] cost;
|
|
wire [31:0] sinp;
|
|
wire [31:0] cosp;
|
|
|
|
wire [31:0] up_rFresnel;
|
|
wire [31:0] down_rFresnel;
|
|
wire [9:0] fresIndex;
|
|
|
|
|
|
|
|
//Need this to deal with 'unused' inputs for ODIN II
|
|
wire bigOr;
|
|
assign bigOr = i_hit16_pipeWrapper|i_hit33_pipeWrapper|i_hit34_pipeWrapper|
|
|
rand2[31]|rand2[30]|rand2[29]|rand2[28]|rand2[27]|rand2[26]|
|
|
rand2[25]|rand2[24]|rand2[23]|rand2[22]|rand2[21]|rand2[20]|
|
|
rand2[19]|rand2[18]|rand2[17]|rand2[16]|rand2[15]|rand2[14]|
|
|
rand2[13]|rand2[12]|rand2[11]|rand2[10]|
|
|
rand3[31]|rand3[30]|rand3[29]|rand3[28]|rand3[27]|rand3[26]|
|
|
rand3[25]|rand3[24]|rand3[23]|rand3[22]|rand3[21]|rand3[20]|
|
|
rand3[19]|rand3[18]|rand3[17]|rand3[16]|rand3[15]|rand3[14]|
|
|
rand3[13]|rand3[12]|rand3[11]|rand3[10]|
|
|
rand5[31]|(1'b1);
|
|
wire reset_new;
|
|
assign reset_new = reset & bigOr;
|
|
|
|
|
|
//MUX for sending in indices for memory.
|
|
always @ (i_layer31_pipeWrapper) begin
|
|
case (i_layer31_pipeWrapper)
|
|
3'b001: layerMinusOne = 0;
|
|
3'b010: layerMinusOne = 1;
|
|
3'b011: layerMinusOne = 2;
|
|
3'b100: layerMinusOne = 3;
|
|
3'b101: layerMinusOne = 4;
|
|
default: layerMinusOne = 0;
|
|
endcase
|
|
end
|
|
|
|
assign tindex = {layerMinusOne, rand2[9:0]};
|
|
assign pindex = rand3[9:0];
|
|
|
|
|
|
//Arbitrarily decide on values of sine and cosine for now, should be memory lookups
|
|
Memory_Wrapper memories(
|
|
//INPUTS
|
|
.clock(clock),
|
|
//.reset(reset), //Unused. ODIN II complained.
|
|
.pindex(pindex),
|
|
//OUTPUTS
|
|
.sinp(sinp),
|
|
.cosp(cosp)
|
|
);
|
|
|
|
|
|
Scatterer scatterer_0 (
|
|
.clock(clock),
|
|
.reset(reset_new), //so pins are used
|
|
.enable(enable),
|
|
//Photon values
|
|
.i_uz1(i_uz1_pipeWrapper),
|
|
.i_ux3(i_ux3_pipeWrapper),
|
|
.i_uz3(i_uz3_pipeWrapper),
|
|
.i_uy32(i_uy32_pipeWrapper),
|
|
.i_uz32(i_uz32_pipeWrapper),
|
|
.i_ux33(i_ux33_pipeWrapper),
|
|
.i_uy33(i_uy33_pipeWrapper),
|
|
.i_ux35(i_ux35_pipeWrapper),
|
|
.i_uy35(i_uy35_pipeWrapper),
|
|
.i_uz35(i_uz35_pipeWrapper),
|
|
.i_uz36(i_uz36_pipeWrapper),
|
|
//Mathematics Results
|
|
.prod1_2(prod1_2),
|
|
.prod1_4({prod1_4[63:63], prod1_4[61:31]}),
|
|
.sqrtResult1_6(sqrtResult1_6),
|
|
.prod1_33({prod1_33[63:63], prod1_33[61:31]}),
|
|
.prod2_33({prod2_33[63:63], prod2_33[61:31]}),
|
|
.prod3_33({prod3_33[63:63], prod3_33[61:31]}),
|
|
.prod1_34({prod1_34[63:63], prod1_34[61:31]}),
|
|
.prod2_34({prod2_34[63:63], prod2_34[61:31]}),
|
|
.prod3_34({prod3_34[63:63], prod3_34[61:31]}),
|
|
.prod4_34({prod4_34[63:63], prod4_34[61:31]}),
|
|
.quot1_16(quot1_16[63:0]),
|
|
.prod1_36(prod1_36[63:0]),
|
|
.prod2_36(prod2_36[63:0]),
|
|
.prod3_36({prod3_36[63:63], prod3_36[61:31]}),
|
|
.prod4_36({prod4_36[63:63], prod4_36[61:31]}),
|
|
.prod5_36({prod5_36[63:63], prod5_36[61:31]}),
|
|
.prod6_36({prod6_36[63:63], prod6_36[61:31]}),
|
|
//Trig from Memory
|
|
.sint_Mem(sint),
|
|
.cost_Mem(cost),
|
|
.sinp_Mem(sinp),
|
|
.cosp_Mem(cosp),
|
|
//Operands for mathematics
|
|
.op1_2_1(op1_2_1_scatterer),
|
|
.op1_2_2(op1_2_2_scatterer),
|
|
.op1_4_1(op1_4_1_scatterer),
|
|
.op1_4_2(op1_4_2_scatterer),
|
|
.sqrtOperand1_6(sqrtOperand1_6_scatterer),
|
|
.divNumerator1_16(divNumerator1_16_scatterer),
|
|
.divDenominator1_16(divDenominator1_16_scatterer),
|
|
.op1_33_1(op1_33_1_scatterer),
|
|
.op1_33_2(op1_33_2_scatterer),
|
|
.op2_33_1(op2_33_1_scatterer),
|
|
.op2_33_2(op2_33_2_scatterer),
|
|
.op3_33_1(op3_33_1_scatterer),
|
|
.op3_33_2(op3_33_2_scatterer),
|
|
.op1_34_1(op1_34_1_scatterer),
|
|
.op1_34_2(op1_34_2_scatterer),
|
|
.op2_34_1(op2_34_1_scatterer),
|
|
.op2_34_2(op2_34_2_scatterer),
|
|
.op3_34_1(op3_34_1_scatterer),
|
|
.op3_34_2(op3_34_2_scatterer),
|
|
.op4_34_1(op4_34_1_scatterer),
|
|
.op4_34_2(op4_34_2_scatterer),
|
|
.op1_36_1(op1_36_1_scatterer),
|
|
.op1_36_2(op1_36_2_scatterer),
|
|
.op2_36_1(op2_36_1_scatterer),
|
|
.op2_36_2(op2_36_2_scatterer),
|
|
.op3_36_1(op3_36_1_scatterer),
|
|
.op3_36_2(op3_36_2_scatterer),
|
|
.op4_36_1(op4_36_1_scatterer),
|
|
.op4_36_2(op4_36_2_scatterer),
|
|
.op5_36_1(op5_36_1_scatterer),
|
|
.op5_36_2(op5_36_2_scatterer),
|
|
.op6_36_1(op6_36_1_scatterer),
|
|
.op6_36_2(op6_36_2_scatterer),
|
|
|
|
//Final calculated values
|
|
.ux_scatterer(ux_scatterer),
|
|
.uy_scatterer(uy_scatterer),
|
|
.uz_scatterer(uz_scatterer)
|
|
|
|
);
|
|
|
|
Reflector reflector_0 (
|
|
|
|
//INPUTS
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
//Photon values
|
|
.i_uz1(i_uz1_pipeWrapper),
|
|
.i_uz3(i_uz3_pipeWrapper),
|
|
.i_layer3(i_layer3_pipeWrapper),
|
|
.i_ux35(i_ux35_pipeWrapper),
|
|
.i_uy35(i_uy35_pipeWrapper),
|
|
.i_uz35(i_uz35_pipeWrapper),
|
|
.i_layer35(i_layer35_pipeWrapper),
|
|
.i_ux36(i_ux36_pipeWrapper),
|
|
.i_uy36(i_uy36_pipeWrapper),
|
|
.i_uz36(i_uz36_pipeWrapper),
|
|
.i_layer36(i_layer36_pipeWrapper),
|
|
.i_dead36(i_dead36_pipeWrapper),
|
|
|
|
//Constants
|
|
.down_niOverNt_1(down_niOverNt_1),
|
|
.down_niOverNt_2(down_niOverNt_2),
|
|
.down_niOverNt_3(down_niOverNt_3),
|
|
.down_niOverNt_4(down_niOverNt_4),
|
|
.down_niOverNt_5(down_niOverNt_5),
|
|
.up_niOverNt_1(up_niOverNt_1),
|
|
.up_niOverNt_2(up_niOverNt_2),
|
|
.up_niOverNt_3(up_niOverNt_3),
|
|
.up_niOverNt_4(up_niOverNt_4),
|
|
.up_niOverNt_5(up_niOverNt_5),
|
|
.down_niOverNt_2_1(down_niOverNt_2_1),
|
|
.down_niOverNt_2_2(down_niOverNt_2_2),
|
|
.down_niOverNt_2_3(down_niOverNt_2_3),
|
|
.down_niOverNt_2_4(down_niOverNt_2_4),
|
|
.down_niOverNt_2_5(down_niOverNt_2_5),
|
|
.up_niOverNt_2_1(up_niOverNt_2_1),
|
|
.up_niOverNt_2_2(up_niOverNt_2_2),
|
|
.up_niOverNt_2_3(up_niOverNt_2_3),
|
|
.up_niOverNt_2_4(up_niOverNt_2_4),
|
|
.up_niOverNt_2_5(up_niOverNt_2_5),
|
|
.downCritAngle_0(downCritAngle_0),
|
|
.downCritAngle_1(downCritAngle_1),
|
|
.downCritAngle_2(downCritAngle_2),
|
|
.downCritAngle_3(downCritAngle_3),
|
|
.downCritAngle_4(downCritAngle_4),
|
|
.upCritAngle_0(upCritAngle_0),
|
|
.upCritAngle_1(upCritAngle_1),
|
|
.upCritAngle_2(upCritAngle_2),
|
|
.upCritAngle_3(upCritAngle_3),
|
|
.upCritAngle_4(upCritAngle_4),
|
|
|
|
//Fresnels inputs
|
|
.rnd({1'b0, rand5[30:0]}),
|
|
.up_rFresnel(up_rFresnel),
|
|
.down_rFresnel(down_rFresnel),
|
|
|
|
//Mathematics Results
|
|
.prod1_2(prod1_2),
|
|
.prod1_4(prod1_4),
|
|
.sqrtResult1_6(sqrtResult1_6),
|
|
.prod1_36(prod1_36),
|
|
.prod2_36(prod2_36),
|
|
|
|
//OUTPUTS
|
|
|
|
//Fresnels outputs
|
|
.fresIndex(fresIndex),
|
|
|
|
//Mathematics Operands
|
|
.op1_2_1(op1_2_1_reflector),
|
|
.op1_2_2(op1_2_2_reflector),
|
|
.op1_4_1(op1_4_1_reflector),
|
|
.op1_4_2(op1_4_2_reflector),
|
|
.sqrtOperand1_6(sqrtOperand1_6_reflector),
|
|
.op1_36_1(op1_36_1_reflector),
|
|
.op1_36_2(op1_36_2_reflector),
|
|
.op2_36_1(op2_36_1_reflector),
|
|
.op2_36_2(op2_36_2_reflector),
|
|
|
|
|
|
//Final Calculated Results
|
|
.ux_reflector(ux_reflector),
|
|
.uy_reflector(uy_reflector),
|
|
.uz_reflector(uz_reflector),
|
|
.layer_reflector(layer_reflector),
|
|
.dead_reflector(dead_reflector)
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
//Multipliers, Dividers, and Sqrts for Scatterer & Reflector
|
|
|
|
assign op1_2_1 = (i_hit2_pipeWrapper == 1'b1) ? op1_2_1_reflector : op1_2_1_scatterer;
|
|
assign op1_2_2 = (i_hit2_pipeWrapper == 1'b1) ? op1_2_2_reflector : op1_2_2_scatterer;
|
|
|
|
Mult_32b multiplier1_2 (
|
|
.dataa(op1_2_1),
|
|
.datab(op1_2_2),
|
|
.result(prod1_2)
|
|
);
|
|
|
|
assign op1_4_1 = (i_hit4_pipeWrapper == 1'b1) ? op1_4_1_reflector : op1_4_1_scatterer;
|
|
assign op1_4_2 = (i_hit4_pipeWrapper == 1'b1) ? op1_4_2_reflector : op1_4_2_scatterer;
|
|
|
|
Mult_32b multiplier1_4 (
|
|
.dataa(op1_4_1),
|
|
.datab(op1_4_2),
|
|
.result(prod1_4)
|
|
);
|
|
|
|
|
|
|
|
Mult_32b multiplier1_33 (
|
|
.dataa(op1_33_1_scatterer),
|
|
.datab(op1_33_2_scatterer),
|
|
.result(prod1_33)
|
|
);
|
|
|
|
Mult_32b multiplier2_33 (
|
|
.dataa(op2_33_1_scatterer),
|
|
.datab(op2_33_2_scatterer),
|
|
.result(prod2_33)
|
|
);
|
|
|
|
Mult_32b multiplier3_33 (
|
|
.dataa(op3_33_1_scatterer),
|
|
.datab(op3_33_2_scatterer),
|
|
.result(prod3_33)
|
|
);
|
|
|
|
|
|
Mult_32b multiplier1_34 (
|
|
.dataa(op1_34_1_scatterer),
|
|
.datab(op1_34_2_scatterer),
|
|
.result(prod1_34)
|
|
);
|
|
|
|
|
|
Mult_32b multiplier2_34 (
|
|
.dataa(op2_34_1_scatterer),
|
|
.datab(op2_34_2_scatterer),
|
|
.result(prod2_34)
|
|
);
|
|
|
|
|
|
Mult_32b multiplier3_34 (
|
|
.dataa(op3_34_1_scatterer),
|
|
.datab(op3_34_2_scatterer),
|
|
.result(prod3_34)
|
|
);
|
|
|
|
Mult_32b multiplier4_34 (
|
|
.dataa(op4_34_1_scatterer),
|
|
.datab(op4_34_2_scatterer),
|
|
.result(prod4_34)
|
|
);
|
|
|
|
assign op1_36_1 = (i_hit36_pipeWrapper == 1'b1) ? op1_36_1_reflector : op1_36_1_scatterer;
|
|
assign op1_36_2 = (i_hit36_pipeWrapper == 1'b1) ? op1_36_2_reflector : op1_36_2_scatterer;
|
|
|
|
Mult_32b multiplier1_36 (
|
|
.dataa(op1_36_1),
|
|
.datab(op1_36_2),
|
|
.result(prod1_36)
|
|
);
|
|
|
|
assign op2_36_1 = (i_hit36_pipeWrapper == 1'b1) ? op2_36_1_reflector : op2_36_1_scatterer;
|
|
assign op2_36_2 = (i_hit36_pipeWrapper == 1'b1) ? op2_36_2_reflector : op2_36_2_scatterer;
|
|
|
|
Mult_32b multiplier2_36 (
|
|
.dataa(op2_36_1),
|
|
.datab(op2_36_2),
|
|
.result(prod2_36)
|
|
);
|
|
|
|
Mult_32b multiplier3_36 (
|
|
.dataa(op3_36_1_scatterer),
|
|
.datab(op3_36_2_scatterer),
|
|
.result(prod3_36)
|
|
);
|
|
|
|
|
|
Mult_32b multiplier4_36 (
|
|
.dataa(op4_36_1_scatterer),
|
|
.datab(op4_36_2_scatterer),
|
|
.result(prod4_36)
|
|
);
|
|
|
|
|
|
Mult_32b multiplier5_36 (
|
|
.dataa(op5_36_1_scatterer),
|
|
.datab(op5_36_2_scatterer),
|
|
.result(prod5_36)
|
|
);
|
|
|
|
|
|
Mult_32b multiplier6_36 (
|
|
.dataa(op6_36_1_scatterer),
|
|
.datab(op6_36_2_scatterer),
|
|
.result(prod6_36)
|
|
);
|
|
|
|
assign sqrtOperand1_6 = (i_hit6_pipeWrapper == 1'b1) ? sqrtOperand1_6_reflector : sqrtOperand1_6_scatterer;
|
|
|
|
Sqrt_64b squareRoot1_6 (
|
|
.clk(clock),
|
|
.num_(sqrtOperand1_6),
|
|
.res(sqrtResult1_6)
|
|
);
|
|
|
|
|
|
|
|
Div_64b divide1_16 (
|
|
.clock(clock),
|
|
.denom(divDenominator1_16_scatterer),
|
|
.numer(divNumerator1_16_scatterer),
|
|
.quotient(quot1_16),
|
|
.remain(divRemainder)
|
|
);
|
|
|
|
|
|
endmodule
|
|
|
|
|
|
|
|
|
|
module InternalsBlock_Reflector(
|
|
//Inputs
|
|
clock,
|
|
reset,
|
|
enable,
|
|
|
|
i_uz_2, //uz^2
|
|
i_uz2, //new uz, should the photon transmit to new layer
|
|
i_oneMinusUz_2, //(1-uz)^2
|
|
i_sa2_2, //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
i_uz2_2, //(uz2)^2, new uz squared.
|
|
i_ux_transmitted, //new value for ux, if the photon transmits to the next layer
|
|
i_uy_transmitted, //new value for uy, if the photon transmits to the next layer
|
|
|
|
//Outputs
|
|
o_uz_2,
|
|
o_uz2,
|
|
o_oneMinusUz_2,
|
|
o_sa2_2,
|
|
o_uz2_2,
|
|
o_ux_transmitted,
|
|
o_uy_transmitted
|
|
);
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [63:0] i_uz_2;
|
|
input [31:0] i_uz2;
|
|
input [63:0] i_oneMinusUz_2;
|
|
input [63:0] i_sa2_2;
|
|
input [63:0] i_uz2_2;
|
|
input [31:0] i_ux_transmitted;
|
|
input [31:0] i_uy_transmitted;
|
|
|
|
output [63:0] o_uz_2;
|
|
output [31:0] o_uz2;
|
|
output [63:0] o_oneMinusUz_2;
|
|
output [63:0] o_sa2_2;
|
|
output [63:0] o_uz2_2;
|
|
output [31:0] o_ux_transmitted;
|
|
output [31:0] o_uy_transmitted;
|
|
|
|
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
|
|
wire [63:0] i_uz_2;
|
|
wire [31:0] i_uz2;
|
|
wire [63:0] i_oneMinusUz_2;
|
|
wire [63:0] i_sa2_2;
|
|
wire [63:0] i_uz2_2;
|
|
wire [31:0] i_ux_transmitted;
|
|
wire [31:0] i_uy_transmitted;
|
|
|
|
|
|
reg [63:0] o_uz_2;
|
|
reg [31:0] o_uz2;
|
|
reg [63:0] o_oneMinusUz_2;
|
|
reg [63:0] o_sa2_2;
|
|
reg [63:0] o_uz2_2;
|
|
reg [31:0] o_ux_transmitted;
|
|
reg [31:0] o_uy_transmitted;
|
|
|
|
|
|
|
|
always @ (posedge clock)
|
|
if(reset) begin
|
|
o_uz_2 <= 64'h3FFFFFFFFFFFFFFF;
|
|
o_uz2 <= 32'h7FFFFFFF;
|
|
o_oneMinusUz_2 <= 64'h0000000000000000;
|
|
o_sa2_2 <= 64'h0000000000000000;
|
|
o_uz2_2 <= 64'h3FFFFFFFFFFFFFFF;
|
|
o_ux_transmitted <= 32'h00000000;
|
|
o_uy_transmitted <= 32'h00000000;
|
|
end else if(enable) begin
|
|
o_uz_2 <= i_uz_2;
|
|
o_uz2 <= i_uz2;
|
|
o_oneMinusUz_2 <= i_oneMinusUz_2;
|
|
o_sa2_2 <= i_sa2_2;
|
|
o_uz2_2 <= i_uz2_2;
|
|
o_ux_transmitted <= i_ux_transmitted;
|
|
o_uy_transmitted <= i_uy_transmitted;
|
|
end
|
|
endmodule
|
|
|
|
|
|
module Reflector (
|
|
|
|
//INPUTS
|
|
clock,
|
|
reset,
|
|
enable,
|
|
//Values from Photon Pipeline
|
|
i_uz1,
|
|
i_uz3,
|
|
i_layer3,
|
|
i_ux35,
|
|
i_uy35,
|
|
i_uz35,
|
|
i_layer35,
|
|
i_ux36,
|
|
i_uy36,
|
|
i_uz36,
|
|
i_layer36,
|
|
i_dead36,
|
|
|
|
//Constants
|
|
down_niOverNt_1,
|
|
down_niOverNt_2,
|
|
down_niOverNt_3,
|
|
down_niOverNt_4,
|
|
down_niOverNt_5,
|
|
up_niOverNt_1,
|
|
up_niOverNt_2,
|
|
up_niOverNt_3,
|
|
up_niOverNt_4,
|
|
up_niOverNt_5,
|
|
down_niOverNt_2_1,
|
|
down_niOverNt_2_2,
|
|
down_niOverNt_2_3,
|
|
down_niOverNt_2_4,
|
|
down_niOverNt_2_5,
|
|
up_niOverNt_2_1,
|
|
up_niOverNt_2_2,
|
|
up_niOverNt_2_3,
|
|
up_niOverNt_2_4,
|
|
up_niOverNt_2_5,
|
|
downCritAngle_0,
|
|
downCritAngle_1,
|
|
downCritAngle_2,
|
|
downCritAngle_3,
|
|
downCritAngle_4,
|
|
upCritAngle_0,
|
|
upCritAngle_1,
|
|
upCritAngle_2,
|
|
upCritAngle_3,
|
|
upCritAngle_4,
|
|
|
|
//Fresnels inputs
|
|
rnd,
|
|
up_rFresnel,
|
|
down_rFresnel,
|
|
|
|
//Mathematics Results
|
|
prod1_2,
|
|
prod1_4,
|
|
sqrtResult1_6,
|
|
prod1_36,
|
|
prod2_36,
|
|
|
|
|
|
//OUTPUTS
|
|
|
|
//Fresnels outputs
|
|
fresIndex,
|
|
|
|
//Mathematics Operands
|
|
op1_2_1,
|
|
op1_2_2,
|
|
op1_4_1,
|
|
op1_4_2,
|
|
sqrtOperand1_6,
|
|
op1_36_1,
|
|
op1_36_2,
|
|
op2_36_1,
|
|
op2_36_2,
|
|
|
|
|
|
//Final Calcu`LATed Results
|
|
ux_reflector,
|
|
uy_reflector,
|
|
uz_reflector,
|
|
layer_reflector,
|
|
dead_reflector
|
|
);
|
|
|
|
//-------------------PARAMETER DEFINITION----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign values to parameters used `LATer in the program.
|
|
|
|
//parameter `DIV = 20;
|
|
//parameter `SQRT = 10;
|
|
//parameter `LAT = `DIV + `SQRT + 7;
|
|
//parameter `INTMAX_2 = 64'h3FFFFFFFFFFFFFFF;
|
|
//parameter `INTMAX = 2147483647;
|
|
//parameter `INTMIN = -2147483647;
|
|
|
|
|
|
//-----------------------------PIN DECLARATION----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign appropriate types to pins (input or output).
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
//Values from Photon Pipeline
|
|
input [31:0] i_uz1;
|
|
input [31:0] i_uz3;
|
|
input [2:0] i_layer3;
|
|
input [31:0] i_ux35;
|
|
input [31:0] i_uy35;
|
|
input [31:0] i_uz35;
|
|
input [2:0] i_layer35;
|
|
input [31:0] i_ux36;
|
|
input [31:0] i_uy36;
|
|
input [31:0] i_uz36;
|
|
input [2:0] i_layer36;
|
|
input i_dead36;
|
|
|
|
//Constants
|
|
input [31:0] down_niOverNt_1;
|
|
input [31:0] down_niOverNt_2;
|
|
input [31:0] down_niOverNt_3;
|
|
input [31:0] down_niOverNt_4;
|
|
input [31:0] down_niOverNt_5;
|
|
input [31:0] up_niOverNt_1;
|
|
input [31:0] up_niOverNt_2;
|
|
input [31:0] up_niOverNt_3;
|
|
input [31:0] up_niOverNt_4;
|
|
input [31:0] up_niOverNt_5;
|
|
input [63:0] down_niOverNt_2_1;
|
|
input [63:0] down_niOverNt_2_2;
|
|
input [63:0] down_niOverNt_2_3;
|
|
input [63:0] down_niOverNt_2_4;
|
|
input [63:0] down_niOverNt_2_5;
|
|
input [63:0] up_niOverNt_2_1;
|
|
input [63:0] up_niOverNt_2_2;
|
|
input [63:0] up_niOverNt_2_3;
|
|
input [63:0] up_niOverNt_2_4;
|
|
input [63:0] up_niOverNt_2_5;
|
|
input [31:0] downCritAngle_0;
|
|
input [31:0] downCritAngle_1;
|
|
input [31:0] downCritAngle_2;
|
|
input [31:0] downCritAngle_3;
|
|
input [31:0] downCritAngle_4;
|
|
input [31:0] upCritAngle_0;
|
|
input [31:0] upCritAngle_1;
|
|
input [31:0] upCritAngle_2;
|
|
input [31:0] upCritAngle_3;
|
|
input [31:0] upCritAngle_4;
|
|
|
|
//Fresnels inputs
|
|
input [31:0] rnd;
|
|
input [31:0] up_rFresnel;
|
|
input [31:0] down_rFresnel;
|
|
|
|
//Mathematics Results
|
|
input [63:0] prod1_2;
|
|
input [63:0] prod1_4;
|
|
input [31:0] sqrtResult1_6;
|
|
input [63:0] prod1_36;
|
|
input [63:0] prod2_36;
|
|
|
|
//OUTPUTS
|
|
|
|
//Fresnels outputs
|
|
output [9:0] fresIndex;
|
|
|
|
//Mathematics operands
|
|
output [31:0] op1_2_1;
|
|
output [31:0] op1_2_2;
|
|
output [31:0] op1_4_1;
|
|
output [31:0] op1_4_2;
|
|
output [63:0] sqrtOperand1_6;
|
|
output [31:0] op1_36_1;
|
|
output [31:0] op1_36_2;
|
|
output [31:0] op2_36_1;
|
|
output [31:0] op2_36_2;
|
|
|
|
|
|
//Final Calcu`LATed Results
|
|
output [31:0] ux_reflector;
|
|
output [31:0] uy_reflector;
|
|
output [31:0] uz_reflector;
|
|
output [2:0] layer_reflector;
|
|
output dead_reflector;
|
|
|
|
|
|
//-----------------------------PIN TYPES-----------------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign pins to be wires or regs.
|
|
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
//Values from Photon Pipeline
|
|
wire [31:0] i_uz1;
|
|
wire [31:0] i_uz3;
|
|
wire [2:0] i_layer3;
|
|
wire [31:0] i_ux35;
|
|
wire [31:0] i_uy35;
|
|
wire [31:0] i_uz35;
|
|
wire [2:0] i_layer35;
|
|
wire [31:0] i_ux36;
|
|
wire [31:0] i_uy36;
|
|
wire [31:0] i_uz36;
|
|
wire [2:0] i_layer36;
|
|
wire i_dead36;
|
|
|
|
//Constants
|
|
wire [31:0] down_niOverNt_1;
|
|
wire [31:0] down_niOverNt_2;
|
|
wire [31:0] down_niOverNt_3;
|
|
wire [31:0] down_niOverNt_4;
|
|
wire [31:0] down_niOverNt_5;
|
|
wire [31:0] up_niOverNt_1;
|
|
wire [31:0] up_niOverNt_2;
|
|
wire [31:0] up_niOverNt_3;
|
|
wire [31:0] up_niOverNt_4;
|
|
wire [31:0] up_niOverNt_5;
|
|
wire [63:0] down_niOverNt_2_1;
|
|
wire [63:0] down_niOverNt_2_2;
|
|
wire [63:0] down_niOverNt_2_3;
|
|
wire [63:0] down_niOverNt_2_4;
|
|
wire [63:0] down_niOverNt_2_5;
|
|
wire [63:0] up_niOverNt_2_1;
|
|
wire [63:0] up_niOverNt_2_2;
|
|
wire [63:0] up_niOverNt_2_3;
|
|
wire [63:0] up_niOverNt_2_4;
|
|
wire [63:0] up_niOverNt_2_5;
|
|
wire [31:0] downCritAngle_0;
|
|
wire [31:0] downCritAngle_1;
|
|
wire [31:0] downCritAngle_2;
|
|
wire [31:0] downCritAngle_3;
|
|
wire [31:0] downCritAngle_4;
|
|
wire [31:0] upCritAngle_0;
|
|
wire [31:0] upCritAngle_1;
|
|
wire [31:0] upCritAngle_2;
|
|
wire [31:0] upCritAngle_3;
|
|
wire [31:0] upCritAngle_4;
|
|
|
|
//Fresnels inputs
|
|
wire [31:0] rnd;
|
|
wire [31:0] up_rFresnel;
|
|
wire [31:0] down_rFresnel;
|
|
|
|
//Mathematics Results
|
|
wire [63:0] prod1_2;
|
|
wire [63:0] prod1_4;
|
|
wire [31:0] sqrtResult1_6;
|
|
wire [63:0] prod1_36;
|
|
wire [63:0] prod2_36;
|
|
|
|
//OUTPUTS
|
|
|
|
|
|
//Fresnels outputs
|
|
reg [9:0] fresIndex;
|
|
|
|
//Operands for shared resources
|
|
wire [31:0] op1_2_1;
|
|
wire [31:0] op1_2_2;
|
|
reg [31:0] op1_4_1;
|
|
wire [31:0] op1_4_2;
|
|
wire [63:0] sqrtOperand1_6;
|
|
wire [31:0] op1_36_1;
|
|
reg [31:0] op1_36_2;
|
|
wire [31:0] op2_36_1;
|
|
reg [31:0] op2_36_2;
|
|
|
|
//Final Calcu`LATed Results
|
|
reg [31:0] ux_reflector;
|
|
reg [31:0] uy_reflector;
|
|
reg [31:0] uz_reflector;
|
|
reg [2:0] layer_reflector;
|
|
reg dead_reflector;
|
|
|
|
|
|
//Need this to deal with 'unused' inputs for ODIN II
|
|
wire [63:0]bigOr;
|
|
assign bigOr = i_uz3|down_niOverNt_2_1|down_niOverNt_2_2|down_niOverNt_2_3|down_niOverNt_2_3|down_niOverNt_2_4|down_niOverNt_2_5|up_niOverNt_2_1|up_niOverNt_2_2|up_niOverNt_2_3|up_niOverNt_2_3|up_niOverNt_2_4|up_niOverNt_2_5|prod1_36|prod2_36|({32'hFFFFFFFF,32'hFFFFFFFF});
|
|
wire reset_new;
|
|
assign reset_new = reset & bigOr[63] & bigOr[62] & bigOr[61] & bigOr[60] & bigOr[59] & bigOr[58] & bigOr[57] & bigOr[56] & bigOr[55] & bigOr[54] & bigOr[53] & bigOr[52] & bigOr[51] & bigOr[50] & bigOr[49] & bigOr[48] & bigOr[47] & bigOr[46] & bigOr[45] & bigOr[44] & bigOr[43] & bigOr[42] & bigOr[41] & bigOr[40] & bigOr[39] & bigOr[38] & bigOr[37] & bigOr[36] & bigOr[35] & bigOr[34] & bigOr[33] & bigOr[32] & bigOr[31] & bigOr[30] & bigOr[29] & bigOr[28] & bigOr[27] & bigOr[26] & bigOr[25] & bigOr[24] & bigOr[23] & bigOr[22] & bigOr[21] & bigOr[20] & bigOr[19] & bigOr[18] & bigOr[17] & bigOr[16] & bigOr[15] & bigOr[14] & bigOr[13] & bigOr[12] & bigOr[11] & bigOr[10] & bigOr[9] & bigOr[8] & bigOr[7] & bigOr[6] & bigOr[5] & bigOr[4] & bigOr[3] & bigOr[2] & bigOr[1] & bigOr[0];
|
|
|
|
|
|
|
|
//-----------------------------END Pin Types-------------------------
|
|
|
|
//Overflow Wiring
|
|
wire overflow1_4;
|
|
wire toAnd1_36_1;
|
|
wire toAnd1_36_2;
|
|
wire overflow1_36;
|
|
wire negOverflow1_36;
|
|
wire toAnd2_36_1;
|
|
wire toAnd2_36_2;
|
|
wire overflow2_36;
|
|
wire negOverflow2_36;
|
|
|
|
//Wiring for calcu`LATing final Results
|
|
reg [31:0] new_ux;
|
|
reg [31:0] new_uy;
|
|
reg [31:0] new_uz;
|
|
reg [2:0] new_layer;
|
|
reg new_dead;
|
|
reg [31:0] downCritAngle;
|
|
reg [31:0] upCritAngle;
|
|
reg [31:0] negUz;
|
|
|
|
|
|
|
|
//Wires to Connect to Internal Registers
|
|
//wire [63:0] uz_2[`LAT:0];
|
|
//wire [31:0] uz2[`LAT:0];
|
|
//wire [63:0] oneMinusUz_2[`LAT:0];
|
|
//wire [63:0] sa2_2[`LAT:0];
|
|
//wire [63:0] uz2_2[`LAT:0];
|
|
//wire [31:0] ux_transmitted[`LAT:0];
|
|
//wire [31:0] uy_transmitted[`LAT:0];
|
|
|
|
wire [63:0] uz_2__0;
|
|
wire [63:0] uz_2__1;
|
|
wire [63:0] uz_2__2;
|
|
wire [63:0] uz_2__3;
|
|
wire [63:0] uz_2__4;
|
|
wire [63:0] uz_2__5;
|
|
wire [63:0] uz_2__6;
|
|
wire [63:0] uz_2__7;
|
|
wire [63:0] uz_2__8;
|
|
wire [63:0] uz_2__9;
|
|
wire [63:0] uz_2__10;
|
|
wire [63:0] uz_2__11;
|
|
wire [63:0] uz_2__12;
|
|
wire [63:0] uz_2__13;
|
|
wire [63:0] uz_2__14;
|
|
wire [63:0] uz_2__15;
|
|
wire [63:0] uz_2__16;
|
|
wire [63:0] uz_2__17;
|
|
wire [63:0] uz_2__18;
|
|
wire [63:0] uz_2__19;
|
|
wire [63:0] uz_2__20;
|
|
wire [63:0] uz_2__21;
|
|
wire [63:0] uz_2__22;
|
|
wire [63:0] uz_2__23;
|
|
wire [63:0] uz_2__24;
|
|
wire [63:0] uz_2__25;
|
|
wire [63:0] uz_2__26;
|
|
wire [63:0] uz_2__27;
|
|
wire [63:0] uz_2__28;
|
|
wire [63:0] uz_2__29;
|
|
wire [63:0] uz_2__30;
|
|
wire [63:0] uz_2__31;
|
|
wire [63:0] uz_2__32;
|
|
wire [63:0] uz_2__33;
|
|
wire [63:0] uz_2__34;
|
|
wire [63:0] uz_2__35;
|
|
wire [63:0] uz_2__36;
|
|
wire [63:0] uz_2__37;
|
|
|
|
|
|
|
|
//wire [31:0] uz2[37:0];
|
|
wire [32-1:0] uz2__0;
|
|
wire [32-1:0] uz2__1;
|
|
wire [32-1:0] uz2__2;
|
|
wire [32-1:0] uz2__3;
|
|
wire [32-1:0] uz2__4;
|
|
wire [32-1:0] uz2__5;
|
|
wire [32-1:0] uz2__6;
|
|
wire [32-1:0] uz2__7;
|
|
wire [32-1:0] uz2__8;
|
|
wire [32-1:0] uz2__9;
|
|
wire [32-1:0] uz2__10;
|
|
wire [32-1:0] uz2__11;
|
|
wire [32-1:0] uz2__12;
|
|
wire [32-1:0] uz2__13;
|
|
wire [32-1:0] uz2__14;
|
|
wire [32-1:0] uz2__15;
|
|
wire [32-1:0] uz2__16;
|
|
wire [32-1:0] uz2__17;
|
|
wire [32-1:0] uz2__18;
|
|
wire [32-1:0] uz2__19;
|
|
wire [32-1:0] uz2__20;
|
|
wire [32-1:0] uz2__21;
|
|
wire [32-1:0] uz2__22;
|
|
wire [32-1:0] uz2__23;
|
|
wire [32-1:0] uz2__24;
|
|
wire [32-1:0] uz2__25;
|
|
wire [32-1:0] uz2__26;
|
|
wire [32-1:0] uz2__27;
|
|
wire [32-1:0] uz2__28;
|
|
wire [32-1:0] uz2__29;
|
|
wire [32-1:0] uz2__30;
|
|
wire [32-1:0] uz2__31;
|
|
wire [32-1:0] uz2__32;
|
|
wire [32-1:0] uz2__33;
|
|
wire [32-1:0] uz2__34;
|
|
wire [32-1:0] uz2__35;
|
|
wire [32-1:0] uz2__36;
|
|
wire [32-1:0] uz2__37;
|
|
|
|
|
|
//wire [63:0] oneMinusUz_2[37:0];
|
|
|
|
wire [63:0] oneMinusUz_2__0;
|
|
wire [63:0] oneMinusUz_2__1;
|
|
wire [63:0] oneMinusUz_2__2;
|
|
wire [63:0] oneMinusUz_2__3;
|
|
wire [63:0] oneMinusUz_2__4;
|
|
wire [63:0] oneMinusUz_2__5;
|
|
wire [63:0] oneMinusUz_2__6;
|
|
wire [63:0] oneMinusUz_2__7;
|
|
wire [63:0] oneMinusUz_2__8;
|
|
wire [63:0] oneMinusUz_2__9;
|
|
wire [63:0] oneMinusUz_2__10;
|
|
wire [63:0] oneMinusUz_2__11;
|
|
wire [63:0] oneMinusUz_2__12;
|
|
wire [63:0] oneMinusUz_2__13;
|
|
wire [63:0] oneMinusUz_2__14;
|
|
wire [63:0] oneMinusUz_2__15;
|
|
wire [63:0] oneMinusUz_2__16;
|
|
wire [63:0] oneMinusUz_2__17;
|
|
wire [63:0] oneMinusUz_2__18;
|
|
wire [63:0] oneMinusUz_2__19;
|
|
wire [63:0] oneMinusUz_2__20;
|
|
wire [63:0] oneMinusUz_2__21;
|
|
wire [63:0] oneMinusUz_2__22;
|
|
wire [63:0] oneMinusUz_2__23;
|
|
wire [63:0] oneMinusUz_2__24;
|
|
wire [63:0] oneMinusUz_2__25;
|
|
wire [63:0] oneMinusUz_2__26;
|
|
wire [63:0] oneMinusUz_2__27;
|
|
wire [63:0] oneMinusUz_2__28;
|
|
wire [63:0] oneMinusUz_2__29;
|
|
wire [63:0] oneMinusUz_2__30;
|
|
wire [63:0] oneMinusUz_2__31;
|
|
wire [63:0] oneMinusUz_2__32;
|
|
wire [63:0] oneMinusUz_2__33;
|
|
wire [63:0] oneMinusUz_2__34;
|
|
wire [63:0] oneMinusUz_2__35;
|
|
wire [63:0] oneMinusUz_2__36;
|
|
wire [63:0] oneMinusUz_2__37;
|
|
|
|
|
|
//wire [63:0] sa2_2[37:0];
|
|
wire [63:0] sa2_2__0;
|
|
wire [63:0] sa2_2__1;
|
|
wire [63:0] sa2_2__2;
|
|
wire [63:0] sa2_2__3;
|
|
wire [63:0] sa2_2__4;
|
|
wire [63:0] sa2_2__5;
|
|
wire [63:0] sa2_2__6;
|
|
wire [63:0] sa2_2__7;
|
|
wire [63:0] sa2_2__8;
|
|
wire [63:0] sa2_2__9;
|
|
wire [63:0] sa2_2__10;
|
|
wire [63:0] sa2_2__11;
|
|
wire [63:0] sa2_2__12;
|
|
wire [63:0] sa2_2__13;
|
|
wire [63:0] sa2_2__14;
|
|
wire [63:0] sa2_2__15;
|
|
wire [63:0] sa2_2__16;
|
|
wire [63:0] sa2_2__17;
|
|
wire [63:0] sa2_2__18;
|
|
wire [63:0] sa2_2__19;
|
|
wire [63:0] sa2_2__20;
|
|
wire [63:0] sa2_2__21;
|
|
wire [63:0] sa2_2__22;
|
|
wire [63:0] sa2_2__23;
|
|
wire [63:0] sa2_2__24;
|
|
wire [63:0] sa2_2__25;
|
|
wire [63:0] sa2_2__26;
|
|
wire [63:0] sa2_2__27;
|
|
wire [63:0] sa2_2__28;
|
|
wire [63:0] sa2_2__29;
|
|
wire [63:0] sa2_2__30;
|
|
wire [63:0] sa2_2__31;
|
|
wire [63:0] sa2_2__32;
|
|
wire [63:0] sa2_2__33;
|
|
wire [63:0] sa2_2__34;
|
|
wire [63:0] sa2_2__35;
|
|
wire [63:0] sa2_2__36;
|
|
wire [63:0] sa2_2__37;
|
|
|
|
|
|
//wire [63:0] uz2_2[37:0];
|
|
|
|
wire [63:0] uz2_2__0;
|
|
wire [63:0] uz2_2__1;
|
|
wire [63:0] uz2_2__2;
|
|
wire [63:0] uz2_2__3;
|
|
wire [63:0] uz2_2__4;
|
|
wire [63:0] uz2_2__5;
|
|
wire [63:0] uz2_2__6;
|
|
wire [63:0] uz2_2__7;
|
|
wire [63:0] uz2_2__8;
|
|
wire [63:0] uz2_2__9;
|
|
wire [63:0] uz2_2__10;
|
|
wire [63:0] uz2_2__11;
|
|
wire [63:0] uz2_2__12;
|
|
wire [63:0] uz2_2__13;
|
|
wire [63:0] uz2_2__14;
|
|
wire [63:0] uz2_2__15;
|
|
wire [63:0] uz2_2__16;
|
|
wire [63:0] uz2_2__17;
|
|
wire [63:0] uz2_2__18;
|
|
wire [63:0] uz2_2__19;
|
|
wire [63:0] uz2_2__20;
|
|
wire [63:0] uz2_2__21;
|
|
wire [63:0] uz2_2__22;
|
|
wire [63:0] uz2_2__23;
|
|
wire [63:0] uz2_2__24;
|
|
wire [63:0] uz2_2__25;
|
|
wire [63:0] uz2_2__26;
|
|
wire [63:0] uz2_2__27;
|
|
wire [63:0] uz2_2__28;
|
|
wire [63:0] uz2_2__29;
|
|
wire [63:0] uz2_2__30;
|
|
wire [63:0] uz2_2__31;
|
|
wire [63:0] uz2_2__32;
|
|
wire [63:0] uz2_2__33;
|
|
wire [63:0] uz2_2__34;
|
|
wire [63:0] uz2_2__35;
|
|
wire [63:0] uz2_2__36;
|
|
wire [63:0] uz2_2__37;
|
|
|
|
//wire [31:0] ux_transmitted[37:0];
|
|
|
|
wire [32-1:0] ux_transmitted__0;
|
|
wire [32-1:0] ux_transmitted__1;
|
|
wire [32-1:0] ux_transmitted__2;
|
|
wire [32-1:0] ux_transmitted__3;
|
|
wire [32-1:0] ux_transmitted__4;
|
|
wire [32-1:0] ux_transmitted__5;
|
|
wire [32-1:0] ux_transmitted__6;
|
|
wire [32-1:0] ux_transmitted__7;
|
|
wire [32-1:0] ux_transmitted__8;
|
|
wire [32-1:0] ux_transmitted__9;
|
|
wire [32-1:0] ux_transmitted__10;
|
|
wire [32-1:0] ux_transmitted__11;
|
|
wire [32-1:0] ux_transmitted__12;
|
|
wire [32-1:0] ux_transmitted__13;
|
|
wire [32-1:0] ux_transmitted__14;
|
|
wire [32-1:0] ux_transmitted__15;
|
|
wire [32-1:0] ux_transmitted__16;
|
|
wire [32-1:0] ux_transmitted__17;
|
|
wire [32-1:0] ux_transmitted__18;
|
|
wire [32-1:0] ux_transmitted__19;
|
|
wire [32-1:0] ux_transmitted__20;
|
|
wire [32-1:0] ux_transmitted__21;
|
|
wire [32-1:0] ux_transmitted__22;
|
|
wire [32-1:0] ux_transmitted__23;
|
|
wire [32-1:0] ux_transmitted__24;
|
|
wire [32-1:0] ux_transmitted__25;
|
|
wire [32-1:0] ux_transmitted__26;
|
|
wire [32-1:0] ux_transmitted__27;
|
|
wire [32-1:0] ux_transmitted__28;
|
|
wire [32-1:0] ux_transmitted__29;
|
|
wire [32-1:0] ux_transmitted__30;
|
|
wire [32-1:0] ux_transmitted__31;
|
|
wire [32-1:0] ux_transmitted__32;
|
|
wire [32-1:0] ux_transmitted__33;
|
|
wire [32-1:0] ux_transmitted__34;
|
|
wire [32-1:0] ux_transmitted__35;
|
|
wire [32-1:0] ux_transmitted__36;
|
|
wire [32-1:0] ux_transmitted__37;
|
|
|
|
//wire [31:0] uy_transmitted[37:0];
|
|
|
|
wire [32-1:0] uy_transmitted__0;
|
|
wire [32-1:0] uy_transmitted__1;
|
|
wire [32-1:0] uy_transmitted__2;
|
|
wire [32-1:0] uy_transmitted__3;
|
|
wire [32-1:0] uy_transmitted__4;
|
|
wire [32-1:0] uy_transmitted__5;
|
|
wire [32-1:0] uy_transmitted__6;
|
|
wire [32-1:0] uy_transmitted__7;
|
|
wire [32-1:0] uy_transmitted__8;
|
|
wire [32-1:0] uy_transmitted__9;
|
|
wire [32-1:0] uy_transmitted__10;
|
|
wire [32-1:0] uy_transmitted__11;
|
|
wire [32-1:0] uy_transmitted__12;
|
|
wire [32-1:0] uy_transmitted__13;
|
|
wire [32-1:0] uy_transmitted__14;
|
|
wire [32-1:0] uy_transmitted__15;
|
|
wire [32-1:0] uy_transmitted__16;
|
|
wire [32-1:0] uy_transmitted__17;
|
|
wire [32-1:0] uy_transmitted__18;
|
|
wire [32-1:0] uy_transmitted__19;
|
|
wire [32-1:0] uy_transmitted__20;
|
|
wire [32-1:0] uy_transmitted__21;
|
|
wire [32-1:0] uy_transmitted__22;
|
|
wire [32-1:0] uy_transmitted__23;
|
|
wire [32-1:0] uy_transmitted__24;
|
|
wire [32-1:0] uy_transmitted__25;
|
|
wire [32-1:0] uy_transmitted__26;
|
|
wire [32-1:0] uy_transmitted__27;
|
|
wire [32-1:0] uy_transmitted__28;
|
|
wire [32-1:0] uy_transmitted__29;
|
|
wire [32-1:0] uy_transmitted__30;
|
|
wire [32-1:0] uy_transmitted__31;
|
|
wire [32-1:0] uy_transmitted__32;
|
|
wire [32-1:0] uy_transmitted__33;
|
|
wire [32-1:0] uy_transmitted__34;
|
|
wire [32-1:0] uy_transmitted__35;
|
|
wire [32-1:0] uy_transmitted__36;
|
|
wire [32-1:0] uy_transmitted__37;
|
|
|
|
wire [63:0] new_uz_2;
|
|
wire [31:0] new_uz2;
|
|
wire [63:0] new_oneMinusUz_2;
|
|
wire [63:0] new_sa2_2;
|
|
wire [63:0] new_uz2_2;
|
|
reg [31:0] new_ux_transmitted;
|
|
reg [31:0] new_uy_transmitted;
|
|
|
|
|
|
|
|
//------------------Register Pipeline-----------------
|
|
//Generation Methodology: Standard block, called InternalsBlock_Reflector,
|
|
//is repeated multiple times, based on the `LATency of the reflector and
|
|
//scatterer. This block contains the list of all internal variables
|
|
//that need to be registered and passed along in the pipeline.
|
|
//
|
|
//Previous values in the pipeline are passed to the next register on each
|
|
//clock tick. The exception comes when an internal variable gets
|
|
//calcu`LATed. Each time a new internal variable is calcu`LATed, a new
|
|
//case is added to the case statement, and instead of hooking previous
|
|
//values of that variable to next, the new, calcu`LATed values are hooked up.
|
|
//
|
|
//This method will generate many more registers than what are required, but
|
|
//it is expected that the synthesis tool will synthesize these away.
|
|
//
|
|
//
|
|
//Commenting Convention: Whenever a new value is injected into the pipe, the
|
|
//comment //Changed Value is added directly above the variable in question.
|
|
//When multiple values are calcu`LATed in a single clock cycle, multiple such
|
|
//comments are placed. Wires connected to "Changed Values" always start with
|
|
//the prefix new_.
|
|
//
|
|
//GENERATE PIPELINE
|
|
|
|
//genvar i;
|
|
//generate
|
|
// for(i=`LAT; i>0; i=i-1) begin: internalPipe_Reflector
|
|
// case(i)
|
|
//
|
|
// 2:
|
|
// InternalsBlock_Reflector pipeReg(
|
|
// Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// Changed Value
|
|
// .i_uz_2(new_uz_2), //uz^2
|
|
// .i_uz2(uz2[i-1]), //new uz, should the photon transmit to new layer
|
|
// .i_oneMinusUz_2(oneMinusUz_2[i-1]), //(1-uz)^2
|
|
// .i_sa2_2(sa2_2[i-1]), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
// .i_uz2_2(uz2_2[i-1]), //(uz2)^2, new uz squared.
|
|
// .i_ux_transmitted(ux_transmitted[i-1]), //New value for ux, if photon moves to next layer
|
|
// .i_uy_transmitted(uy_transmitted[i-1]), //New value for uy, if photon moves to next layer
|
|
//
|
|
// Outputs
|
|
// .o_uz_2(uz_2[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_oneMinusUz_2(oneMinusUz_2[i]),
|
|
// .o_sa2_2(sa2_2[i]),
|
|
// .o_uz2_2(uz2_2[i]),
|
|
// .o_ux_transmitted(ux_transmitted[i]),
|
|
// .o_uy_transmitted(uy_transmitted[i])
|
|
// );
|
|
//
|
|
// 3:
|
|
// InternalsBlock_Reflector pipeReg(
|
|
// Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_uz_2(uz_2[i-1]), //uz^2
|
|
// .i_uz2(uz2[i-1]), //new uz, should the photon transmit to new layer
|
|
// // Changed Value
|
|
// .i_oneMinusUz_2(new_oneMinusUz_2), //(1-uz)^2
|
|
// .i_sa2_2(sa2_2[i-1]), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
// .i_uz2_2(uz2_2[i-1]), //(uz2)^2, new uz squared.
|
|
// .i_ux_transmitted(ux_transmitted[i-1]), //New value for ux, if photon moves to next layer
|
|
// .i_uy_transmitted(uy_transmitted[i-1]), //New value for uy, if photon moves to next layer
|
|
//
|
|
// Outputs
|
|
// .o_uz_2(uz_2[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_oneMinusUz_2(oneMinusUz_2[i]),
|
|
// .o_sa2_2(sa2_2[i]),
|
|
// .o_uz2_2(uz2_2[i]),
|
|
// .o_ux_transmitted(ux_transmitted[i]),
|
|
// .o_uy_transmitted(uy_transmitted[i])
|
|
// );
|
|
// 4:
|
|
// InternalsBlock_Reflector pipeReg(
|
|
// Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_uz_2(uz_2[i-1]), //uz^2
|
|
// .i_uz2(uz2[i-1]), //new uz, should the photon transmit to new layer
|
|
// .i_oneMinusUz_2(oneMinusUz_2[i-1]), //(1-uz)^2
|
|
// Changed Value
|
|
// .i_sa2_2(new_sa2_2), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
// .i_uz2_2(uz2_2[i-1]), //(uz2)^2, new uz squared.
|
|
// .i_ux_transmitted(ux_transmitted[i-1]), //New value for ux, if photon moves to next layer
|
|
// .i_uy_transmitted(uy_transmitted[i-1]), //New value for uy, if photon moves to next layer
|
|
//
|
|
// Outputs
|
|
// .o_uz_2(uz_2[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_oneMinusUz_2(oneMinusUz_2[i]),
|
|
// .o_sa2_2(sa2_2[i]),
|
|
// .o_uz2_2(uz2_2[i]),
|
|
// .o_ux_transmitted(ux_transmitted[i]),
|
|
// .o_uy_transmitted(uy_transmitted[i])
|
|
// );
|
|
//
|
|
// 5:
|
|
// InternalsBlock_Reflector pipeReg(
|
|
// Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_uz_2(uz_2[i-1]), //uz^2
|
|
// .i_uz2(uz2[i-1]), //new uz, should the photon transmit to new layer
|
|
// .i_oneMinusUz_2(oneMinusUz_2[i-1]), //(1-uz)^2
|
|
// .i_sa2_2(sa2_2[i-1]), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
// Changed Value
|
|
// .i_uz2_2(new_uz2_2), //(uz2)^2, new uz squared.
|
|
// .i_ux_transmitted(ux_transmitted[i-1]), //New value for ux, if photon moves to next layer
|
|
// .i_uy_transmitted(uy_transmitted[i-1]), //New value for uy, if photon moves to next layer
|
|
//
|
|
// Outputs
|
|
// .o_uz_2(uz_2[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_oneMinusUz_2(oneMinusUz_2[i]),
|
|
// .o_sa2_2(sa2_2[i]),
|
|
// .o_uz2_2(uz2_2[i]),
|
|
// .o_ux_transmitted(ux_transmitted[i]),
|
|
// .o_uy_transmitted(uy_transmitted[i])
|
|
// );
|
|
//
|
|
// (`SQRT+6):
|
|
// InternalsBlock_Reflector pipeReg(
|
|
// Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_uz_2(uz_2[i-1]), //uz^2
|
|
// Changed Value
|
|
// .i_uz2(new_uz2), //new uz, should the photon transmit to new layer
|
|
// .i_oneMinusUz_2(oneMinusUz_2[i-1]), //(1-uz)^2
|
|
// .i_sa2_2(sa2_2[i-1]), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
// .i_uz2_2(uz2_2[i-1]), //(uz2)^2, new uz squared.
|
|
// .i_ux_transmitted(ux_transmitted[i-1]), //New value for ux, if photon moves to next layer
|
|
// .i_uy_transmitted(uy_transmitted[i-1]), //New value for uy, if photon moves to next layer
|
|
//
|
|
// Outputs
|
|
// .o_uz_2(uz_2[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_oneMinusUz_2(oneMinusUz_2[i]),
|
|
// .o_sa2_2(sa2_2[i]),
|
|
// .o_uz2_2(uz2_2[i]),
|
|
// .o_ux_transmitted(ux_transmitted[i]),
|
|
// .o_uy_transmitted(uy_transmitted[i])
|
|
// );
|
|
//
|
|
// (`SQRT+`DIV+6):
|
|
// InternalsBlock_Reflector pipeReg(
|
|
// Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_uz_2(uz_2[i-1]), //uz^2
|
|
// .i_uz2(uz2[i-1]), //new uz, should the photon transmit to new layer
|
|
// .i_oneMinusUz_2(oneMinusUz_2[i-1]), //(1-uz)^2
|
|
// .i_sa2_2(sa2_2[i-1]), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
// .i_uz2_2(uz2_2[i-1]), //(uz2)^2, new uz squared.
|
|
// Changed Value
|
|
// .i_ux_transmitted(new_ux_transmitted), //New value for ux, if photon moves to next layer
|
|
// Changed Value
|
|
// .i_uy_transmitted(new_uy_transmitted), //New value for uy, if photon moves to next layer
|
|
//
|
|
// Outputs
|
|
// .o_uz_2(uz_2[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_oneMinusUz_2(oneMinusUz_2[i]),
|
|
// .o_sa2_2(sa2_2[i]),
|
|
// .o_uz2_2(uz2_2[i]),
|
|
// .o_ux_transmitted(ux_transmitted[i]),
|
|
// .o_uy_transmitted(uy_transmitted[i])
|
|
// );
|
|
// default:
|
|
// InternalsBlock_Reflector pipeReg(
|
|
// Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_uz_2(uz_2[i-1]), //uz^2
|
|
// .i_uz2(uz2[i-1]), //new uz, should the photon transmit to new layer
|
|
// .i_oneMinusUz_2(oneMinusUz_2[i-1]), //(1-uz)^2
|
|
// .i_sa2_2(sa2_2[i-1]), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
// .i_uz2_2(uz2_2[i-1]), //(uz2)^2, new uz squared.
|
|
// .i_ux_transmitted(ux_transmitted[i-1]), //New value for ux, if photon moves to next layer
|
|
// .i_uy_transmitted(uy_transmitted[i-1]), //New value for uy, if photon moves to next layer
|
|
//
|
|
// Outputs
|
|
// .o_uz_2(uz_2[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_oneMinusUz_2(oneMinusUz_2[i]),
|
|
// .o_sa2_2(sa2_2[i]),
|
|
// .o_uz2_2(uz2_2[i]),
|
|
// .o_ux_transmitted(ux_transmitted[i]),
|
|
// .o_uy_transmitted(uy_transmitted[i])
|
|
// );
|
|
// endcase
|
|
// end
|
|
//endgenerate
|
|
|
|
|
|
|
|
// special cases first
|
|
|
|
// forloop2
|
|
InternalsBlock_Reflector pipeReg2(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
//Changed Value
|
|
.i_uz_2(new_uz_2), //uz^2
|
|
.i_uz2(uz2__1), //new uz, should the photon transmit to new layer
|
|
.i_oneMinusUz_2(oneMinusUz_2__1), //(1-uz)^2
|
|
.i_sa2_2(sa2_2__1), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
.i_uz2_2(uz2_2__1), //(uz2)^2, new uz squared.
|
|
.i_ux_transmitted(ux_transmitted__1), //New value for ux, if photon moves to next layer
|
|
.i_uy_transmitted(uy_transmitted__1), //New value for uy, if photon moves to next layer
|
|
|
|
//Outputs
|
|
.o_uz_2(uz_2__2),
|
|
.o_uz2(uz2__2),
|
|
.o_oneMinusUz_2(oneMinusUz_2__2),
|
|
.o_sa2_2(sa2_2__2),
|
|
.o_uz2_2(uz2_2__2),
|
|
.o_ux_transmitted(ux_transmitted__2),
|
|
.o_uy_transmitted(uy_transmitted__2)
|
|
);
|
|
|
|
// for loop3:
|
|
InternalsBlock_Reflector pipeReg3(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_uz_2(uz_2__2), //uz^2
|
|
.i_uz2(uz2__2), //new uz, should the photon transmit to new layer
|
|
//Changed Value
|
|
.i_oneMinusUz_2(new_oneMinusUz_2), //(1-uz)^2
|
|
.i_sa2_2(sa2_2__2), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
.i_uz2_2(uz2_2__2), //(uz2)^2, new uz squared.
|
|
.i_ux_transmitted(ux_transmitted__2), //New value for ux, if photon moves to next layer
|
|
.i_uy_transmitted(uy_transmitted__2), //New value for uy, if photon moves to next layer
|
|
|
|
//Outputs
|
|
.o_uz_2(uz_2__3),
|
|
.o_uz2(uz2__3),
|
|
.o_oneMinusUz_2(oneMinusUz_2__3),
|
|
.o_sa2_2(sa2_2__3),
|
|
.o_uz2_2(uz2_2__3),
|
|
.o_ux_transmitted(ux_transmitted__3),
|
|
.o_uy_transmitted(uy_transmitted__3)
|
|
);
|
|
|
|
// for loop4
|
|
InternalsBlock_Reflector pipeReg4(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_uz_2(uz_2__3), //uz^2
|
|
.i_uz2(uz2__3), //new uz, should the photon transmit to new layer
|
|
.i_oneMinusUz_2(oneMinusUz_2__3), //(1-uz)^2
|
|
//Changed Value
|
|
.i_sa2_2(new_sa2_2), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
.i_uz2_2(uz2_2__3), //(uz2)^2, new uz squared.
|
|
.i_ux_transmitted(ux_transmitted__3), //New value for ux, if photon moves to next layer
|
|
.i_uy_transmitted(uy_transmitted__3), //New value for uy, if photon moves to next layer
|
|
|
|
//Outputs
|
|
.o_uz_2(uz_2__4),
|
|
.o_uz2(uz2__4),
|
|
.o_oneMinusUz_2(oneMinusUz_2__4),
|
|
.o_sa2_2(sa2_2__4),
|
|
.o_uz2_2(uz2_2__4),
|
|
.o_ux_transmitted(ux_transmitted__4),
|
|
.o_uy_transmitted(uy_transmitted__4)
|
|
);
|
|
|
|
//for loop5
|
|
InternalsBlock_Reflector pipeReg5(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_uz_2(uz_2__4), //uz^2
|
|
.i_uz2(uz2__4), //new uz, should the photon transmit to new layer
|
|
.i_oneMinusUz_2(oneMinusUz_2__4), //(1-uz)^2
|
|
.i_sa2_2(sa2_2__4), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
//Changed Value
|
|
.i_uz2_2(new_uz2_2), //(uz2)^2, new uz squared.
|
|
.i_ux_transmitted(ux_transmitted__4), //New value for ux, if photon moves to next layer
|
|
.i_uy_transmitted(uy_transmitted__4), //New value for uy, if photon moves to next layer
|
|
|
|
//Outputs
|
|
.o_uz_2(uz_2__5),
|
|
.o_uz2(uz2__5),
|
|
.o_oneMinusUz_2(oneMinusUz_2__5),
|
|
.o_sa2_2(sa2_2__5),
|
|
.o_uz2_2(uz2_2__5),
|
|
.o_ux_transmitted(ux_transmitted__5),
|
|
.o_uy_transmitted(uy_transmitted__5)
|
|
);
|
|
|
|
//for loop(10+6):
|
|
InternalsBlock_Reflector pipeReg16(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_uz_2(uz_2__15), //uz^2
|
|
//Changed Value
|
|
.i_uz2(new_uz2), //new uz, should the photon transmit to new layer
|
|
.i_oneMinusUz_2(oneMinusUz_2__15), //(1-uz)^2
|
|
.i_sa2_2(sa2_2__15), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
.i_uz2_2(uz2_2__15), //(uz2)^2, new uz squared.
|
|
.i_ux_transmitted(ux_transmitted__15), //New value for ux, if photon moves to next layer
|
|
.i_uy_transmitted(uy_transmitted__15), //New value for uy, if photon moves to next layer
|
|
|
|
//Outputs
|
|
.o_uz_2(uz_2__16),
|
|
.o_uz2(uz2__16),
|
|
.o_oneMinusUz_2(oneMinusUz_2__16),
|
|
.o_sa2_2(sa2_2__16),
|
|
.o_uz2_2(uz2_2__16),
|
|
.o_ux_transmitted(ux_transmitted__16),
|
|
.o_uy_transmitted(uy_transmitted__16)
|
|
);
|
|
|
|
//for loop (10+20+6):
|
|
InternalsBlock_Reflector pipeReg36(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_uz_2(uz_2__35), //uz^2
|
|
.i_uz2(uz2__35), //new uz, should the photon transmit to new layer
|
|
.i_oneMinusUz_2(oneMinusUz_2__35), //(1-uz)^2
|
|
.i_sa2_2(sa2_2__35), //(sine of angle 2)^2 (uz2 = cosine of angle 2).
|
|
.i_uz2_2(uz2_2__35), //(uz2)^2, new uz squared.
|
|
//Changed Value
|
|
.i_ux_transmitted(new_ux_transmitted), //New value for ux, if photon moves to next layer
|
|
//Changed Value
|
|
.i_uy_transmitted(new_uy_transmitted), //New value for uy, if photon moves to next layer
|
|
|
|
//Outputs
|
|
.o_uz_2(uz_2__36),
|
|
.o_uz2(uz2__36),
|
|
.o_oneMinusUz_2(oneMinusUz_2__36),
|
|
.o_sa2_2(sa2_2__36),
|
|
.o_uz2_2(uz2_2__36),
|
|
.o_ux_transmitted(ux_transmitted__36),
|
|
.o_uy_transmitted(uy_transmitted__36)
|
|
);
|
|
|
|
|
|
//rest of loop
|
|
|
|
InternalsBlock_Reflector pipeReg37(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__36),
|
|
.i_uz2(uz2__36),
|
|
.i_oneMinusUz_2(oneMinusUz_2__36),
|
|
.i_sa2_2(sa2_2__36),
|
|
.i_uz2_2(uz2_2__36),
|
|
.i_ux_transmitted(ux_transmitted__36),
|
|
.i_uy_transmitted(uy_transmitted__36),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__37),
|
|
.o_uz2(uz2__37),
|
|
.o_oneMinusUz_2(oneMinusUz_2__37),
|
|
.o_sa2_2(sa2_2__37),
|
|
.o_uz2_2(uz2_2__37),
|
|
.o_ux_transmitted(ux_transmitted__37),
|
|
.o_uy_transmitted(uy_transmitted__37)
|
|
);
|
|
|
|
//removed 36
|
|
InternalsBlock_Reflector pipeReg35(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__34),
|
|
.i_uz2(uz2__34),
|
|
.i_oneMinusUz_2(oneMinusUz_2__34),
|
|
.i_sa2_2(sa2_2__34),
|
|
.i_uz2_2(uz2_2__34),
|
|
.i_ux_transmitted(ux_transmitted__34),
|
|
.i_uy_transmitted(uy_transmitted__34),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__35),
|
|
.o_uz2(uz2__35),
|
|
.o_oneMinusUz_2(oneMinusUz_2__35),
|
|
.o_sa2_2(sa2_2__35),
|
|
.o_uz2_2(uz2_2__35),
|
|
.o_ux_transmitted(ux_transmitted__35),
|
|
.o_uy_transmitted(uy_transmitted__35)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg34(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__33),
|
|
.i_uz2(uz2__33),
|
|
.i_oneMinusUz_2(oneMinusUz_2__33),
|
|
.i_sa2_2(sa2_2__33),
|
|
.i_uz2_2(uz2_2__33),
|
|
.i_ux_transmitted(ux_transmitted__33),
|
|
.i_uy_transmitted(uy_transmitted__33),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__34),
|
|
.o_uz2(uz2__34),
|
|
.o_oneMinusUz_2(oneMinusUz_2__34),
|
|
.o_sa2_2(sa2_2__34),
|
|
.o_uz2_2(uz2_2__34),
|
|
.o_ux_transmitted(ux_transmitted__34),
|
|
.o_uy_transmitted(uy_transmitted__34)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg33(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__32),
|
|
.i_uz2(uz2__32),
|
|
.i_oneMinusUz_2(oneMinusUz_2__32),
|
|
.i_sa2_2(sa2_2__32),
|
|
.i_uz2_2(uz2_2__32),
|
|
.i_ux_transmitted(ux_transmitted__32),
|
|
.i_uy_transmitted(uy_transmitted__32),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__33),
|
|
.o_uz2(uz2__33),
|
|
.o_oneMinusUz_2(oneMinusUz_2__33),
|
|
.o_sa2_2(sa2_2__33),
|
|
.o_uz2_2(uz2_2__33),
|
|
.o_ux_transmitted(ux_transmitted__33),
|
|
.o_uy_transmitted(uy_transmitted__33)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg32(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__31),
|
|
.i_uz2(uz2__31),
|
|
.i_oneMinusUz_2(oneMinusUz_2__31),
|
|
.i_sa2_2(sa2_2__31),
|
|
.i_uz2_2(uz2_2__31),
|
|
.i_ux_transmitted(ux_transmitted__31),
|
|
.i_uy_transmitted(uy_transmitted__31),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__32),
|
|
.o_uz2(uz2__32),
|
|
.o_oneMinusUz_2(oneMinusUz_2__32),
|
|
.o_sa2_2(sa2_2__32),
|
|
.o_uz2_2(uz2_2__32),
|
|
.o_ux_transmitted(ux_transmitted__32),
|
|
.o_uy_transmitted(uy_transmitted__32)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg31(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__30),
|
|
.i_uz2(uz2__30),
|
|
.i_oneMinusUz_2(oneMinusUz_2__30),
|
|
.i_sa2_2(sa2_2__30),
|
|
.i_uz2_2(uz2_2__30),
|
|
.i_ux_transmitted(ux_transmitted__30),
|
|
.i_uy_transmitted(uy_transmitted__30),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__31),
|
|
.o_uz2(uz2__31),
|
|
.o_oneMinusUz_2(oneMinusUz_2__31),
|
|
.o_sa2_2(sa2_2__31),
|
|
.o_uz2_2(uz2_2__31),
|
|
.o_ux_transmitted(ux_transmitted__31),
|
|
.o_uy_transmitted(uy_transmitted__31)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg30(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__29),
|
|
.i_uz2(uz2__29),
|
|
.i_oneMinusUz_2(oneMinusUz_2__29),
|
|
.i_sa2_2(sa2_2__29),
|
|
.i_uz2_2(uz2_2__29),
|
|
.i_ux_transmitted(ux_transmitted__29),
|
|
.i_uy_transmitted(uy_transmitted__29),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__30),
|
|
.o_uz2(uz2__30),
|
|
.o_oneMinusUz_2(oneMinusUz_2__30),
|
|
.o_sa2_2(sa2_2__30),
|
|
.o_uz2_2(uz2_2__30),
|
|
.o_ux_transmitted(ux_transmitted__30),
|
|
.o_uy_transmitted(uy_transmitted__30)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg29(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__28),
|
|
.i_uz2(uz2__28),
|
|
.i_oneMinusUz_2(oneMinusUz_2__28),
|
|
.i_sa2_2(sa2_2__28),
|
|
.i_uz2_2(uz2_2__28),
|
|
.i_ux_transmitted(ux_transmitted__28),
|
|
.i_uy_transmitted(uy_transmitted__28),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__29),
|
|
.o_uz2(uz2__29),
|
|
.o_oneMinusUz_2(oneMinusUz_2__29),
|
|
.o_sa2_2(sa2_2__29),
|
|
.o_uz2_2(uz2_2__29),
|
|
.o_ux_transmitted(ux_transmitted__29),
|
|
.o_uy_transmitted(uy_transmitted__29)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg28(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__27),
|
|
.i_uz2(uz2__27),
|
|
.i_oneMinusUz_2(oneMinusUz_2__27),
|
|
.i_sa2_2(sa2_2__27),
|
|
.i_uz2_2(uz2_2__27),
|
|
.i_ux_transmitted(ux_transmitted__27),
|
|
.i_uy_transmitted(uy_transmitted__27),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__28),
|
|
.o_uz2(uz2__28),
|
|
.o_oneMinusUz_2(oneMinusUz_2__28),
|
|
.o_sa2_2(sa2_2__28),
|
|
.o_uz2_2(uz2_2__28),
|
|
.o_ux_transmitted(ux_transmitted__28),
|
|
.o_uy_transmitted(uy_transmitted__28)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg27(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__26),
|
|
.i_uz2(uz2__26),
|
|
.i_oneMinusUz_2(oneMinusUz_2__26),
|
|
.i_sa2_2(sa2_2__26),
|
|
.i_uz2_2(uz2_2__26),
|
|
.i_ux_transmitted(ux_transmitted__26),
|
|
.i_uy_transmitted(uy_transmitted__26),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__27),
|
|
.o_uz2(uz2__27),
|
|
.o_oneMinusUz_2(oneMinusUz_2__27),
|
|
.o_sa2_2(sa2_2__27),
|
|
.o_uz2_2(uz2_2__27),
|
|
.o_ux_transmitted(ux_transmitted__27),
|
|
.o_uy_transmitted(uy_transmitted__27)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg26(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__25),
|
|
.i_uz2(uz2__25),
|
|
.i_oneMinusUz_2(oneMinusUz_2__25),
|
|
.i_sa2_2(sa2_2__25),
|
|
.i_uz2_2(uz2_2__25),
|
|
.i_ux_transmitted(ux_transmitted__25),
|
|
.i_uy_transmitted(uy_transmitted__25),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__26),
|
|
.o_uz2(uz2__26),
|
|
.o_oneMinusUz_2(oneMinusUz_2__26),
|
|
.o_sa2_2(sa2_2__26),
|
|
.o_uz2_2(uz2_2__26),
|
|
.o_ux_transmitted(ux_transmitted__26),
|
|
.o_uy_transmitted(uy_transmitted__26)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg25(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__24),
|
|
.i_uz2(uz2__24),
|
|
.i_oneMinusUz_2(oneMinusUz_2__24),
|
|
.i_sa2_2(sa2_2__24),
|
|
.i_uz2_2(uz2_2__24),
|
|
.i_ux_transmitted(ux_transmitted__24),
|
|
.i_uy_transmitted(uy_transmitted__24),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__25),
|
|
.o_uz2(uz2__25),
|
|
.o_oneMinusUz_2(oneMinusUz_2__25),
|
|
.o_sa2_2(sa2_2__25),
|
|
.o_uz2_2(uz2_2__25),
|
|
.o_ux_transmitted(ux_transmitted__25),
|
|
.o_uy_transmitted(uy_transmitted__25)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg24(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__23),
|
|
.i_uz2(uz2__23),
|
|
.i_oneMinusUz_2(oneMinusUz_2__23),
|
|
.i_sa2_2(sa2_2__23),
|
|
.i_uz2_2(uz2_2__23),
|
|
.i_ux_transmitted(ux_transmitted__23),
|
|
.i_uy_transmitted(uy_transmitted__23),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__24),
|
|
.o_uz2(uz2__24),
|
|
.o_oneMinusUz_2(oneMinusUz_2__24),
|
|
.o_sa2_2(sa2_2__24),
|
|
.o_uz2_2(uz2_2__24),
|
|
.o_ux_transmitted(ux_transmitted__24),
|
|
.o_uy_transmitted(uy_transmitted__24)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg23(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__22),
|
|
.i_uz2(uz2__22),
|
|
.i_oneMinusUz_2(oneMinusUz_2__22),
|
|
.i_sa2_2(sa2_2__22),
|
|
.i_uz2_2(uz2_2__22),
|
|
.i_ux_transmitted(ux_transmitted__22),
|
|
.i_uy_transmitted(uy_transmitted__22),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__23),
|
|
.o_uz2(uz2__23),
|
|
.o_oneMinusUz_2(oneMinusUz_2__23),
|
|
.o_sa2_2(sa2_2__23),
|
|
.o_uz2_2(uz2_2__23),
|
|
.o_ux_transmitted(ux_transmitted__23),
|
|
.o_uy_transmitted(uy_transmitted__23)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg22(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__21),
|
|
.i_uz2(uz2__21),
|
|
.i_oneMinusUz_2(oneMinusUz_2__21),
|
|
.i_sa2_2(sa2_2__21),
|
|
.i_uz2_2(uz2_2__21),
|
|
.i_ux_transmitted(ux_transmitted__21),
|
|
.i_uy_transmitted(uy_transmitted__21),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__22),
|
|
.o_uz2(uz2__22),
|
|
.o_oneMinusUz_2(oneMinusUz_2__22),
|
|
.o_sa2_2(sa2_2__22),
|
|
.o_uz2_2(uz2_2__22),
|
|
.o_ux_transmitted(ux_transmitted__22),
|
|
.o_uy_transmitted(uy_transmitted__22)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg21(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__20),
|
|
.i_uz2(uz2__20),
|
|
.i_oneMinusUz_2(oneMinusUz_2__20),
|
|
.i_sa2_2(sa2_2__20),
|
|
.i_uz2_2(uz2_2__20),
|
|
.i_ux_transmitted(ux_transmitted__20),
|
|
.i_uy_transmitted(uy_transmitted__20),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__21),
|
|
.o_uz2(uz2__21),
|
|
.o_oneMinusUz_2(oneMinusUz_2__21),
|
|
.o_sa2_2(sa2_2__21),
|
|
.o_uz2_2(uz2_2__21),
|
|
.o_ux_transmitted(ux_transmitted__21),
|
|
.o_uy_transmitted(uy_transmitted__21)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg20(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__19),
|
|
.i_uz2(uz2__19),
|
|
.i_oneMinusUz_2(oneMinusUz_2__19),
|
|
.i_sa2_2(sa2_2__19),
|
|
.i_uz2_2(uz2_2__19),
|
|
.i_ux_transmitted(ux_transmitted__19),
|
|
.i_uy_transmitted(uy_transmitted__19),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__20),
|
|
.o_uz2(uz2__20),
|
|
.o_oneMinusUz_2(oneMinusUz_2__20),
|
|
.o_sa2_2(sa2_2__20),
|
|
.o_uz2_2(uz2_2__20),
|
|
.o_ux_transmitted(ux_transmitted__20),
|
|
.o_uy_transmitted(uy_transmitted__20)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg19(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__18),
|
|
.i_uz2(uz2__18),
|
|
.i_oneMinusUz_2(oneMinusUz_2__18),
|
|
.i_sa2_2(sa2_2__18),
|
|
.i_uz2_2(uz2_2__18),
|
|
.i_ux_transmitted(ux_transmitted__18),
|
|
.i_uy_transmitted(uy_transmitted__18),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__19),
|
|
.o_uz2(uz2__19),
|
|
.o_oneMinusUz_2(oneMinusUz_2__19),
|
|
.o_sa2_2(sa2_2__19),
|
|
.o_uz2_2(uz2_2__19),
|
|
.o_ux_transmitted(ux_transmitted__19),
|
|
.o_uy_transmitted(uy_transmitted__19)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg18(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__17),
|
|
.i_uz2(uz2__17),
|
|
.i_oneMinusUz_2(oneMinusUz_2__17),
|
|
.i_sa2_2(sa2_2__17),
|
|
.i_uz2_2(uz2_2__17),
|
|
.i_ux_transmitted(ux_transmitted__17),
|
|
.i_uy_transmitted(uy_transmitted__17),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__18),
|
|
.o_uz2(uz2__18),
|
|
.o_oneMinusUz_2(oneMinusUz_2__18),
|
|
.o_sa2_2(sa2_2__18),
|
|
.o_uz2_2(uz2_2__18),
|
|
.o_ux_transmitted(ux_transmitted__18),
|
|
.o_uy_transmitted(uy_transmitted__18)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg17(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__16),
|
|
.i_uz2(uz2__16),
|
|
.i_oneMinusUz_2(oneMinusUz_2__16),
|
|
.i_sa2_2(sa2_2__16),
|
|
.i_uz2_2(uz2_2__16),
|
|
.i_ux_transmitted(ux_transmitted__16),
|
|
.i_uy_transmitted(uy_transmitted__16),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__17),
|
|
.o_uz2(uz2__17),
|
|
.o_oneMinusUz_2(oneMinusUz_2__17),
|
|
.o_sa2_2(sa2_2__17),
|
|
.o_uz2_2(uz2_2__17),
|
|
.o_ux_transmitted(ux_transmitted__17),
|
|
.o_uy_transmitted(uy_transmitted__17)
|
|
);
|
|
//removed 16
|
|
|
|
InternalsBlock_Reflector pipeReg15(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__14),
|
|
.i_uz2(uz2__14),
|
|
.i_oneMinusUz_2(oneMinusUz_2__14),
|
|
.i_sa2_2(sa2_2__14),
|
|
.i_uz2_2(uz2_2__14),
|
|
.i_ux_transmitted(ux_transmitted__14),
|
|
.i_uy_transmitted(uy_transmitted__14),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__15),
|
|
.o_uz2(uz2__15),
|
|
.o_oneMinusUz_2(oneMinusUz_2__15),
|
|
.o_sa2_2(sa2_2__15),
|
|
.o_uz2_2(uz2_2__15),
|
|
.o_ux_transmitted(ux_transmitted__15),
|
|
.o_uy_transmitted(uy_transmitted__15)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg14(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__13),
|
|
.i_uz2(uz2__13),
|
|
.i_oneMinusUz_2(oneMinusUz_2__13),
|
|
.i_sa2_2(sa2_2__13),
|
|
.i_uz2_2(uz2_2__13),
|
|
.i_ux_transmitted(ux_transmitted__13),
|
|
.i_uy_transmitted(uy_transmitted__13),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__14),
|
|
.o_uz2(uz2__14),
|
|
.o_oneMinusUz_2(oneMinusUz_2__14),
|
|
.o_sa2_2(sa2_2__14),
|
|
.o_uz2_2(uz2_2__14),
|
|
.o_ux_transmitted(ux_transmitted__14),
|
|
.o_uy_transmitted(uy_transmitted__14)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg13(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__12),
|
|
.i_uz2(uz2__12),
|
|
.i_oneMinusUz_2(oneMinusUz_2__12),
|
|
.i_sa2_2(sa2_2__12),
|
|
.i_uz2_2(uz2_2__12),
|
|
.i_ux_transmitted(ux_transmitted__12),
|
|
.i_uy_transmitted(uy_transmitted__12),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__13),
|
|
.o_uz2(uz2__13),
|
|
.o_oneMinusUz_2(oneMinusUz_2__13),
|
|
.o_sa2_2(sa2_2__13),
|
|
.o_uz2_2(uz2_2__13),
|
|
.o_ux_transmitted(ux_transmitted__13),
|
|
.o_uy_transmitted(uy_transmitted__13)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg12(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__11),
|
|
.i_uz2(uz2__11),
|
|
.i_oneMinusUz_2(oneMinusUz_2__11),
|
|
.i_sa2_2(sa2_2__11),
|
|
.i_uz2_2(uz2_2__11),
|
|
.i_ux_transmitted(ux_transmitted__11),
|
|
.i_uy_transmitted(uy_transmitted__11),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__12),
|
|
.o_uz2(uz2__12),
|
|
.o_oneMinusUz_2(oneMinusUz_2__12),
|
|
.o_sa2_2(sa2_2__12),
|
|
.o_uz2_2(uz2_2__12),
|
|
.o_ux_transmitted(ux_transmitted__12),
|
|
.o_uy_transmitted(uy_transmitted__12)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg11(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__10),
|
|
.i_uz2(uz2__10),
|
|
.i_oneMinusUz_2(oneMinusUz_2__10),
|
|
.i_sa2_2(sa2_2__10),
|
|
.i_uz2_2(uz2_2__10),
|
|
.i_ux_transmitted(ux_transmitted__10),
|
|
.i_uy_transmitted(uy_transmitted__10),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__11),
|
|
.o_uz2(uz2__11),
|
|
.o_oneMinusUz_2(oneMinusUz_2__11),
|
|
.o_sa2_2(sa2_2__11),
|
|
.o_uz2_2(uz2_2__11),
|
|
.o_ux_transmitted(ux_transmitted__11),
|
|
.o_uy_transmitted(uy_transmitted__11)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg10(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__9),
|
|
.i_uz2(uz2__9),
|
|
.i_oneMinusUz_2(oneMinusUz_2__9),
|
|
.i_sa2_2(sa2_2__9),
|
|
.i_uz2_2(uz2_2__9),
|
|
.i_ux_transmitted(ux_transmitted__9),
|
|
.i_uy_transmitted(uy_transmitted__9),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__10),
|
|
.o_uz2(uz2__10),
|
|
.o_oneMinusUz_2(oneMinusUz_2__10),
|
|
.o_sa2_2(sa2_2__10),
|
|
.o_uz2_2(uz2_2__10),
|
|
.o_ux_transmitted(ux_transmitted__10),
|
|
.o_uy_transmitted(uy_transmitted__10)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg9(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__8),
|
|
.i_uz2(uz2__8),
|
|
.i_oneMinusUz_2(oneMinusUz_2__8),
|
|
.i_sa2_2(sa2_2__8),
|
|
.i_uz2_2(uz2_2__8),
|
|
.i_ux_transmitted(ux_transmitted__8),
|
|
.i_uy_transmitted(uy_transmitted__8),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__9),
|
|
.o_uz2(uz2__9),
|
|
.o_oneMinusUz_2(oneMinusUz_2__9),
|
|
.o_sa2_2(sa2_2__9),
|
|
.o_uz2_2(uz2_2__9),
|
|
.o_ux_transmitted(ux_transmitted__9),
|
|
.o_uy_transmitted(uy_transmitted__9)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg8(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__7),
|
|
.i_uz2(uz2__7),
|
|
.i_oneMinusUz_2(oneMinusUz_2__7),
|
|
.i_sa2_2(sa2_2__7),
|
|
.i_uz2_2(uz2_2__7),
|
|
.i_ux_transmitted(ux_transmitted__7),
|
|
.i_uy_transmitted(uy_transmitted__7),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__8),
|
|
.o_uz2(uz2__8),
|
|
.o_oneMinusUz_2(oneMinusUz_2__8),
|
|
.o_sa2_2(sa2_2__8),
|
|
.o_uz2_2(uz2_2__8),
|
|
.o_ux_transmitted(ux_transmitted__8),
|
|
.o_uy_transmitted(uy_transmitted__8)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg7(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__6),
|
|
.i_uz2(uz2__6),
|
|
.i_oneMinusUz_2(oneMinusUz_2__6),
|
|
.i_sa2_2(sa2_2__6),
|
|
.i_uz2_2(uz2_2__6),
|
|
.i_ux_transmitted(ux_transmitted__6),
|
|
.i_uy_transmitted(uy_transmitted__6),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__7),
|
|
.o_uz2(uz2__7),
|
|
.o_oneMinusUz_2(oneMinusUz_2__7),
|
|
.o_sa2_2(sa2_2__7),
|
|
.o_uz2_2(uz2_2__7),
|
|
.o_ux_transmitted(ux_transmitted__7),
|
|
.o_uy_transmitted(uy_transmitted__7)
|
|
);
|
|
|
|
InternalsBlock_Reflector pipeReg6(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__5),
|
|
.i_uz2(uz2__5),
|
|
.i_oneMinusUz_2(oneMinusUz_2__5),
|
|
.i_sa2_2(sa2_2__5),
|
|
.i_uz2_2(uz2_2__5),
|
|
.i_ux_transmitted(ux_transmitted__5),
|
|
.i_uy_transmitted(uy_transmitted__5),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__6),
|
|
.o_uz2(uz2__6),
|
|
.o_oneMinusUz_2(oneMinusUz_2__6),
|
|
.o_sa2_2(sa2_2__6),
|
|
.o_uz2_2(uz2_2__6),
|
|
.o_ux_transmitted(ux_transmitted__6),
|
|
.o_uy_transmitted(uy_transmitted__6)
|
|
);
|
|
|
|
|
|
//removed 2,3,4,5
|
|
|
|
|
|
//peter m
|
|
// no driver
|
|
assign uz_2__0 = 64'b0;
|
|
assign uz2__0 = 32'b0;
|
|
assign oneMinusUz_2__0 = 0;
|
|
assign sa2_2__0 = 0;
|
|
assign uz2_2__0 = 64'b0;
|
|
assign ux_transmitted__0 = 32'b00000000000000000000000000000000;
|
|
assign uy_transmitted__0 = 32'b00000000000000000000000000000000;
|
|
|
|
|
|
InternalsBlock_Reflector pipeReg1(
|
|
//Inputs
|
|
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_uz_2(uz_2__0),
|
|
.i_uz2(uz2__0),
|
|
.i_oneMinusUz_2(oneMinusUz_2__0),
|
|
.i_sa2_2(sa2_2__0),
|
|
.i_uz2_2(uz2_2__0),
|
|
.i_ux_transmitted(ux_transmitted__0),
|
|
.i_uy_transmitted(uy_transmitted__0),
|
|
|
|
//outputs
|
|
|
|
.o_uz_2(uz_2__1),
|
|
.o_uz2(uz2__1),
|
|
.o_oneMinusUz_2(oneMinusUz_2__1),
|
|
.o_sa2_2(sa2_2__1),
|
|
.o_uz2_2(uz2_2__1),
|
|
.o_ux_transmitted(ux_transmitted__1),
|
|
.o_uy_transmitted(uy_transmitted__1)
|
|
);
|
|
|
|
|
|
|
|
|
|
//-------------SYNCHRONOUS LOGIC----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//This is the end of the generate statement, and the beginning of the
|
|
//synchronous logic. On the clock event, the outputs calcu`LATed from
|
|
//this block are put on the output pins for reading (registered
|
|
//outputs, as per the convention).
|
|
|
|
//Assign outputs from block on positive clock edge.
|
|
always @ (posedge clock) begin
|
|
if(reset_new) begin
|
|
//Reset internal non-pipelined registers here.
|
|
ux_reflector <= 32'h00000000;
|
|
uy_reflector <= 32'h00000000;
|
|
uz_reflector <= 32'h7FFFFFFF;
|
|
layer_reflector <= 3'b001;
|
|
dead_reflector <= 1'b1;
|
|
end else if (enable) begin
|
|
ux_reflector <= new_ux;
|
|
uy_reflector <= new_uy;
|
|
uz_reflector <= new_uz;
|
|
layer_reflector <= new_layer;
|
|
dead_reflector <= new_dead;
|
|
end
|
|
end
|
|
|
|
|
|
//-------------ASYNCHRONOUS LOGIC----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//This is where the asynchronous logic takes place. Things that
|
|
//occur here include setting up wiring to send to the multipliers,
|
|
//and square root unit. Also, products brought in from the wrapper
|
|
//are placed on the appropriate wires for placement in the pipeline.
|
|
|
|
//-------------MUXES for SYNCHRONOUS LOGIC--------
|
|
always @ (i_layer36 or downCritAngle_0 or upCritAngle_0 or
|
|
downCritAngle_1 or upCritAngle_1 or
|
|
downCritAngle_2 or upCritAngle_2 or
|
|
downCritAngle_3 or upCritAngle_3 or
|
|
downCritAngle_4 or upCritAngle_4) begin
|
|
case (i_layer36)
|
|
1:begin
|
|
downCritAngle = downCritAngle_0;
|
|
upCritAngle = upCritAngle_0;
|
|
end
|
|
2:begin
|
|
downCritAngle = downCritAngle_1;
|
|
upCritAngle = upCritAngle_1;
|
|
end
|
|
3:begin
|
|
downCritAngle = downCritAngle_2;
|
|
upCritAngle = upCritAngle_2;
|
|
end
|
|
4:begin
|
|
downCritAngle = downCritAngle_3;
|
|
upCritAngle = upCritAngle_3;
|
|
end
|
|
5:begin
|
|
downCritAngle = downCritAngle_4;
|
|
upCritAngle = upCritAngle_4;
|
|
end
|
|
//Should never occur
|
|
default:begin
|
|
downCritAngle = downCritAngle_0;
|
|
upCritAngle = upCritAngle_0;
|
|
end
|
|
endcase
|
|
end
|
|
|
|
always @ (i_uz35 or i_layer35) begin
|
|
negUz = -i_uz35;
|
|
case (i_uz35[31])
|
|
0: begin
|
|
case (i_layer35)
|
|
1: fresIndex = {3'b000, i_uz35[30:24]};
|
|
2: fresIndex = {3'b001, i_uz35[30:24]};
|
|
3: fresIndex = {3'b010, i_uz35[30:24]};
|
|
4: fresIndex = {3'b011, i_uz35[30:24]};
|
|
5: fresIndex = {3'b100, i_uz35[30:24]};
|
|
//Should never occur
|
|
default: fresIndex = {3'b000, i_uz35[30:24]};
|
|
endcase
|
|
end
|
|
1: begin
|
|
case (i_layer35)
|
|
1: fresIndex = {3'b000, negUz[30:24]};
|
|
2: fresIndex = {3'b001, negUz[30:24]};
|
|
3: fresIndex = {3'b010, negUz[30:24]};
|
|
4: fresIndex = {3'b011, negUz[30:24]};
|
|
5: fresIndex = {3'b100, negUz[30:24]};
|
|
//Should never occur
|
|
default: fresIndex = {3'b000, negUz[30:24]};
|
|
endcase
|
|
end
|
|
endcase
|
|
|
|
end
|
|
|
|
|
|
//-------------OPERAND SETUP----------------------
|
|
|
|
|
|
//NAMING CONVENTION:
|
|
//opX_Y_Z, op stands for operand, X stands for the multiplication number for
|
|
//that clock cycle, Y stands for the clock cycle, Z is either 1 or 2 for the
|
|
//first or second operand for this multiply
|
|
//
|
|
//COMMENTING CONVENTIONS:
|
|
//CC X means that the values being calcu`LATed will be ready for the Xth register
|
|
//location, where 0 is the register prior to any calcu`LATions being done, 1 is
|
|
//after the 1st clock cycle of calcu`LATion, etc.
|
|
|
|
//CC 2
|
|
assign op1_2_1 = i_uz1;
|
|
assign op1_2_2 = i_uz1;
|
|
|
|
//CC 3
|
|
//SUBTRACTION, see math results
|
|
|
|
//CC 4
|
|
always @ (i_uz3 or i_layer3 or down_niOverNt_2_1 or up_niOverNt_2_1 or
|
|
down_niOverNt_2_2 or up_niOverNt_2_2 or
|
|
down_niOverNt_2_3 or up_niOverNt_2_3 or
|
|
down_niOverNt_2_4 or up_niOverNt_2_4 or
|
|
down_niOverNt_2_5 or up_niOverNt_2_5) begin
|
|
case (i_uz3[31])
|
|
//uz >= 0
|
|
0:begin
|
|
case (i_layer3)
|
|
1: op1_4_1 = {down_niOverNt_2_1[63], down_niOverNt_2_1[61:31]};
|
|
2: op1_4_1 = {down_niOverNt_2_2[63], down_niOverNt_2_2[61:31]};
|
|
3: op1_4_1 = {down_niOverNt_2_3[63], down_niOverNt_2_3[61:31]};
|
|
4: op1_4_1 = {down_niOverNt_2_4[63], down_niOverNt_2_4[61:31]};
|
|
5: op1_4_1 = {down_niOverNt_2_5[63], down_niOverNt_2_5[61:31]};
|
|
default: op1_4_1 = {down_niOverNt_2_1[63], down_niOverNt_2_1[61:31]};
|
|
endcase
|
|
end
|
|
//uz < 0
|
|
1:begin
|
|
case (i_layer3)
|
|
1: op1_4_1 = {up_niOverNt_2_1[63], up_niOverNt_2_1[61:31]};
|
|
2: op1_4_1 = {up_niOverNt_2_2[63], up_niOverNt_2_2[61:31]};
|
|
3: op1_4_1 = {up_niOverNt_2_3[63], up_niOverNt_2_3[61:31]};
|
|
4: op1_4_1 = {up_niOverNt_2_4[63], up_niOverNt_2_4[61:31]};
|
|
5: op1_4_1 = {up_niOverNt_2_5[63], up_niOverNt_2_5[61:31]};
|
|
default: op1_4_1 = {up_niOverNt_2_1[63], up_niOverNt_2_1[61:31]};
|
|
endcase
|
|
end
|
|
endcase
|
|
end
|
|
|
|
assign op1_4_2 = {oneMinusUz_2__3[63], oneMinusUz_2__3[61:31]};
|
|
|
|
//CC 5
|
|
//SUBTRACTION, see math results
|
|
|
|
//CC `SQRT+5 -- Started in CC 6
|
|
assign sqrtOperand1_6 = uz2_2__5;
|
|
|
|
//CC `SQRT+`DIV+6 -- Line up with Scatterer.
|
|
assign op1_36_1 = i_ux35;
|
|
|
|
always @ (i_uz35 or i_layer35 or down_niOverNt_1 or up_niOverNt_1 or
|
|
down_niOverNt_2 or up_niOverNt_2 or
|
|
down_niOverNt_3 or up_niOverNt_3 or
|
|
down_niOverNt_4 or up_niOverNt_4 or
|
|
down_niOverNt_5 or up_niOverNt_5) begin
|
|
case (i_uz35[31])
|
|
0: begin//uz >= 0
|
|
case (i_layer35)
|
|
1:begin
|
|
op1_36_2 = down_niOverNt_1;
|
|
op2_36_2 = down_niOverNt_1;
|
|
end
|
|
2:begin
|
|
op1_36_2 = down_niOverNt_2;
|
|
op2_36_2 = down_niOverNt_2;
|
|
end
|
|
3:begin
|
|
op1_36_2 = down_niOverNt_3;
|
|
op2_36_2 = down_niOverNt_3;
|
|
end
|
|
4:begin
|
|
op1_36_2 = down_niOverNt_4;
|
|
op2_36_2 = down_niOverNt_4;
|
|
end
|
|
5:begin
|
|
op1_36_2 = down_niOverNt_5;
|
|
op2_36_2 = down_niOverNt_5;
|
|
end
|
|
default:begin
|
|
op1_36_2 = down_niOverNt_1;
|
|
op2_36_2 = down_niOverNt_1;
|
|
end
|
|
endcase
|
|
end
|
|
1: begin//uz < 0
|
|
case (i_layer35)
|
|
1:begin
|
|
op1_36_2 = up_niOverNt_1;
|
|
op2_36_2 = up_niOverNt_1;
|
|
end
|
|
2:begin
|
|
op1_36_2 = up_niOverNt_2;
|
|
op2_36_2 = up_niOverNt_2;
|
|
end
|
|
3:begin
|
|
op1_36_2 = up_niOverNt_3;
|
|
op2_36_2 = up_niOverNt_3;
|
|
end
|
|
4:begin
|
|
op1_36_2 = up_niOverNt_4;
|
|
op2_36_2 = up_niOverNt_4;
|
|
end
|
|
5:begin
|
|
op1_36_2 = up_niOverNt_5;
|
|
op2_36_2 = up_niOverNt_5;
|
|
end
|
|
default:begin
|
|
op1_36_2 = up_niOverNt_1;
|
|
op2_36_2 = up_niOverNt_1;
|
|
end
|
|
endcase
|
|
end
|
|
endcase
|
|
end
|
|
|
|
assign op2_36_1 = i_uy35;
|
|
|
|
|
|
|
|
|
|
|
|
//-------------MATH RESULTS----------------------
|
|
|
|
|
|
//NAMING CONVENTION:
|
|
//new_VAR means that the variable named VAR will be stored into the register
|
|
//pipeline at the clock cycle indicated by the comments above it.
|
|
//
|
|
//prod stands for product, quot stands for quotient, `SQRT stands for square root
|
|
//prodX_Y means the Xth product which started calcu`LATion at the Yth clock cycle
|
|
//Similarly for quot and `SQRTResult.
|
|
//
|
|
//
|
|
//COMMENTING CONVENTIONS:
|
|
//CC X means that the values being calcu`LATed will be ready for the Xth register
|
|
//location, where 0 is the register prior to any calcu`LATions being done, 1 is
|
|
//after the 1st clock cycle of calcu`LATion, etc.
|
|
|
|
|
|
//CC 2
|
|
assign new_uz_2 = prod1_2;
|
|
|
|
//CC 3
|
|
sub_64b oneMinusUz2_sub(
|
|
.dataa(`INTMAX_2_ref),
|
|
.datab(uz_2__2),
|
|
.result(new_oneMinusUz_2)
|
|
);
|
|
|
|
//CC 4
|
|
//Used to determine whether or not the multiply operation overflowed.
|
|
//or U1(overflow1_4, prod1_4[62], prod1_4[61], prod1_4[60], prod1_4[59], prod1_4[58]);
|
|
assign overflow1_4 = prod1_4[62]|prod1_4[61]|prod1_4[60]|prod1_4[59]|prod1_4[58];
|
|
|
|
//Cannot take `SQRT of negative number, that is why prod1_4[58] must be 0.
|
|
|
|
//sign //data //padding
|
|
assign new_sa2_2 = (overflow1_4 == 1)? `INTMAX_2_ref : {prod1_4[63], prod1_4[58:0], 4'h0};
|
|
|
|
//5th CC
|
|
sub_64b uz2_2_sub(
|
|
.dataa(`INTMAX_2_ref),
|
|
.datab(sa2_2__4),
|
|
.result(new_uz2_2)
|
|
);
|
|
|
|
//CC `SQRT+5
|
|
assign new_uz2 = sqrtResult1_6;
|
|
|
|
//CC `SQRT+`DIV+6 -- Line up with Scatterer.
|
|
|
|
|
|
//Used to determine whether or not the multiply operation overflowed.
|
|
//or U2(toAnd1_36_1, prod1_36[62], prod1_36[61], prod1_36[60]);
|
|
assign toAnd1_36_1 = prod1_36[62]|prod1_36[61]|prod1_36[60];
|
|
//Used to determine whether or not the multiply operation overflowed in the negative direction.
|
|
//or U3(toAnd1_36_2, ~prod1_36[62], ~prod1_36[61], ~prod1_36[60]);
|
|
assign toAnd1_36_2 = ~prod1_36[62]|~prod1_36[61]|~prod1_36[60];
|
|
|
|
//and U4(overflow1_36, ~prod1_36[63], toAnd1_36_1);
|
|
assign overflow1_36 = ~prod1_36[63] & toAnd1_36_1;
|
|
//and U5(negOverflow1_36, prod1_36[63], toAnd1_36_2);
|
|
assign negOverflow1_36 = prod1_36[63] & toAnd1_36_2;
|
|
|
|
|
|
//Used to determine whether or not the multiply operation overflowed.
|
|
//or U6(toAnd2_36_1, prod2_36[62], prod2_36[61], prod2_36[60]);
|
|
assign toAnd2_36_1 = prod2_36[62]|prod2_36[61]|prod2_36[60];
|
|
//Used to determine whether or not the multiply operation overflowed in the negative direction.
|
|
//or U7(toAnd2_36_2, ~prod2_36[62], ~prod2_36[61], ~prod2_36[60]);
|
|
assign toAnd2_36_2 = ~prod2_36[62]|~prod2_36[61]|~prod2_36[60];
|
|
|
|
|
|
//and U8(overflow2_36, ~prod2_36[63], toAnd2_36_1);
|
|
assign overflow2_36 = ~prod2_36[63] & toAnd2_36_1;
|
|
//and U9(negOverflow2_36, prod2_36[63], toAnd2_36_2);
|
|
assign negOverflow2_36 = prod2_36[63] & toAnd2_36_2;
|
|
|
|
always @ (overflow1_36 or negOverflow1_36 or prod1_36 or
|
|
overflow2_36 or negOverflow2_36 or prod2_36) begin
|
|
case ({overflow1_36, negOverflow1_36})
|
|
0: new_ux_transmitted = {prod1_36[63:63], prod1_36[59:29]};
|
|
1: new_ux_transmitted = `INTMIN;
|
|
2: new_ux_transmitted = `INTMAX;
|
|
//Should never occur
|
|
3: new_ux_transmitted = {prod1_36[63:63], prod1_36[59:29]};
|
|
endcase
|
|
|
|
case ({overflow2_36, negOverflow2_36})
|
|
|
|
0: new_uy_transmitted = {prod2_36[63:63], prod2_36[59:29]};
|
|
1: new_uy_transmitted = `INTMIN;
|
|
2: new_uy_transmitted = `INTMAX;
|
|
//Should never occur
|
|
3: new_uy_transmitted = {prod2_36[63:63], prod2_36[59:29]};
|
|
endcase
|
|
end
|
|
|
|
|
|
//-------------FINAL CALCU`LATED VALUES----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
always @ (i_uz36 or downCritAngle or upCritAngle or down_rFresnel or i_ux36 or
|
|
i_uy36 or i_layer36 or i_dead36 or rnd or up_rFresnel or ux_transmitted__37 or
|
|
uy_transmitted__37 or uz2__37) begin
|
|
//REFLECTED -- Due to total internal reflection while moving down
|
|
if (~i_uz36[31] && i_uz36 <= downCritAngle) begin
|
|
new_ux = i_ux36;
|
|
new_uy = i_uy36;
|
|
new_uz = -i_uz36;
|
|
new_layer = i_layer36;
|
|
new_dead = i_dead36;
|
|
//REFLECTED -- Due to total internal reflection while moving up
|
|
end else if (i_uz36[31] && -i_uz36 <= upCritAngle) begin
|
|
new_ux = i_ux36;
|
|
new_uy = i_uy36;
|
|
new_uz = -i_uz36;
|
|
new_layer = i_layer36;
|
|
new_dead = i_dead36;
|
|
//REFLECTED -- Due to random number being too small while moving down
|
|
end else if (~i_uz36[31] && rnd <= down_rFresnel) begin
|
|
new_ux = i_ux36;
|
|
new_uy = i_uy36;
|
|
new_uz = -i_uz36;
|
|
new_layer = i_layer36;
|
|
new_dead = i_dead36;
|
|
//REFLECTED -- Due to random number being too small while moving up
|
|
end else if (i_uz36[31] && rnd <= up_rFresnel) begin
|
|
new_ux = i_ux36;
|
|
new_uy = i_uy36;
|
|
new_uz = -i_uz36;
|
|
new_layer = i_layer36;
|
|
new_dead = i_dead36;
|
|
//TRANSMITTED
|
|
end else begin
|
|
new_ux = ux_transmitted__37;
|
|
new_uy = uy_transmitted__37;
|
|
case (i_uz36[31])
|
|
0:begin//uz >= 0
|
|
if (i_layer36 == 5) begin
|
|
new_layer = 3'h5;
|
|
new_dead = 1'b1;
|
|
end else begin
|
|
new_layer = i_layer36+3'h1;
|
|
new_dead = i_dead36;
|
|
end
|
|
new_uz = uz2__37;
|
|
end
|
|
1:begin//uz < 0
|
|
if (i_layer36 == 1) begin
|
|
new_layer = 3'h1;
|
|
new_dead = 1'b1;
|
|
end else begin
|
|
new_layer = i_layer36-3'h1;
|
|
new_dead = i_dead36;
|
|
end
|
|
new_uz = -uz2__37;
|
|
end
|
|
endcase
|
|
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
module Memory_Wrapper (
|
|
//Inputs
|
|
clock,
|
|
// reset, //This is unused in the module. ODIN II complains.
|
|
pindex,
|
|
//Outputs
|
|
sinp,
|
|
cosp
|
|
);
|
|
|
|
|
|
input clock;
|
|
//input reset;
|
|
input [9:0] pindex;
|
|
|
|
|
|
output [31:0] sinp;
|
|
output [31:0] cosp;
|
|
|
|
//sinp_ROM sinp_MEM (.address(pindex), .clock(clock), .q(sinp));
|
|
//cosp_ROM cosp_MEM (.address(pindex), .clock(clock), .q(cosp));
|
|
|
|
//Instantiate a single port ram for odin
|
|
wire [31:0]blank;
|
|
assign blank = 32'b000000000000000000000000000000;
|
|
single_port_ram_1024x32 sinp_replace(.clk (clock), .addr (pindex), .data (blank), .we (1'b0), .out (sinp));
|
|
single_port_ram_1024x32 cosp_replace(.clk (clock), .addr (pindex), .data (blank), .we (1'b0), .out (cosp));
|
|
|
|
|
|
endmodule
|
|
|
|
|
|
module InternalsBlock(
|
|
//Inputs
|
|
clock,
|
|
reset,
|
|
enable,
|
|
|
|
i_sint,
|
|
i_cost,
|
|
i_sinp,
|
|
i_cosp,
|
|
i_sintCosp,
|
|
i_sintSinp,
|
|
i_uz2,
|
|
i_uxUz,
|
|
i_uyUz,
|
|
i_uySintSinp,
|
|
i_oneMinusUz2,
|
|
i_uyUzSintCosp,
|
|
i_uxUzSintCosp,
|
|
i_uxSintSinp,
|
|
i_sqrtOneMinusUz2,
|
|
i_sintCospSqrtOneMinusUz2,
|
|
i_uxCost,
|
|
i_uzCost,
|
|
i_sqrtOneMinusUz2_inv,
|
|
i_uxNumerator,
|
|
i_uyNumerator,
|
|
i_uyCost,
|
|
i_uxQuotient,
|
|
i_uyQuotient,
|
|
//Outputs
|
|
o_sint,
|
|
o_cost,
|
|
o_sinp,
|
|
o_cosp,
|
|
o_sintCosp,
|
|
o_sintSinp,
|
|
o_uz2,
|
|
o_uxUz,
|
|
o_uyUz,
|
|
o_uySintSinp,
|
|
o_oneMinusUz2,
|
|
o_uyUzSintCosp,
|
|
o_uxUzSintCosp,
|
|
o_uxSintSinp,
|
|
o_sqrtOneMinusUz2,
|
|
o_sintCospSqrtOneMinusUz2,
|
|
o_uxCost,
|
|
o_uzCost,
|
|
o_sqrtOneMinusUz2_inv,
|
|
o_uxNumerator,
|
|
o_uyNumerator,
|
|
o_uyCost,
|
|
o_uxQuotient,
|
|
o_uyQuotient
|
|
);
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
|
|
input [31:0] i_sint;
|
|
input [31:0] i_cost;
|
|
input [31:0] i_sinp;
|
|
input [31:0] i_cosp;
|
|
input [31:0] i_sintCosp;
|
|
input [31:0] i_sintSinp;
|
|
input [63:0] i_uz2;
|
|
input [31:0] i_uxUz;
|
|
input [31:0] i_uyUz;
|
|
input [31:0] i_uySintSinp;
|
|
input [63:0] i_oneMinusUz2;
|
|
input [31:0] i_uyUzSintCosp;
|
|
input [31:0] i_uxUzSintCosp;
|
|
input [31:0] i_uxSintSinp;
|
|
input [31:0] i_sqrtOneMinusUz2;
|
|
input [31:0] i_sintCospSqrtOneMinusUz2;
|
|
input [31:0] i_uxCost;
|
|
input [31:0] i_uzCost;
|
|
input [31:0] i_sqrtOneMinusUz2_inv;
|
|
input [31:0] i_uxNumerator;
|
|
input [31:0] i_uyNumerator;
|
|
input [31:0] i_uyCost;
|
|
input [31:0] i_uxQuotient;
|
|
input [31:0] i_uyQuotient;
|
|
|
|
|
|
output [31:0] o_sint;
|
|
output [31:0] o_cost;
|
|
output [31:0] o_sinp;
|
|
output [31:0] o_cosp;
|
|
output [31:0] o_sintCosp;
|
|
output [31:0] o_sintSinp;
|
|
output [63:0] o_uz2;
|
|
output [31:0] o_uxUz;
|
|
output [31:0] o_uyUz;
|
|
output [31:0] o_uySintSinp;
|
|
output [63:0] o_oneMinusUz2;
|
|
output [31:0] o_uyUzSintCosp;
|
|
output [31:0] o_uxUzSintCosp;
|
|
output [31:0] o_uxSintSinp;
|
|
output [31:0] o_sqrtOneMinusUz2;
|
|
output [31:0] o_sintCospSqrtOneMinusUz2;
|
|
output [31:0] o_uxCost;
|
|
output [31:0] o_uzCost;
|
|
output [31:0] o_sqrtOneMinusUz2_inv;
|
|
output [31:0] o_uxNumerator;
|
|
output [31:0] o_uyNumerator;
|
|
output [31:0] o_uyCost;
|
|
output [31:0] o_uxQuotient;
|
|
output [31:0] o_uyQuotient;
|
|
|
|
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
|
|
wire [31:0] i_sint;
|
|
wire [31:0] i_cost;
|
|
wire [31:0] i_sinp;
|
|
wire [31:0] i_cosp;
|
|
wire [31:0] i_sintCosp;
|
|
wire [31:0] i_sintSinp;
|
|
wire [63:0] i_uz2;
|
|
wire [31:0] i_uxUz;
|
|
wire [31:0] i_uyUz;
|
|
wire [31:0] i_uySintSinp;
|
|
wire [63:0] i_oneMinusUz2;
|
|
wire [31:0] i_uyUzSintCosp;
|
|
wire [31:0] i_uxUzSintCosp;
|
|
wire [31:0] i_uxSintSinp;
|
|
wire [31:0] i_sqrtOneMinusUz2;
|
|
wire [31:0] i_sintCospSqrtOneMinusUz2;
|
|
wire [31:0] i_uxCost;
|
|
wire [31:0] i_uzCost;
|
|
wire [31:0] i_sqrtOneMinusUz2_inv;
|
|
wire [31:0] i_uxNumerator;
|
|
wire [31:0] i_uyNumerator;
|
|
wire [31:0] i_uyCost;
|
|
wire [31:0] i_uxQuotient;
|
|
wire [31:0] i_uyQuotient;
|
|
|
|
|
|
reg [31:0] o_sint;
|
|
reg [31:0] o_cost;
|
|
reg [31:0] o_sinp;
|
|
reg [31:0] o_cosp;
|
|
reg [31:0] o_sintCosp;
|
|
reg [31:0] o_sintSinp;
|
|
reg [63:0] o_uz2;
|
|
reg [31:0] o_uxUz;
|
|
reg [31:0] o_uyUz;
|
|
reg [31:0] o_uySintSinp;
|
|
reg [63:0] o_oneMinusUz2;
|
|
reg [31:0] o_uyUzSintCosp;
|
|
reg [31:0] o_uxUzSintCosp;
|
|
reg [31:0] o_uxSintSinp;
|
|
reg [31:0] o_sqrtOneMinusUz2;
|
|
reg [31:0] o_sintCospSqrtOneMinusUz2;
|
|
reg [31:0] o_uxCost;
|
|
reg [31:0] o_uzCost;
|
|
reg [31:0] o_sqrtOneMinusUz2_inv;
|
|
reg [31:0] o_uxNumerator;
|
|
reg [31:0] o_uyNumerator;
|
|
reg [31:0] o_uyCost;
|
|
reg [31:0] o_uxQuotient;
|
|
reg [31:0] o_uyQuotient;
|
|
|
|
|
|
|
|
|
|
always @ (posedge clock)
|
|
if(reset) begin
|
|
o_sint <= 32'h00000000;
|
|
o_cost <= 32'h00000000;
|
|
o_sinp <= 32'h00000000;
|
|
o_cosp <= 32'h00000000;
|
|
o_sintCosp <= 32'h00000000;
|
|
o_sintSinp <= 32'h00000000;
|
|
o_uz2 <= 64'h0000000000000000;
|
|
o_uxUz <= 32'h00000000;
|
|
o_uyUz <= 32'h00000000;
|
|
o_uySintSinp <= 32'h00000000;
|
|
o_oneMinusUz2 <= 64'h0000000000000000;
|
|
o_uyUzSintCosp <= 32'h00000000;
|
|
o_uxUzSintCosp <= 32'h00000000;
|
|
o_uxSintSinp <= 32'h00000000;
|
|
o_sqrtOneMinusUz2 <= 32'h00000000;
|
|
o_sintCospSqrtOneMinusUz2 <= 32'h00000000;
|
|
o_uxCost <= 32'h00000000;
|
|
o_uzCost <= 32'h00000000;
|
|
o_sqrtOneMinusUz2_inv <= 32'h00000000;
|
|
o_uxNumerator <= 32'h00000000;
|
|
o_uyNumerator <= 32'h00000000;
|
|
o_uyCost <= 32'h00000000;
|
|
o_uxQuotient <= 32'h00000000;
|
|
o_uyQuotient <= 32'h00000000;
|
|
end else if(enable) begin
|
|
o_sint <= i_sint;
|
|
o_cost <= i_cost;
|
|
o_sinp <= i_sinp;
|
|
o_cosp <= i_cosp;
|
|
o_sintCosp <= i_sintCosp;
|
|
o_sintSinp <= i_sintSinp;
|
|
o_uz2 <= i_uz2;
|
|
o_uxUz <= i_uxUz;
|
|
o_uyUz <= i_uyUz;
|
|
o_uySintSinp <= i_uySintSinp;
|
|
o_oneMinusUz2 <= i_oneMinusUz2;
|
|
o_uyUzSintCosp <= i_uyUzSintCosp;
|
|
o_uxUzSintCosp <= i_uxUzSintCosp;
|
|
o_uxSintSinp <= i_uxSintSinp;
|
|
o_sqrtOneMinusUz2 <= i_sqrtOneMinusUz2;
|
|
o_sintCospSqrtOneMinusUz2 <= i_sintCospSqrtOneMinusUz2;
|
|
o_uxCost <= i_uxCost;
|
|
o_uzCost <= i_uzCost;
|
|
o_sqrtOneMinusUz2_inv <= i_sqrtOneMinusUz2_inv;
|
|
o_uxNumerator <= i_uxNumerator;
|
|
o_uyNumerator <= i_uyNumerator;
|
|
o_uyCost <= i_uyCost;
|
|
o_uxQuotient <= i_uxQuotient;
|
|
o_uyQuotient <= i_uyQuotient;
|
|
end
|
|
endmodule
|
|
|
|
|
|
module Scatterer (
|
|
//INPUTS
|
|
clock,
|
|
reset,
|
|
enable,
|
|
//Values from Photon Pipeline
|
|
i_uz1,
|
|
i_ux3,
|
|
i_uz3,
|
|
i_uy32,
|
|
i_uz32,
|
|
i_ux33,
|
|
i_uy33,
|
|
i_ux35,
|
|
i_uy35,
|
|
i_uz35,
|
|
i_uz36,
|
|
|
|
//Mathematics Results
|
|
prod1_2,
|
|
prod1_4,
|
|
sqrtResult1_6,
|
|
prod1_33,
|
|
prod2_33,
|
|
prod3_33,
|
|
prod1_34,
|
|
prod2_34,
|
|
prod3_34,
|
|
prod4_34,
|
|
quot1_16,
|
|
prod1_36,
|
|
prod2_36,
|
|
prod3_36,
|
|
prod4_36,
|
|
prod5_36,
|
|
prod6_36,
|
|
|
|
//Trig from Memory
|
|
sint_Mem,
|
|
cost_Mem,
|
|
sinp_Mem,
|
|
cosp_Mem,
|
|
|
|
//OUTPUTS
|
|
op1_2_1,
|
|
op1_2_2,
|
|
op1_4_1,
|
|
op1_4_2,
|
|
sqrtOperand1_6,
|
|
divNumerator1_16,
|
|
divDenominator1_16,
|
|
op1_33_1,
|
|
op1_33_2,
|
|
op2_33_1,
|
|
op2_33_2,
|
|
op3_33_1,
|
|
op3_33_2,
|
|
op1_34_1,
|
|
op1_34_2,
|
|
op2_34_1,
|
|
op2_34_2,
|
|
op3_34_1,
|
|
op3_34_2,
|
|
op4_34_1,
|
|
op4_34_2,
|
|
op1_36_1,
|
|
op1_36_2,
|
|
op2_36_1,
|
|
op2_36_2,
|
|
op3_36_1,
|
|
op3_36_2,
|
|
op4_36_1,
|
|
op4_36_2,
|
|
op5_36_1,
|
|
op5_36_2,
|
|
op6_36_1,
|
|
op6_36_2,
|
|
|
|
//Final calculated values
|
|
ux_scatterer,
|
|
uy_scatterer,
|
|
uz_scatterer
|
|
|
|
|
|
);
|
|
|
|
//-------------------PARAMETER DEFINITION----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign values to parameters used later in the program.
|
|
|
|
//parameter DIV = 20;
|
|
//parameter SQRT = 10;
|
|
//parameter LAT = DIV + SQRT + 7;
|
|
//parameter `INTMAX_2 = 64'h3FFFFFFF00000001;
|
|
//parameter `INTMAX = 2147483647;
|
|
//parameter `INTMIN = -2147483647;
|
|
//parameter `INTMAXMinus3 = 2147483644;
|
|
//parameter neg`INTMAXPlus3 = -2147483644;
|
|
|
|
|
|
|
|
//-----------------------------PIN DECLARATION----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign appropriate types to pins (input or output).
|
|
|
|
input clock;
|
|
input reset;
|
|
input enable;
|
|
//Values from Photon Pipeline
|
|
input [31:0] i_uz1;
|
|
input [31:0] i_ux3;
|
|
input [31:0] i_uz3;
|
|
input [31:0] i_uy32;
|
|
input [31:0] i_uz32;
|
|
input [31:0] i_ux33;
|
|
input [31:0] i_uy33;
|
|
input [31:0] i_ux35;
|
|
input [31:0] i_uy35;
|
|
input [31:0] i_uz35;
|
|
input [31:0] i_uz36;
|
|
|
|
//Multiplication Results
|
|
input [63:0] prod1_2;
|
|
input [31:0] prod1_4;
|
|
input [31:0] sqrtResult1_6;
|
|
input [31:0] prod1_33;
|
|
input [31:0] prod2_33;
|
|
input [31:0] prod3_33;
|
|
input [31:0] prod1_34;
|
|
input [31:0] prod2_34;
|
|
input [31:0] prod3_34;
|
|
input [31:0] prod4_34;
|
|
input [63:0] quot1_16;
|
|
//Need all 64-bits for these two to detect overflows
|
|
input [63:0] prod1_36;
|
|
input [63:0] prod2_36;
|
|
input [31:0] prod3_36;
|
|
input [31:0] prod4_36;
|
|
input [31:0] prod5_36;
|
|
input [31:0] prod6_36;
|
|
|
|
|
|
//Trig Values from Memory
|
|
input [31:0] sint_Mem;
|
|
input [31:0] cost_Mem;
|
|
input [31:0] sinp_Mem;
|
|
input [31:0] cosp_Mem;
|
|
|
|
output [31:0] op1_2_1;
|
|
output [31:0] op1_2_2;
|
|
output [31:0] op1_4_1;
|
|
output [31:0] op1_4_2;
|
|
output [63:0] sqrtOperand1_6;
|
|
output [63:0] divNumerator1_16;
|
|
output [31:0] divDenominator1_16;
|
|
output [31:0] op1_33_1;
|
|
output [31:0] op1_33_2;
|
|
output [31:0] op2_33_1;
|
|
output [31:0] op2_33_2;
|
|
output [31:0] op3_33_1;
|
|
output [31:0] op3_33_2;
|
|
output [31:0] op1_34_1;
|
|
output [31:0] op1_34_2;
|
|
output [31:0] op2_34_1;
|
|
output [31:0] op2_34_2;
|
|
output [31:0] op3_34_1;
|
|
output [31:0] op3_34_2;
|
|
output [31:0] op4_34_1;
|
|
output [31:0] op4_34_2;
|
|
output [31:0] op1_36_1;
|
|
output [31:0] op1_36_2;
|
|
output [31:0] op2_36_1;
|
|
output [31:0] op2_36_2;
|
|
output [31:0] op3_36_1;
|
|
output [31:0] op3_36_2;
|
|
output [31:0] op4_36_1;
|
|
output [31:0] op4_36_2;
|
|
output [31:0] op5_36_1;
|
|
output [31:0] op5_36_2;
|
|
output [31:0] op6_36_1;
|
|
output [31:0] op6_36_2;
|
|
|
|
//Final Calculated Results
|
|
output [31:0] ux_scatterer;
|
|
output [31:0] uy_scatterer;
|
|
output [31:0] uz_scatterer;
|
|
|
|
|
|
//-----------------------------PIN TYPES-----------------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//Assign pins to be wires or regs.
|
|
|
|
|
|
wire clock;
|
|
wire reset;
|
|
wire enable;
|
|
//Values from Photon Pipeline
|
|
wire [31:0] i_uz1;
|
|
wire [31:0] i_ux3;
|
|
wire [31:0] i_uz3;
|
|
wire [31:0] i_uy32;
|
|
wire [31:0] i_uz32;
|
|
wire [31:0] i_ux33;
|
|
wire [31:0] i_uy33;
|
|
wire [31:0] i_ux35;
|
|
wire [31:0] i_uy35;
|
|
wire [31:0] i_uz35;
|
|
wire [31:0] i_uz36;
|
|
|
|
//Multiplication Results
|
|
wire [63:0] prod1_2;
|
|
wire [31:0] prod1_4;
|
|
wire [31:0] sqrtResult1_6;
|
|
wire [31:0] prod1_33;
|
|
wire [31:0] prod2_33;
|
|
wire [31:0] prod3_33;
|
|
wire [31:0] prod1_34;
|
|
wire [31:0] prod2_34;
|
|
wire [31:0] prod3_34;
|
|
wire [31:0] prod4_34;
|
|
wire [63:0] quot1_16;
|
|
wire [63:0] prod1_36;
|
|
wire [63:0] prod2_36;
|
|
wire [31:0] prod3_36;
|
|
wire [31:0] prod4_36;
|
|
wire [31:0] prod5_36;
|
|
wire [31:0] prod6_36;
|
|
|
|
|
|
//Trig Values from Memory
|
|
wire [31:0] sint_Mem;
|
|
wire [31:0] cost_Mem;
|
|
wire [31:0] sinp_Mem;
|
|
wire [31:0] cosp_Mem;
|
|
|
|
//Operands for shared resources
|
|
wire [31:0] op1_2_1;
|
|
wire [31:0] op1_2_2;
|
|
wire [31:0] op1_4_1;
|
|
wire [31:0] op1_4_2;
|
|
wire [63:0] sqrtOperand1_6;
|
|
wire [63:0] divNumerator1_16;
|
|
wire [31:0] divDenominator1_16;
|
|
wire [31:0] op1_33_1;
|
|
wire [31:0] op1_33_2;
|
|
wire [31:0] op2_33_1;
|
|
wire [31:0] op2_33_2;
|
|
wire [31:0] op3_33_1;
|
|
wire [31:0] op3_33_2;
|
|
wire [31:0] op1_34_1;
|
|
wire [31:0] op1_34_2;
|
|
wire [31:0] op2_34_1;
|
|
wire [31:0] op2_34_2;
|
|
wire [31:0] op3_34_1;
|
|
wire [31:0] op3_34_2;
|
|
wire [31:0] op4_34_1;
|
|
wire [31:0] op4_34_2;
|
|
wire [31:0] op1_36_1;
|
|
wire [31:0] op1_36_2;
|
|
wire [31:0] op2_36_1;
|
|
wire [31:0] op2_36_2;
|
|
wire [31:0] op3_36_1;
|
|
wire [31:0] op3_36_2;
|
|
wire [31:0] op4_36_1;
|
|
wire [31:0] op4_36_2;
|
|
wire [31:0] op5_36_1;
|
|
wire [31:0] op5_36_2;
|
|
wire [31:0] op6_36_1;
|
|
wire [31:0] op6_36_2;
|
|
|
|
//Final outputs
|
|
reg [31:0] ux_scatterer;
|
|
reg [31:0] uy_scatterer;
|
|
reg [31:0] uz_scatterer;
|
|
|
|
|
|
//Need this to deal with 'unused' inputs for ODIN II
|
|
wire [63:0]bigOr;
|
|
assign bigOr = quot1_16|prod1_36|prod2_36|({32'hFFFFFFFF,32'hFFFFFFFF});
|
|
wire reset_new;
|
|
assign reset_new = reset & bigOr[63] & bigOr[62] & bigOr[61] & bigOr[60] & bigOr[59] & bigOr[58] & bigOr[57] & bigOr[56] & bigOr[55] & bigOr[54] & bigOr[53] & bigOr[52] & bigOr[51] & bigOr[50] & bigOr[49] & bigOr[48] & bigOr[47] & bigOr[46] & bigOr[45] & bigOr[44] & bigOr[43] & bigOr[42] & bigOr[41] & bigOr[40] & bigOr[39] & bigOr[38] & bigOr[37] & bigOr[36] & bigOr[35] & bigOr[34] & bigOr[33] & bigOr[32] & bigOr[31] & bigOr[30] & bigOr[29] & bigOr[28] & bigOr[27] & bigOr[26] & bigOr[25] & bigOr[24] & bigOr[23] & bigOr[22] & bigOr[21] & bigOr[20] & bigOr[19] & bigOr[18] & bigOr[17] & bigOr[16] & bigOr[15] & bigOr[14] & bigOr[13] & bigOr[12] & bigOr[11] & bigOr[10] & bigOr[9] & bigOr[8] & bigOr[7] & bigOr[6] & bigOr[5] & bigOr[4] & bigOr[3] & bigOr[2] & bigOr[1] & bigOr[0];
|
|
|
|
|
|
//-----------------------------END Pin Types-------------------------
|
|
|
|
|
|
|
|
//Wires to Connect to Internal Registers
|
|
//wire [31:0] sint[`LAT:0];
|
|
//wire [31:0] cost[`LAT:0];
|
|
//wire [31:0] sinp[`LAT:0];
|
|
//wire [31:0] cosp[`LAT:0];
|
|
//wire [31:0] sintCosp[`LAT:0];
|
|
//wire [31:0] sintSinp[`LAT:0];
|
|
//wire [63:0] uz2[`LAT:0];
|
|
//wire [31:0] uxUz[`LAT:0];
|
|
//wire [31:0] uyUz[`LAT:0];
|
|
//wire [31:0] uySintSinp[`LAT:0];
|
|
//wire [63:0] oneMinusUz2[`LAT:0];
|
|
//wire [31:0] uyUzSintCosp[`LAT:0];
|
|
//wire [31:0] uxUzSintCosp[`LAT:0];
|
|
//wire [31:0] uxSintSinp[`LAT:0];
|
|
//wire [31:0] sqrtOneMinusUz2[`LAT:0];
|
|
//wire [31:0] sintCospSqrtOneMinusUz2[`LAT:0];
|
|
//wire [31:0] uxCost[`LAT:0];
|
|
//wire [31:0] uzCost[`LAT:0];
|
|
//wire [31:0] sqrtOneMinusUz2_inv[`LAT:0];
|
|
//wire [31:0] uxNumerator[`LAT:0];
|
|
//wire [31:0] uyNumerator[`LAT:0];
|
|
//wire [31:0] uyCost[`LAT:0];
|
|
//wire [31:0] uxQuotient[`LAT:0];
|
|
//wire [31:0] uyQuotient[`LAT:0];
|
|
//wire [31:0] sint[37:0];
|
|
wire [32-1:0] sint__0;
|
|
wire [32-1:0] sint__1;
|
|
wire [32-1:0] sint__2;
|
|
wire [32-1:0] sint__3;
|
|
wire [32-1:0] sint__4;
|
|
wire [32-1:0] sint__5;
|
|
wire [32-1:0] sint__6;
|
|
wire [32-1:0] sint__7;
|
|
wire [32-1:0] sint__8;
|
|
wire [32-1:0] sint__9;
|
|
wire [32-1:0] sint__10;
|
|
wire [32-1:0] sint__11;
|
|
wire [32-1:0] sint__12;
|
|
wire [32-1:0] sint__13;
|
|
wire [32-1:0] sint__14;
|
|
wire [32-1:0] sint__15;
|
|
wire [32-1:0] sint__16;
|
|
wire [32-1:0] sint__17;
|
|
wire [32-1:0] sint__18;
|
|
wire [32-1:0] sint__19;
|
|
wire [32-1:0] sint__20;
|
|
wire [32-1:0] sint__21;
|
|
wire [32-1:0] sint__22;
|
|
wire [32-1:0] sint__23;
|
|
wire [32-1:0] sint__24;
|
|
wire [32-1:0] sint__25;
|
|
wire [32-1:0] sint__26;
|
|
wire [32-1:0] sint__27;
|
|
wire [32-1:0] sint__28;
|
|
wire [32-1:0] sint__29;
|
|
wire [32-1:0] sint__30;
|
|
wire [32-1:0] sint__31;
|
|
wire [32-1:0] sint__32;
|
|
wire [32-1:0] sint__33;
|
|
wire [32-1:0] sint__34;
|
|
wire [32-1:0] sint__35;
|
|
wire [32-1:0] sint__36;
|
|
wire [32-1:0] sint__37;
|
|
|
|
|
|
|
|
|
|
|
|
//wire [31:0] cost[37:0];
|
|
|
|
|
|
wire [32-1:0] cost__0;
|
|
wire [32-1:0] cost__1;
|
|
wire [32-1:0] cost__2;
|
|
wire [32-1:0] cost__3;
|
|
wire [32-1:0] cost__4;
|
|
wire [32-1:0] cost__5;
|
|
wire [32-1:0] cost__6;
|
|
wire [32-1:0] cost__7;
|
|
wire [32-1:0] cost__8;
|
|
wire [32-1:0] cost__9;
|
|
wire [32-1:0] cost__10;
|
|
wire [32-1:0] cost__11;
|
|
wire [32-1:0] cost__12;
|
|
wire [32-1:0] cost__13;
|
|
wire [32-1:0] cost__14;
|
|
wire [32-1:0] cost__15;
|
|
wire [32-1:0] cost__16;
|
|
wire [32-1:0] cost__17;
|
|
wire [32-1:0] cost__18;
|
|
wire [32-1:0] cost__19;
|
|
wire [32-1:0] cost__20;
|
|
wire [32-1:0] cost__21;
|
|
wire [32-1:0] cost__22;
|
|
wire [32-1:0] cost__23;
|
|
wire [32-1:0] cost__24;
|
|
wire [32-1:0] cost__25;
|
|
wire [32-1:0] cost__26;
|
|
wire [32-1:0] cost__27;
|
|
wire [32-1:0] cost__28;
|
|
wire [32-1:0] cost__29;
|
|
wire [32-1:0] cost__30;
|
|
wire [32-1:0] cost__31;
|
|
wire [32-1:0] cost__32;
|
|
wire [32-1:0] cost__33;
|
|
wire [32-1:0] cost__34;
|
|
wire [32-1:0] cost__35;
|
|
wire [32-1:0] cost__36;
|
|
wire [32-1:0] cost__37;
|
|
|
|
|
|
//wire [31:0] sinp[37:0];
|
|
|
|
|
|
wire [32-1:0] sinp__0;
|
|
wire [32-1:0] sinp__1;
|
|
wire [32-1:0] sinp__2;
|
|
wire [32-1:0] sinp__3;
|
|
wire [32-1:0] sinp__4;
|
|
wire [32-1:0] sinp__5;
|
|
wire [32-1:0] sinp__6;
|
|
wire [32-1:0] sinp__7;
|
|
wire [32-1:0] sinp__8;
|
|
wire [32-1:0] sinp__9;
|
|
wire [32-1:0] sinp__10;
|
|
wire [32-1:0] sinp__11;
|
|
wire [32-1:0] sinp__12;
|
|
wire [32-1:0] sinp__13;
|
|
wire [32-1:0] sinp__14;
|
|
wire [32-1:0] sinp__15;
|
|
wire [32-1:0] sinp__16;
|
|
wire [32-1:0] sinp__17;
|
|
wire [32-1:0] sinp__18;
|
|
wire [32-1:0] sinp__19;
|
|
wire [32-1:0] sinp__20;
|
|
wire [32-1:0] sinp__21;
|
|
wire [32-1:0] sinp__22;
|
|
wire [32-1:0] sinp__23;
|
|
wire [32-1:0] sinp__24;
|
|
wire [32-1:0] sinp__25;
|
|
wire [32-1:0] sinp__26;
|
|
wire [32-1:0] sinp__27;
|
|
wire [32-1:0] sinp__28;
|
|
wire [32-1:0] sinp__29;
|
|
wire [32-1:0] sinp__30;
|
|
wire [32-1:0] sinp__31;
|
|
wire [32-1:0] sinp__32;
|
|
wire [32-1:0] sinp__33;
|
|
wire [32-1:0] sinp__34;
|
|
wire [32-1:0] sinp__35;
|
|
wire [32-1:0] sinp__36;
|
|
wire [32-1:0] sinp__37;
|
|
|
|
|
|
//wire [31:0] cosp[37:0];
|
|
|
|
|
|
wire [32-1:0] cosp__0;
|
|
wire [32-1:0] cosp__1;
|
|
wire [32-1:0] cosp__2;
|
|
wire [32-1:0] cosp__3;
|
|
wire [32-1:0] cosp__4;
|
|
wire [32-1:0] cosp__5;
|
|
wire [32-1:0] cosp__6;
|
|
wire [32-1:0] cosp__7;
|
|
wire [32-1:0] cosp__8;
|
|
wire [32-1:0] cosp__9;
|
|
wire [32-1:0] cosp__10;
|
|
wire [32-1:0] cosp__11;
|
|
wire [32-1:0] cosp__12;
|
|
wire [32-1:0] cosp__13;
|
|
wire [32-1:0] cosp__14;
|
|
wire [32-1:0] cosp__15;
|
|
wire [32-1:0] cosp__16;
|
|
wire [32-1:0] cosp__17;
|
|
wire [32-1:0] cosp__18;
|
|
wire [32-1:0] cosp__19;
|
|
wire [32-1:0] cosp__20;
|
|
wire [32-1:0] cosp__21;
|
|
wire [32-1:0] cosp__22;
|
|
wire [32-1:0] cosp__23;
|
|
wire [32-1:0] cosp__24;
|
|
wire [32-1:0] cosp__25;
|
|
wire [32-1:0] cosp__26;
|
|
wire [32-1:0] cosp__27;
|
|
wire [32-1:0] cosp__28;
|
|
wire [32-1:0] cosp__29;
|
|
wire [32-1:0] cosp__30;
|
|
wire [32-1:0] cosp__31;
|
|
wire [32-1:0] cosp__32;
|
|
wire [32-1:0] cosp__33;
|
|
wire [32-1:0] cosp__34;
|
|
wire [32-1:0] cosp__35;
|
|
wire [32-1:0] cosp__36;
|
|
wire [32-1:0] cosp__37;
|
|
|
|
|
|
//wire [31:0] sintCosp[37:0];
|
|
|
|
wire [32-1:0] sintCosp__0;
|
|
wire [32-1:0] sintCosp__1;
|
|
wire [32-1:0] sintCosp__2;
|
|
wire [32-1:0] sintCosp__3;
|
|
wire [32-1:0] sintCosp__4;
|
|
wire [32-1:0] sintCosp__5;
|
|
wire [32-1:0] sintCosp__6;
|
|
wire [32-1:0] sintCosp__7;
|
|
wire [32-1:0] sintCosp__8;
|
|
wire [32-1:0] sintCosp__9;
|
|
wire [32-1:0] sintCosp__10;
|
|
wire [32-1:0] sintCosp__11;
|
|
wire [32-1:0] sintCosp__12;
|
|
wire [32-1:0] sintCosp__13;
|
|
wire [32-1:0] sintCosp__14;
|
|
wire [32-1:0] sintCosp__15;
|
|
wire [32-1:0] sintCosp__16;
|
|
wire [32-1:0] sintCosp__17;
|
|
wire [32-1:0] sintCosp__18;
|
|
wire [32-1:0] sintCosp__19;
|
|
wire [32-1:0] sintCosp__20;
|
|
wire [32-1:0] sintCosp__21;
|
|
wire [32-1:0] sintCosp__22;
|
|
wire [32-1:0] sintCosp__23;
|
|
wire [32-1:0] sintCosp__24;
|
|
wire [32-1:0] sintCosp__25;
|
|
wire [32-1:0] sintCosp__26;
|
|
wire [32-1:0] sintCosp__27;
|
|
wire [32-1:0] sintCosp__28;
|
|
wire [32-1:0] sintCosp__29;
|
|
wire [32-1:0] sintCosp__30;
|
|
wire [32-1:0] sintCosp__31;
|
|
wire [32-1:0] sintCosp__32;
|
|
wire [32-1:0] sintCosp__33;
|
|
wire [32-1:0] sintCosp__34;
|
|
wire [32-1:0] sintCosp__35;
|
|
wire [32-1:0] sintCosp__36;
|
|
wire [32-1:0] sintCosp__37;
|
|
|
|
|
|
//wire [31:0] sintSinp[37:0];
|
|
|
|
|
|
wire [32-1:0] sintSinp__0;
|
|
wire [32-1:0] sintSinp__1;
|
|
wire [32-1:0] sintSinp__2;
|
|
wire [32-1:0] sintSinp__3;
|
|
wire [32-1:0] sintSinp__4;
|
|
wire [32-1:0] sintSinp__5;
|
|
wire [32-1:0] sintSinp__6;
|
|
wire [32-1:0] sintSinp__7;
|
|
wire [32-1:0] sintSinp__8;
|
|
wire [32-1:0] sintSinp__9;
|
|
wire [32-1:0] sintSinp__10;
|
|
wire [32-1:0] sintSinp__11;
|
|
wire [32-1:0] sintSinp__12;
|
|
wire [32-1:0] sintSinp__13;
|
|
wire [32-1:0] sintSinp__14;
|
|
wire [32-1:0] sintSinp__15;
|
|
wire [32-1:0] sintSinp__16;
|
|
wire [32-1:0] sintSinp__17;
|
|
wire [32-1:0] sintSinp__18;
|
|
wire [32-1:0] sintSinp__19;
|
|
wire [32-1:0] sintSinp__20;
|
|
wire [32-1:0] sintSinp__21;
|
|
wire [32-1:0] sintSinp__22;
|
|
wire [32-1:0] sintSinp__23;
|
|
wire [32-1:0] sintSinp__24;
|
|
wire [32-1:0] sintSinp__25;
|
|
wire [32-1:0] sintSinp__26;
|
|
wire [32-1:0] sintSinp__27;
|
|
wire [32-1:0] sintSinp__28;
|
|
wire [32-1:0] sintSinp__29;
|
|
wire [32-1:0] sintSinp__30;
|
|
wire [32-1:0] sintSinp__31;
|
|
wire [32-1:0] sintSinp__32;
|
|
wire [32-1:0] sintSinp__33;
|
|
wire [32-1:0] sintSinp__34;
|
|
wire [32-1:0] sintSinp__35;
|
|
wire [32-1:0] sintSinp__36;
|
|
wire [32-1:0] sintSinp__37;
|
|
|
|
|
|
//wire [63:0] uz2[37:0];
|
|
|
|
|
|
wire [63:0] uz2__0;
|
|
wire [63:0] uz2__1;
|
|
wire [63:0] uz2__2;
|
|
wire [63:0] uz2__3;
|
|
wire [63:0] uz2__4;
|
|
wire [63:0] uz2__5;
|
|
wire [63:0] uz2__6;
|
|
wire [63:0] uz2__7;
|
|
wire [63:0] uz2__8;
|
|
wire [63:0] uz2__9;
|
|
wire [63:0] uz2__10;
|
|
wire [63:0] uz2__11;
|
|
wire [63:0] uz2__12;
|
|
wire [63:0] uz2__13;
|
|
wire [63:0] uz2__14;
|
|
wire [63:0] uz2__15;
|
|
wire [63:0] uz2__16;
|
|
wire [63:0] uz2__17;
|
|
wire [63:0] uz2__18;
|
|
wire [63:0] uz2__19;
|
|
wire [63:0] uz2__20;
|
|
wire [63:0] uz2__21;
|
|
wire [63:0] uz2__22;
|
|
wire [63:0] uz2__23;
|
|
wire [63:0] uz2__24;
|
|
wire [63:0] uz2__25;
|
|
wire [63:0] uz2__26;
|
|
wire [63:0] uz2__27;
|
|
wire [63:0] uz2__28;
|
|
wire [63:0] uz2__29;
|
|
wire [63:0] uz2__30;
|
|
wire [63:0] uz2__31;
|
|
wire [63:0] uz2__32;
|
|
wire [63:0] uz2__33;
|
|
wire [63:0] uz2__34;
|
|
wire [63:0] uz2__35;
|
|
wire [63:0] uz2__36;
|
|
wire [63:0] uz2__37;
|
|
|
|
|
|
//wire [31:0] uxUz[37:0];
|
|
|
|
wire [32-1:0] uxUz__0;
|
|
wire [32-1:0] uxUz__1;
|
|
wire [32-1:0] uxUz__2;
|
|
wire [32-1:0] uxUz__3;
|
|
wire [32-1:0] uxUz__4;
|
|
wire [32-1:0] uxUz__5;
|
|
wire [32-1:0] uxUz__6;
|
|
wire [32-1:0] uxUz__7;
|
|
wire [32-1:0] uxUz__8;
|
|
wire [32-1:0] uxUz__9;
|
|
wire [32-1:0] uxUz__10;
|
|
wire [32-1:0] uxUz__11;
|
|
wire [32-1:0] uxUz__12;
|
|
wire [32-1:0] uxUz__13;
|
|
wire [32-1:0] uxUz__14;
|
|
wire [32-1:0] uxUz__15;
|
|
wire [32-1:0] uxUz__16;
|
|
wire [32-1:0] uxUz__17;
|
|
wire [32-1:0] uxUz__18;
|
|
wire [32-1:0] uxUz__19;
|
|
wire [32-1:0] uxUz__20;
|
|
wire [32-1:0] uxUz__21;
|
|
wire [32-1:0] uxUz__22;
|
|
wire [32-1:0] uxUz__23;
|
|
wire [32-1:0] uxUz__24;
|
|
wire [32-1:0] uxUz__25;
|
|
wire [32-1:0] uxUz__26;
|
|
wire [32-1:0] uxUz__27;
|
|
wire [32-1:0] uxUz__28;
|
|
wire [32-1:0] uxUz__29;
|
|
wire [32-1:0] uxUz__30;
|
|
wire [32-1:0] uxUz__31;
|
|
wire [32-1:0] uxUz__32;
|
|
wire [32-1:0] uxUz__33;
|
|
wire [32-1:0] uxUz__34;
|
|
wire [32-1:0] uxUz__35;
|
|
wire [32-1:0] uxUz__36;
|
|
wire [32-1:0] uxUz__37;
|
|
|
|
|
|
//wire [31:0] uyUz[37:0];
|
|
|
|
|
|
wire [32-1:0] uyUz__0;
|
|
wire [32-1:0] uyUz__1;
|
|
wire [32-1:0] uyUz__2;
|
|
wire [32-1:0] uyUz__3;
|
|
wire [32-1:0] uyUz__4;
|
|
wire [32-1:0] uyUz__5;
|
|
wire [32-1:0] uyUz__6;
|
|
wire [32-1:0] uyUz__7;
|
|
wire [32-1:0] uyUz__8;
|
|
wire [32-1:0] uyUz__9;
|
|
wire [32-1:0] uyUz__10;
|
|
wire [32-1:0] uyUz__11;
|
|
wire [32-1:0] uyUz__12;
|
|
wire [32-1:0] uyUz__13;
|
|
wire [32-1:0] uyUz__14;
|
|
wire [32-1:0] uyUz__15;
|
|
wire [32-1:0] uyUz__16;
|
|
wire [32-1:0] uyUz__17;
|
|
wire [32-1:0] uyUz__18;
|
|
wire [32-1:0] uyUz__19;
|
|
wire [32-1:0] uyUz__20;
|
|
wire [32-1:0] uyUz__21;
|
|
wire [32-1:0] uyUz__22;
|
|
wire [32-1:0] uyUz__23;
|
|
wire [32-1:0] uyUz__24;
|
|
wire [32-1:0] uyUz__25;
|
|
wire [32-1:0] uyUz__26;
|
|
wire [32-1:0] uyUz__27;
|
|
wire [32-1:0] uyUz__28;
|
|
wire [32-1:0] uyUz__29;
|
|
wire [32-1:0] uyUz__30;
|
|
wire [32-1:0] uyUz__31;
|
|
wire [32-1:0] uyUz__32;
|
|
wire [32-1:0] uyUz__33;
|
|
wire [32-1:0] uyUz__34;
|
|
wire [32-1:0] uyUz__35;
|
|
wire [32-1:0] uyUz__36;
|
|
wire [32-1:0] uyUz__37;
|
|
|
|
//wire [31:0] uySintSinp[37:0];
|
|
|
|
|
|
wire [32-1:0] uySintSinp__0;
|
|
wire [32-1:0] uySintSinp__1;
|
|
wire [32-1:0] uySintSinp__2;
|
|
wire [32-1:0] uySintSinp__3;
|
|
wire [32-1:0] uySintSinp__4;
|
|
wire [32-1:0] uySintSinp__5;
|
|
wire [32-1:0] uySintSinp__6;
|
|
wire [32-1:0] uySintSinp__7;
|
|
wire [32-1:0] uySintSinp__8;
|
|
wire [32-1:0] uySintSinp__9;
|
|
wire [32-1:0] uySintSinp__10;
|
|
wire [32-1:0] uySintSinp__11;
|
|
wire [32-1:0] uySintSinp__12;
|
|
wire [32-1:0] uySintSinp__13;
|
|
wire [32-1:0] uySintSinp__14;
|
|
wire [32-1:0] uySintSinp__15;
|
|
wire [32-1:0] uySintSinp__16;
|
|
wire [32-1:0] uySintSinp__17;
|
|
wire [32-1:0] uySintSinp__18;
|
|
wire [32-1:0] uySintSinp__19;
|
|
wire [32-1:0] uySintSinp__20;
|
|
wire [32-1:0] uySintSinp__21;
|
|
wire [32-1:0] uySintSinp__22;
|
|
wire [32-1:0] uySintSinp__23;
|
|
wire [32-1:0] uySintSinp__24;
|
|
wire [32-1:0] uySintSinp__25;
|
|
wire [32-1:0] uySintSinp__26;
|
|
wire [32-1:0] uySintSinp__27;
|
|
wire [32-1:0] uySintSinp__28;
|
|
wire [32-1:0] uySintSinp__29;
|
|
wire [32-1:0] uySintSinp__30;
|
|
wire [32-1:0] uySintSinp__31;
|
|
wire [32-1:0] uySintSinp__32;
|
|
wire [32-1:0] uySintSinp__33;
|
|
wire [32-1:0] uySintSinp__34;
|
|
wire [32-1:0] uySintSinp__35;
|
|
wire [32-1:0] uySintSinp__36;
|
|
wire [32-1:0] uySintSinp__37;
|
|
|
|
|
|
//wire [63:0] oneMinusUz2[37:0];
|
|
|
|
|
|
wire [63:0] oneMinusUz2__0;
|
|
wire [63:0] oneMinusUz2__1;
|
|
wire [63:0] oneMinusUz2__2;
|
|
wire [63:0] oneMinusUz2__3;
|
|
wire [63:0] oneMinusUz2__4;
|
|
wire [63:0] oneMinusUz2__5;
|
|
wire [63:0] oneMinusUz2__6;
|
|
wire [63:0] oneMinusUz2__7;
|
|
wire [63:0] oneMinusUz2__8;
|
|
wire [63:0] oneMinusUz2__9;
|
|
wire [63:0] oneMinusUz2__10;
|
|
wire [63:0] oneMinusUz2__11;
|
|
wire [63:0] oneMinusUz2__12;
|
|
wire [63:0] oneMinusUz2__13;
|
|
wire [63:0] oneMinusUz2__14;
|
|
wire [63:0] oneMinusUz2__15;
|
|
wire [63:0] oneMinusUz2__16;
|
|
wire [63:0] oneMinusUz2__17;
|
|
wire [63:0] oneMinusUz2__18;
|
|
wire [63:0] oneMinusUz2__19;
|
|
wire [63:0] oneMinusUz2__20;
|
|
wire [63:0] oneMinusUz2__21;
|
|
wire [63:0] oneMinusUz2__22;
|
|
wire [63:0] oneMinusUz2__23;
|
|
wire [63:0] oneMinusUz2__24;
|
|
wire [63:0] oneMinusUz2__25;
|
|
wire [63:0] oneMinusUz2__26;
|
|
wire [63:0] oneMinusUz2__27;
|
|
wire [63:0] oneMinusUz2__28;
|
|
wire [63:0] oneMinusUz2__29;
|
|
wire [63:0] oneMinusUz2__30;
|
|
wire [63:0] oneMinusUz2__31;
|
|
wire [63:0] oneMinusUz2__32;
|
|
wire [63:0] oneMinusUz2__33;
|
|
wire [63:0] oneMinusUz2__34;
|
|
wire [63:0] oneMinusUz2__35;
|
|
wire [63:0] oneMinusUz2__36;
|
|
wire [63:0] oneMinusUz2__37;
|
|
|
|
|
|
//wire [31:0] uyUzSintCosp[37:0];
|
|
|
|
|
|
wire [32-1:0] uyUzSintCosp__0;
|
|
wire [32-1:0] uyUzSintCosp__1;
|
|
wire [32-1:0] uyUzSintCosp__2;
|
|
wire [32-1:0] uyUzSintCosp__3;
|
|
wire [32-1:0] uyUzSintCosp__4;
|
|
wire [32-1:0] uyUzSintCosp__5;
|
|
wire [32-1:0] uyUzSintCosp__6;
|
|
wire [32-1:0] uyUzSintCosp__7;
|
|
wire [32-1:0] uyUzSintCosp__8;
|
|
wire [32-1:0] uyUzSintCosp__9;
|
|
wire [32-1:0] uyUzSintCosp__10;
|
|
wire [32-1:0] uyUzSintCosp__11;
|
|
wire [32-1:0] uyUzSintCosp__12;
|
|
wire [32-1:0] uyUzSintCosp__13;
|
|
wire [32-1:0] uyUzSintCosp__14;
|
|
wire [32-1:0] uyUzSintCosp__15;
|
|
wire [32-1:0] uyUzSintCosp__16;
|
|
wire [32-1:0] uyUzSintCosp__17;
|
|
wire [32-1:0] uyUzSintCosp__18;
|
|
wire [32-1:0] uyUzSintCosp__19;
|
|
wire [32-1:0] uyUzSintCosp__20;
|
|
wire [32-1:0] uyUzSintCosp__21;
|
|
wire [32-1:0] uyUzSintCosp__22;
|
|
wire [32-1:0] uyUzSintCosp__23;
|
|
wire [32-1:0] uyUzSintCosp__24;
|
|
wire [32-1:0] uyUzSintCosp__25;
|
|
wire [32-1:0] uyUzSintCosp__26;
|
|
wire [32-1:0] uyUzSintCosp__27;
|
|
wire [32-1:0] uyUzSintCosp__28;
|
|
wire [32-1:0] uyUzSintCosp__29;
|
|
wire [32-1:0] uyUzSintCosp__30;
|
|
wire [32-1:0] uyUzSintCosp__31;
|
|
wire [32-1:0] uyUzSintCosp__32;
|
|
wire [32-1:0] uyUzSintCosp__33;
|
|
wire [32-1:0] uyUzSintCosp__34;
|
|
wire [32-1:0] uyUzSintCosp__35;
|
|
wire [32-1:0] uyUzSintCosp__36;
|
|
wire [32-1:0] uyUzSintCosp__37;
|
|
|
|
|
|
//wire [31:0] uxUzSintCosp[37:0];
|
|
|
|
|
|
wire [32-1:0] uxUzSintCosp__0;
|
|
wire [32-1:0] uxUzSintCosp__1;
|
|
wire [32-1:0] uxUzSintCosp__2;
|
|
wire [32-1:0] uxUzSintCosp__3;
|
|
wire [32-1:0] uxUzSintCosp__4;
|
|
wire [32-1:0] uxUzSintCosp__5;
|
|
wire [32-1:0] uxUzSintCosp__6;
|
|
wire [32-1:0] uxUzSintCosp__7;
|
|
wire [32-1:0] uxUzSintCosp__8;
|
|
wire [32-1:0] uxUzSintCosp__9;
|
|
wire [32-1:0] uxUzSintCosp__10;
|
|
wire [32-1:0] uxUzSintCosp__11;
|
|
wire [32-1:0] uxUzSintCosp__12;
|
|
wire [32-1:0] uxUzSintCosp__13;
|
|
wire [32-1:0] uxUzSintCosp__14;
|
|
wire [32-1:0] uxUzSintCosp__15;
|
|
wire [32-1:0] uxUzSintCosp__16;
|
|
wire [32-1:0] uxUzSintCosp__17;
|
|
wire [32-1:0] uxUzSintCosp__18;
|
|
wire [32-1:0] uxUzSintCosp__19;
|
|
wire [32-1:0] uxUzSintCosp__20;
|
|
wire [32-1:0] uxUzSintCosp__21;
|
|
wire [32-1:0] uxUzSintCosp__22;
|
|
wire [32-1:0] uxUzSintCosp__23;
|
|
wire [32-1:0] uxUzSintCosp__24;
|
|
wire [32-1:0] uxUzSintCosp__25;
|
|
wire [32-1:0] uxUzSintCosp__26;
|
|
wire [32-1:0] uxUzSintCosp__27;
|
|
wire [32-1:0] uxUzSintCosp__28;
|
|
wire [32-1:0] uxUzSintCosp__29;
|
|
wire [32-1:0] uxUzSintCosp__30;
|
|
wire [32-1:0] uxUzSintCosp__31;
|
|
wire [32-1:0] uxUzSintCosp__32;
|
|
wire [32-1:0] uxUzSintCosp__33;
|
|
wire [32-1:0] uxUzSintCosp__34;
|
|
wire [32-1:0] uxUzSintCosp__35;
|
|
wire [32-1:0] uxUzSintCosp__36;
|
|
wire [32-1:0] uxUzSintCosp__37;
|
|
|
|
|
|
//wire [31:0] uxSintSinp[37:0];
|
|
|
|
wire [32-1:0] uxSintSinp__0;
|
|
wire [32-1:0] uxSintSinp__1;
|
|
wire [32-1:0] uxSintSinp__2;
|
|
wire [32-1:0] uxSintSinp__3;
|
|
wire [32-1:0] uxSintSinp__4;
|
|
wire [32-1:0] uxSintSinp__5;
|
|
wire [32-1:0] uxSintSinp__6;
|
|
wire [32-1:0] uxSintSinp__7;
|
|
wire [32-1:0] uxSintSinp__8;
|
|
wire [32-1:0] uxSintSinp__9;
|
|
wire [32-1:0] uxSintSinp__10;
|
|
wire [32-1:0] uxSintSinp__11;
|
|
wire [32-1:0] uxSintSinp__12;
|
|
wire [32-1:0] uxSintSinp__13;
|
|
wire [32-1:0] uxSintSinp__14;
|
|
wire [32-1:0] uxSintSinp__15;
|
|
wire [32-1:0] uxSintSinp__16;
|
|
wire [32-1:0] uxSintSinp__17;
|
|
wire [32-1:0] uxSintSinp__18;
|
|
wire [32-1:0] uxSintSinp__19;
|
|
wire [32-1:0] uxSintSinp__20;
|
|
wire [32-1:0] uxSintSinp__21;
|
|
wire [32-1:0] uxSintSinp__22;
|
|
wire [32-1:0] uxSintSinp__23;
|
|
wire [32-1:0] uxSintSinp__24;
|
|
wire [32-1:0] uxSintSinp__25;
|
|
wire [32-1:0] uxSintSinp__26;
|
|
wire [32-1:0] uxSintSinp__27;
|
|
wire [32-1:0] uxSintSinp__28;
|
|
wire [32-1:0] uxSintSinp__29;
|
|
wire [32-1:0] uxSintSinp__30;
|
|
wire [32-1:0] uxSintSinp__31;
|
|
wire [32-1:0] uxSintSinp__32;
|
|
wire [32-1:0] uxSintSinp__33;
|
|
wire [32-1:0] uxSintSinp__34;
|
|
wire [32-1:0] uxSintSinp__35;
|
|
wire [32-1:0] uxSintSinp__36;
|
|
wire [32-1:0] uxSintSinp__37;
|
|
|
|
|
|
//wire [31:0] sqrtOneMinusUz2[37:0];
|
|
|
|
wire [32-1:0] sqrtOneMinusUz2__0;
|
|
wire [32-1:0] sqrtOneMinusUz2__1;
|
|
wire [32-1:0] sqrtOneMinusUz2__2;
|
|
wire [32-1:0] sqrtOneMinusUz2__3;
|
|
wire [32-1:0] sqrtOneMinusUz2__4;
|
|
wire [32-1:0] sqrtOneMinusUz2__5;
|
|
wire [32-1:0] sqrtOneMinusUz2__6;
|
|
wire [32-1:0] sqrtOneMinusUz2__7;
|
|
wire [32-1:0] sqrtOneMinusUz2__8;
|
|
wire [32-1:0] sqrtOneMinusUz2__9;
|
|
wire [32-1:0] sqrtOneMinusUz2__10;
|
|
wire [32-1:0] sqrtOneMinusUz2__11;
|
|
wire [32-1:0] sqrtOneMinusUz2__12;
|
|
wire [32-1:0] sqrtOneMinusUz2__13;
|
|
wire [32-1:0] sqrtOneMinusUz2__14;
|
|
wire [32-1:0] sqrtOneMinusUz2__15;
|
|
wire [32-1:0] sqrtOneMinusUz2__16;
|
|
wire [32-1:0] sqrtOneMinusUz2__17;
|
|
wire [32-1:0] sqrtOneMinusUz2__18;
|
|
wire [32-1:0] sqrtOneMinusUz2__19;
|
|
wire [32-1:0] sqrtOneMinusUz2__20;
|
|
wire [32-1:0] sqrtOneMinusUz2__21;
|
|
wire [32-1:0] sqrtOneMinusUz2__22;
|
|
wire [32-1:0] sqrtOneMinusUz2__23;
|
|
wire [32-1:0] sqrtOneMinusUz2__24;
|
|
wire [32-1:0] sqrtOneMinusUz2__25;
|
|
wire [32-1:0] sqrtOneMinusUz2__26;
|
|
wire [32-1:0] sqrtOneMinusUz2__27;
|
|
wire [32-1:0] sqrtOneMinusUz2__28;
|
|
wire [32-1:0] sqrtOneMinusUz2__29;
|
|
wire [32-1:0] sqrtOneMinusUz2__30;
|
|
wire [32-1:0] sqrtOneMinusUz2__31;
|
|
wire [32-1:0] sqrtOneMinusUz2__32;
|
|
wire [32-1:0] sqrtOneMinusUz2__33;
|
|
wire [32-1:0] sqrtOneMinusUz2__34;
|
|
wire [32-1:0] sqrtOneMinusUz2__35;
|
|
wire [32-1:0] sqrtOneMinusUz2__36;
|
|
wire [32-1:0] sqrtOneMinusUz2__37;
|
|
|
|
//wire [31:0] sintCospSqrtOneMinusUz2[37:0];
|
|
|
|
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__0;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__1;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__2;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__3;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__4;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__5;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__6;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__7;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__8;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__9;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__10;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__11;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__12;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__13;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__14;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__15;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__16;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__17;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__18;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__19;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__20;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__21;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__22;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__23;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__24;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__25;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__26;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__27;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__28;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__29;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__30;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__31;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__32;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__33;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__34;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__35;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__36;
|
|
wire [32-1:0] sintCospSqrtOneMinusUz2__37;
|
|
|
|
//wire [31:0] uxCost[37:0];
|
|
|
|
|
|
wire [32-1:0] uxCost__0;
|
|
wire [32-1:0] uxCost__1;
|
|
wire [32-1:0] uxCost__2;
|
|
wire [32-1:0] uxCost__3;
|
|
wire [32-1:0] uxCost__4;
|
|
wire [32-1:0] uxCost__5;
|
|
wire [32-1:0] uxCost__6;
|
|
wire [32-1:0] uxCost__7;
|
|
wire [32-1:0] uxCost__8;
|
|
wire [32-1:0] uxCost__9;
|
|
wire [32-1:0] uxCost__10;
|
|
wire [32-1:0] uxCost__11;
|
|
wire [32-1:0] uxCost__12;
|
|
wire [32-1:0] uxCost__13;
|
|
wire [32-1:0] uxCost__14;
|
|
wire [32-1:0] uxCost__15;
|
|
wire [32-1:0] uxCost__16;
|
|
wire [32-1:0] uxCost__17;
|
|
wire [32-1:0] uxCost__18;
|
|
wire [32-1:0] uxCost__19;
|
|
wire [32-1:0] uxCost__20;
|
|
wire [32-1:0] uxCost__21;
|
|
wire [32-1:0] uxCost__22;
|
|
wire [32-1:0] uxCost__23;
|
|
wire [32-1:0] uxCost__24;
|
|
wire [32-1:0] uxCost__25;
|
|
wire [32-1:0] uxCost__26;
|
|
wire [32-1:0] uxCost__27;
|
|
wire [32-1:0] uxCost__28;
|
|
wire [32-1:0] uxCost__29;
|
|
wire [32-1:0] uxCost__30;
|
|
wire [32-1:0] uxCost__31;
|
|
wire [32-1:0] uxCost__32;
|
|
wire [32-1:0] uxCost__33;
|
|
wire [32-1:0] uxCost__34;
|
|
wire [32-1:0] uxCost__35;
|
|
wire [32-1:0] uxCost__36;
|
|
wire [32-1:0] uxCost__37;
|
|
|
|
//wire [31:0] uzCost[37:0];
|
|
|
|
|
|
wire [32-1:0] uzCost__0;
|
|
wire [32-1:0] uzCost__1;
|
|
wire [32-1:0] uzCost__2;
|
|
wire [32-1:0] uzCost__3;
|
|
wire [32-1:0] uzCost__4;
|
|
wire [32-1:0] uzCost__5;
|
|
wire [32-1:0] uzCost__6;
|
|
wire [32-1:0] uzCost__7;
|
|
wire [32-1:0] uzCost__8;
|
|
wire [32-1:0] uzCost__9;
|
|
wire [32-1:0] uzCost__10;
|
|
wire [32-1:0] uzCost__11;
|
|
wire [32-1:0] uzCost__12;
|
|
wire [32-1:0] uzCost__13;
|
|
wire [32-1:0] uzCost__14;
|
|
wire [32-1:0] uzCost__15;
|
|
wire [32-1:0] uzCost__16;
|
|
wire [32-1:0] uzCost__17;
|
|
wire [32-1:0] uzCost__18;
|
|
wire [32-1:0] uzCost__19;
|
|
wire [32-1:0] uzCost__20;
|
|
wire [32-1:0] uzCost__21;
|
|
wire [32-1:0] uzCost__22;
|
|
wire [32-1:0] uzCost__23;
|
|
wire [32-1:0] uzCost__24;
|
|
wire [32-1:0] uzCost__25;
|
|
wire [32-1:0] uzCost__26;
|
|
wire [32-1:0] uzCost__27;
|
|
wire [32-1:0] uzCost__28;
|
|
wire [32-1:0] uzCost__29;
|
|
wire [32-1:0] uzCost__30;
|
|
wire [32-1:0] uzCost__31;
|
|
wire [32-1:0] uzCost__32;
|
|
wire [32-1:0] uzCost__33;
|
|
wire [32-1:0] uzCost__34;
|
|
wire [32-1:0] uzCost__35;
|
|
wire [32-1:0] uzCost__36;
|
|
wire [32-1:0] uzCost__37;
|
|
|
|
|
|
//wire [31:0] sqrtOneMinusUz2_inv[37:0];
|
|
|
|
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__0;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__1;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__2;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__3;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__4;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__5;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__6;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__7;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__8;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__9;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__10;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__11;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__12;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__13;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__14;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__15;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__16;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__17;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__18;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__19;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__20;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__21;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__22;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__23;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__24;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__25;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__26;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__27;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__28;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__29;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__30;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__31;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__32;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__33;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__34;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__35;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__36;
|
|
wire [32-1:0] sqrtOneMinusUz2_inv__37;
|
|
|
|
//wire [31:0] uxNumerator[37:0];
|
|
|
|
|
|
wire [32-1:0] uxNumerator__0;
|
|
wire [32-1:0] uxNumerator__1;
|
|
wire [32-1:0] uxNumerator__2;
|
|
wire [32-1:0] uxNumerator__3;
|
|
wire [32-1:0] uxNumerator__4;
|
|
wire [32-1:0] uxNumerator__5;
|
|
wire [32-1:0] uxNumerator__6;
|
|
wire [32-1:0] uxNumerator__7;
|
|
wire [32-1:0] uxNumerator__8;
|
|
wire [32-1:0] uxNumerator__9;
|
|
wire [32-1:0] uxNumerator__10;
|
|
wire [32-1:0] uxNumerator__11;
|
|
wire [32-1:0] uxNumerator__12;
|
|
wire [32-1:0] uxNumerator__13;
|
|
wire [32-1:0] uxNumerator__14;
|
|
wire [32-1:0] uxNumerator__15;
|
|
wire [32-1:0] uxNumerator__16;
|
|
wire [32-1:0] uxNumerator__17;
|
|
wire [32-1:0] uxNumerator__18;
|
|
wire [32-1:0] uxNumerator__19;
|
|
wire [32-1:0] uxNumerator__20;
|
|
wire [32-1:0] uxNumerator__21;
|
|
wire [32-1:0] uxNumerator__22;
|
|
wire [32-1:0] uxNumerator__23;
|
|
wire [32-1:0] uxNumerator__24;
|
|
wire [32-1:0] uxNumerator__25;
|
|
wire [32-1:0] uxNumerator__26;
|
|
wire [32-1:0] uxNumerator__27;
|
|
wire [32-1:0] uxNumerator__28;
|
|
wire [32-1:0] uxNumerator__29;
|
|
wire [32-1:0] uxNumerator__30;
|
|
wire [32-1:0] uxNumerator__31;
|
|
wire [32-1:0] uxNumerator__32;
|
|
wire [32-1:0] uxNumerator__33;
|
|
wire [32-1:0] uxNumerator__34;
|
|
wire [32-1:0] uxNumerator__35;
|
|
wire [32-1:0] uxNumerator__36;
|
|
wire [32-1:0] uxNumerator__37;
|
|
|
|
//wire [31:0] uyNumerator[37:0];
|
|
|
|
|
|
wire [32-1:0] uyNumerator__0;
|
|
wire [32-1:0] uyNumerator__1;
|
|
wire [32-1:0] uyNumerator__2;
|
|
wire [32-1:0] uyNumerator__3;
|
|
wire [32-1:0] uyNumerator__4;
|
|
wire [32-1:0] uyNumerator__5;
|
|
wire [32-1:0] uyNumerator__6;
|
|
wire [32-1:0] uyNumerator__7;
|
|
wire [32-1:0] uyNumerator__8;
|
|
wire [32-1:0] uyNumerator__9;
|
|
wire [32-1:0] uyNumerator__10;
|
|
wire [32-1:0] uyNumerator__11;
|
|
wire [32-1:0] uyNumerator__12;
|
|
wire [32-1:0] uyNumerator__13;
|
|
wire [32-1:0] uyNumerator__14;
|
|
wire [32-1:0] uyNumerator__15;
|
|
wire [32-1:0] uyNumerator__16;
|
|
wire [32-1:0] uyNumerator__17;
|
|
wire [32-1:0] uyNumerator__18;
|
|
wire [32-1:0] uyNumerator__19;
|
|
wire [32-1:0] uyNumerator__20;
|
|
wire [32-1:0] uyNumerator__21;
|
|
wire [32-1:0] uyNumerator__22;
|
|
wire [32-1:0] uyNumerator__23;
|
|
wire [32-1:0] uyNumerator__24;
|
|
wire [32-1:0] uyNumerator__25;
|
|
wire [32-1:0] uyNumerator__26;
|
|
wire [32-1:0] uyNumerator__27;
|
|
wire [32-1:0] uyNumerator__28;
|
|
wire [32-1:0] uyNumerator__29;
|
|
wire [32-1:0] uyNumerator__30;
|
|
wire [32-1:0] uyNumerator__31;
|
|
wire [32-1:0] uyNumerator__32;
|
|
wire [32-1:0] uyNumerator__33;
|
|
wire [32-1:0] uyNumerator__34;
|
|
wire [32-1:0] uyNumerator__35;
|
|
wire [32-1:0] uyNumerator__36;
|
|
wire [32-1:0] uyNumerator__37;
|
|
|
|
//wire [31:0] uyCost[37:0];
|
|
|
|
|
|
wire [32-1:0] uyCost__0;
|
|
wire [32-1:0] uyCost__1;
|
|
wire [32-1:0] uyCost__2;
|
|
wire [32-1:0] uyCost__3;
|
|
wire [32-1:0] uyCost__4;
|
|
wire [32-1:0] uyCost__5;
|
|
wire [32-1:0] uyCost__6;
|
|
wire [32-1:0] uyCost__7;
|
|
wire [32-1:0] uyCost__8;
|
|
wire [32-1:0] uyCost__9;
|
|
wire [32-1:0] uyCost__10;
|
|
wire [32-1:0] uyCost__11;
|
|
wire [32-1:0] uyCost__12;
|
|
wire [32-1:0] uyCost__13;
|
|
wire [32-1:0] uyCost__14;
|
|
wire [32-1:0] uyCost__15;
|
|
wire [32-1:0] uyCost__16;
|
|
wire [32-1:0] uyCost__17;
|
|
wire [32-1:0] uyCost__18;
|
|
wire [32-1:0] uyCost__19;
|
|
wire [32-1:0] uyCost__20;
|
|
wire [32-1:0] uyCost__21;
|
|
wire [32-1:0] uyCost__22;
|
|
wire [32-1:0] uyCost__23;
|
|
wire [32-1:0] uyCost__24;
|
|
wire [32-1:0] uyCost__25;
|
|
wire [32-1:0] uyCost__26;
|
|
wire [32-1:0] uyCost__27;
|
|
wire [32-1:0] uyCost__28;
|
|
wire [32-1:0] uyCost__29;
|
|
wire [32-1:0] uyCost__30;
|
|
wire [32-1:0] uyCost__31;
|
|
wire [32-1:0] uyCost__32;
|
|
wire [32-1:0] uyCost__33;
|
|
wire [32-1:0] uyCost__34;
|
|
wire [32-1:0] uyCost__35;
|
|
wire [32-1:0] uyCost__36;
|
|
wire [32-1:0] uyCost__37;
|
|
|
|
//wire [31:0] uxQuotient[37:0];
|
|
|
|
|
|
wire [32-1:0] uxQuotient__0;
|
|
wire [32-1:0] uxQuotient__1;
|
|
wire [32-1:0] uxQuotient__2;
|
|
wire [32-1:0] uxQuotient__3;
|
|
wire [32-1:0] uxQuotient__4;
|
|
wire [32-1:0] uxQuotient__5;
|
|
wire [32-1:0] uxQuotient__6;
|
|
wire [32-1:0] uxQuotient__7;
|
|
wire [32-1:0] uxQuotient__8;
|
|
wire [32-1:0] uxQuotient__9;
|
|
wire [32-1:0] uxQuotient__10;
|
|
wire [32-1:0] uxQuotient__11;
|
|
wire [32-1:0] uxQuotient__12;
|
|
wire [32-1:0] uxQuotient__13;
|
|
wire [32-1:0] uxQuotient__14;
|
|
wire [32-1:0] uxQuotient__15;
|
|
wire [32-1:0] uxQuotient__16;
|
|
wire [32-1:0] uxQuotient__17;
|
|
wire [32-1:0] uxQuotient__18;
|
|
wire [32-1:0] uxQuotient__19;
|
|
wire [32-1:0] uxQuotient__20;
|
|
wire [32-1:0] uxQuotient__21;
|
|
wire [32-1:0] uxQuotient__22;
|
|
wire [32-1:0] uxQuotient__23;
|
|
wire [32-1:0] uxQuotient__24;
|
|
wire [32-1:0] uxQuotient__25;
|
|
wire [32-1:0] uxQuotient__26;
|
|
wire [32-1:0] uxQuotient__27;
|
|
wire [32-1:0] uxQuotient__28;
|
|
wire [32-1:0] uxQuotient__29;
|
|
wire [32-1:0] uxQuotient__30;
|
|
wire [32-1:0] uxQuotient__31;
|
|
wire [32-1:0] uxQuotient__32;
|
|
wire [32-1:0] uxQuotient__33;
|
|
wire [32-1:0] uxQuotient__34;
|
|
wire [32-1:0] uxQuotient__35;
|
|
wire [32-1:0] uxQuotient__36;
|
|
wire [32-1:0] uxQuotient__37;
|
|
|
|
//wire [31:0] uyQuotient[37:0];
|
|
|
|
|
|
wire [32-1:0] uyQuotient__0;
|
|
wire [32-1:0] uyQuotient__1;
|
|
wire [32-1:0] uyQuotient__2;
|
|
wire [32-1:0] uyQuotient__3;
|
|
wire [32-1:0] uyQuotient__4;
|
|
wire [32-1:0] uyQuotient__5;
|
|
wire [32-1:0] uyQuotient__6;
|
|
wire [32-1:0] uyQuotient__7;
|
|
wire [32-1:0] uyQuotient__8;
|
|
wire [32-1:0] uyQuotient__9;
|
|
wire [32-1:0] uyQuotient__10;
|
|
wire [32-1:0] uyQuotient__11;
|
|
wire [32-1:0] uyQuotient__12;
|
|
wire [32-1:0] uyQuotient__13;
|
|
wire [32-1:0] uyQuotient__14;
|
|
wire [32-1:0] uyQuotient__15;
|
|
wire [32-1:0] uyQuotient__16;
|
|
wire [32-1:0] uyQuotient__17;
|
|
wire [32-1:0] uyQuotient__18;
|
|
wire [32-1:0] uyQuotient__19;
|
|
wire [32-1:0] uyQuotient__20;
|
|
wire [32-1:0] uyQuotient__21;
|
|
wire [32-1:0] uyQuotient__22;
|
|
wire [32-1:0] uyQuotient__23;
|
|
wire [32-1:0] uyQuotient__24;
|
|
wire [32-1:0] uyQuotient__25;
|
|
wire [32-1:0] uyQuotient__26;
|
|
wire [32-1:0] uyQuotient__27;
|
|
wire [32-1:0] uyQuotient__28;
|
|
wire [32-1:0] uyQuotient__29;
|
|
wire [32-1:0] uyQuotient__30;
|
|
wire [32-1:0] uyQuotient__31;
|
|
wire [32-1:0] uyQuotient__32;
|
|
wire [32-1:0] uyQuotient__33;
|
|
wire [32-1:0] uyQuotient__34;
|
|
wire [32-1:0] uyQuotient__35;
|
|
wire [32-1:0] uyQuotient__36;
|
|
wire [32-1:0] uyQuotient__37;
|
|
|
|
wire [31:0] new_sint;
|
|
wire [31:0] new_cost;
|
|
wire [31:0] new_sinp;
|
|
wire [31:0] new_cosp;
|
|
wire [31:0] new_sintCosp;
|
|
wire [31:0] new_sintSinp;
|
|
wire [63:0] new_uz2;
|
|
wire [31:0] new_uxUz;
|
|
wire [31:0] new_uyUz;
|
|
wire [31:0] new_uySintSinp;
|
|
wire [63:0] new_oneMinusUz2;
|
|
wire [31:0] new_uyUzSintCosp;
|
|
wire [31:0] new_uxUzSintCosp;
|
|
wire [31:0] new_uxSintSinp;
|
|
wire [31:0] new_sqrtOneMinusUz2;
|
|
wire [31:0] new_sintCospSqrtOneMinusUz2;
|
|
wire [31:0] new_uxCost;
|
|
wire [31:0] new_uzCost;
|
|
wire [31:0] new_sqrtOneMinusUz2_inv;
|
|
wire [31:0] new_uxNumerator;
|
|
wire [31:0] new_uyNumerator;
|
|
wire [31:0] new_uyCost;
|
|
reg [31:0] new_uxQuotient;
|
|
reg [31:0] new_uyQuotient;
|
|
|
|
|
|
//Wiring for calculating final values
|
|
wire uxNumerOverflow;
|
|
wire uyNumerOverflow;
|
|
reg normalIncident;
|
|
wire [31:0] ux_add_1;
|
|
wire [31:0] ux_add_2;
|
|
wire uxOverflow;
|
|
wire [31:0] uy_add_1;
|
|
wire [31:0] uy_add_2;
|
|
wire uyOverflow;
|
|
wire [31:0] normalUz;
|
|
wire [31:0] uz_sub_1;
|
|
wire [31:0] uz_sub_2;
|
|
wire uzOverflow;
|
|
|
|
wire [31:0] new_ux;
|
|
wire [31:0] new_uy;
|
|
wire [31:0] new_uz;
|
|
|
|
wire div_overflow;
|
|
wire toAnd1_36_1;
|
|
wire toAnd1_36_2;
|
|
wire overflow1_36;
|
|
wire negOverflow1_36;
|
|
wire toAnd2_36_1;
|
|
wire toAnd2_36_2;
|
|
wire overflow2_36;
|
|
wire negOverflow2_36;
|
|
|
|
|
|
|
|
//------------------Register Pipeline-----------------
|
|
//Generation Methodology: Standard block, called InternalsBlock, is
|
|
//repeated multiple times, based on the latency of the reflector and
|
|
//scatterer. This block contains the list of all internal variables
|
|
//that need to be registered and passed along in the pipeline.
|
|
//
|
|
//Previous values in the pipeline are passed to the next register on each
|
|
//clock tick. The exception comes when an internal variable gets
|
|
//calculated. Each time a new internal variable is calculated, a new
|
|
//case is added to the case statement, and instead of hooking previous
|
|
//values of that variable to next, the new, calculated values are hooked up.
|
|
//
|
|
//This method will generate many more registers than what are required, but
|
|
//it is expected that the synthesis tool will synthesize these away.
|
|
//
|
|
//
|
|
//Commenting Convention: Whenever a new value is injected into the pipe, the
|
|
//comment //Changed Value is added directly above the variable in question.
|
|
//When multiple values are calculated in a single clock cycle, multiple such
|
|
//comments are placed. Wires connected to "Changed Values" always start with
|
|
//the prefix new_.
|
|
//
|
|
//GENERATE PIPELINE
|
|
//genvar i;
|
|
//generate
|
|
// for(i=`LAT; i>0; i=i-1) begin: internalPipe
|
|
// case(i)
|
|
//
|
|
// 2:
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// //Changed Value
|
|
// .i_uz2(new_uz2),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
// 3:
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// .i_uz2(uz2[i-1]),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// //Changed Value
|
|
// .i_oneMinusUz2(new_oneMinusUz2),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
// 4:
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// .i_uz2(uz2[i-1]),
|
|
// //Changed Value
|
|
// .i_uxUz(new_uxUz),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
// (`SQRT+6):
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// .i_uz2(uz2[i-1]),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// //Changed Value
|
|
// .i_sqrtOneMinusUz2(new_sqrtOneMinusUz2),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
//
|
|
// (`SQRT+`DIV+3):
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// //Changed Value
|
|
// .i_sint(new_sint),
|
|
// //Changed Value
|
|
// .i_cost(new_cost),
|
|
// //Changed Value
|
|
// .i_sinp(new_sinp),
|
|
// //Changed Value
|
|
// .i_cosp(new_cosp),
|
|
// //Changed Value
|
|
// .i_sintCosp(new_sintCosp),
|
|
// //Changed Value
|
|
// .i_sintSinp(new_sintSinp),
|
|
// .i_uz2(uz2[i-1]),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// //Changed Value
|
|
// .i_uyUz(new_uyUz),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
//
|
|
// (`SQRT+`DIV+4):
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// .i_uz2(uz2[i-1]),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// //Changed Value
|
|
// .i_uySintSinp(new_uySintSinp),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// //Changed Value
|
|
// .i_uyUzSintCosp(new_uyUzSintCosp),
|
|
// //Changed Value
|
|
// .i_uxUzSintCosp(new_uxUzSintCosp),
|
|
// //Changed Value
|
|
// .i_uxSintSinp(new_uxSintSinp),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
//
|
|
// (`SQRT+`DIV+5):
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// .i_uz2(uz2[i-1]),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// //Changed Value
|
|
// .i_sqrtOneMinusUz2_inv(new_sqrtOneMinusUz2_inv),
|
|
// //Changed Value
|
|
// .i_uxNumerator(new_uxNumerator),
|
|
// //Changed Value
|
|
// .i_uyNumerator(new_uyNumerator),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
//
|
|
// (`SQRT+`DIV+6):
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// .i_uz2(uz2[i-1]),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// //Changed Value
|
|
// .i_sintCospSqrtOneMinusUz2(new_sintCospSqrtOneMinusUz2),
|
|
// //Changed Value
|
|
// .i_uxCost(new_uxCost),
|
|
// //Changed Value
|
|
// .i_uzCost(new_uzCost),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// //Changed Value
|
|
// .i_uyCost(new_uyCost),
|
|
// //Changed Value
|
|
// .i_uxQuotient(new_uxQuotient),
|
|
// //Changed Value
|
|
// .i_uyQuotient(new_uyQuotient),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
//
|
|
// default:
|
|
// InternalsBlock pipeReg(
|
|
// //Inputs
|
|
// .clock(clock),
|
|
// .reset(reset),
|
|
// .enable(enable),
|
|
//
|
|
// .i_sint(sint[i-1]),
|
|
// .i_cost(cost[i-1]),
|
|
// .i_sinp(sinp[i-1]),
|
|
// .i_cosp(cosp[i-1]),
|
|
// .i_sintCosp(sintCosp[i-1]),
|
|
// .i_sintSinp(sintSinp[i-1]),
|
|
// .i_uz2(uz2[i-1]),
|
|
// .i_uxUz(uxUz[i-1]),
|
|
// .i_uyUz(uyUz[i-1]),
|
|
// .i_uySintSinp(uySintSinp[i-1]),
|
|
// .i_oneMinusUz2(oneMinusUz2[i-1]),
|
|
// .i_uyUzSintCosp(uyUzSintCosp[i-1]),
|
|
// .i_uxUzSintCosp(uxUzSintCosp[i-1]),
|
|
// .i_uxSintSinp(uxSintSinp[i-1]),
|
|
// .i_sqrtOneMinusUz2(sqrtOneMinusUz2[i-1]),
|
|
// .i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i-1]),
|
|
// .i_uxCost(uxCost[i-1]),
|
|
// .i_uzCost(uzCost[i-1]),
|
|
// .i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i-1]),
|
|
// .i_uxNumerator(uxNumerator[i-1]),
|
|
// .i_uyNumerator(uyNumerator[i-1]),
|
|
// .i_uyCost(uyCost[i-1]),
|
|
// .i_uxQuotient(uxQuotient[i-1]),
|
|
// .i_uyQuotient(uyQuotient[i-1]),
|
|
//
|
|
// //Outputs
|
|
// .o_sint(sint[i]),
|
|
// .o_cost(cost[i]),
|
|
// .o_sinp(sinp[i]),
|
|
// .o_cosp(cosp[i]),
|
|
// .o_sintCosp(sintCosp[i]),
|
|
// .o_sintSinp(sintSinp[i]),
|
|
// .o_uz2(uz2[i]),
|
|
// .o_uxUz(uxUz[i]),
|
|
// .o_uyUz(uyUz[i]),
|
|
// .o_uySintSinp(uySintSinp[i]),
|
|
// .o_oneMinusUz2(oneMinusUz2[i]),
|
|
// .o_uyUzSintCosp(uyUzSintCosp[i]),
|
|
// .o_uxUzSintCosp(uxUzSintCosp[i]),
|
|
// .o_uxSintSinp(uxSintSinp[i]),
|
|
// .o_sqrtOneMinusUz2(sqrtOneMinusUz2[i]),
|
|
// .o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2[i]),
|
|
// .o_uxCost(uxCost[i]),
|
|
// .o_uzCost(uzCost[i]),
|
|
// .o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv[i]),
|
|
// .o_uxNumerator(uxNumerator[i]),
|
|
// .o_uyNumerator(uyNumerator[i]),
|
|
// .o_uyCost(uyCost[i]),
|
|
// .o_uxQuotient(uxQuotient[i]),
|
|
// .o_uyQuotient(uyQuotient[i])
|
|
// );
|
|
// endcase
|
|
// end
|
|
//endgenerate
|
|
|
|
//Expanded generate loop:
|
|
//special cases first
|
|
//forloop2
|
|
InternalsBlock pipeReg2(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
|
|
.i_sint(sint__1),
|
|
.i_cost(cost__1),
|
|
.i_sinp(sinp__1),
|
|
.i_cosp(cosp__1),
|
|
.i_sintCosp(sintCosp__1),
|
|
.i_sintSinp(sintSinp__1),
|
|
//Changed Value
|
|
.i_uz2(new_uz2),
|
|
.i_uxUz(uxUz__1),
|
|
.i_uyUz(uyUz__1),
|
|
.i_uySintSinp(uySintSinp__1),
|
|
.i_oneMinusUz2(oneMinusUz2__1),
|
|
.i_uyUzSintCosp(uyUzSintCosp__1),
|
|
.i_uxUzSintCosp(uxUzSintCosp__1),
|
|
.i_uxSintSinp(uxSintSinp__1),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__1),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__1),
|
|
.i_uxCost(uxCost__1),
|
|
.i_uzCost(uzCost__1),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__1),
|
|
.i_uxNumerator(uxNumerator__1),
|
|
.i_uyNumerator(uyNumerator__1),
|
|
.i_uyCost(uyCost__1),
|
|
.i_uxQuotient(uxQuotient__1),
|
|
.i_uyQuotient(uyQuotient__1),
|
|
|
|
//Outputs
|
|
.o_sint(sint__2),
|
|
.o_cost(cost__2),
|
|
.o_sinp(sinp__2),
|
|
.o_cosp(cosp__2),
|
|
.o_sintCosp(sintCosp__2),
|
|
.o_sintSinp(sintSinp__2),
|
|
.o_uz2(uz2__2),
|
|
.o_uxUz(uxUz__2),
|
|
.o_uyUz(uyUz__2),
|
|
.o_uySintSinp(uySintSinp__2),
|
|
.o_oneMinusUz2(oneMinusUz2__2),
|
|
.o_uyUzSintCosp(uyUzSintCosp__2),
|
|
.o_uxUzSintCosp(uxUzSintCosp__2),
|
|
.o_uxSintSinp(uxSintSinp__2),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__2),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__2),
|
|
.o_uxCost(uxCost__2),
|
|
.o_uzCost(uzCost__2),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__2),
|
|
.o_uxNumerator(uxNumerator__2),
|
|
.o_uyNumerator(uyNumerator__2),
|
|
.o_uyCost(uyCost__2),
|
|
.o_uxQuotient(uxQuotient__2),
|
|
.o_uyQuotient(uyQuotient__2)
|
|
);
|
|
|
|
|
|
// forloop3
|
|
InternalsBlock pipeReg3(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__2),
|
|
.i_cost(cost__2),
|
|
.i_sinp(sinp__2),
|
|
.i_cosp(cosp__2),
|
|
.i_sintCosp(sintCosp__2),
|
|
.i_sintSinp(sintSinp__2),
|
|
.i_uz2(uz2__2),
|
|
.i_uxUz(uxUz__2),
|
|
.i_uyUz(uyUz__2),
|
|
.i_uySintSinp(uySintSinp__2),
|
|
//changed
|
|
.i_oneMinusUz2(new_oneMinusUz2),
|
|
.i_uyUzSintCosp(uyUzSintCosp__2),
|
|
.i_uxUzSintCosp(uxUzSintCosp__2),
|
|
.i_uxSintSinp(uxSintSinp__2),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__2),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__2),
|
|
.i_uxCost(uxCost__2),
|
|
.i_uzCost(uzCost__2),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__2),
|
|
.i_uxNumerator(uxNumerator__2),
|
|
.i_uyNumerator(uyNumerator__2),
|
|
.i_uyCost(uyCost__2),
|
|
.i_uxQuotient(uxQuotient__2),
|
|
.i_uyQuotient(uyQuotient__2),
|
|
//Outputs
|
|
.o_sint(sint__3),
|
|
.o_cost(cost__3),
|
|
.o_sinp(sinp__3),
|
|
.o_cosp(cosp__3),
|
|
.o_sintCosp(sintCosp__3),
|
|
.o_sintSinp(sintSinp__3),
|
|
.o_uz2(uz2__3),
|
|
.o_uxUz(uxUz__3),
|
|
.o_uyUz(uyUz__3),
|
|
.o_uySintSinp(uySintSinp__3),
|
|
.o_oneMinusUz2(oneMinusUz2__3),
|
|
.o_uyUzSintCosp(uyUzSintCosp__3),
|
|
.o_uxUzSintCosp(uxUzSintCosp__3),
|
|
.o_uxSintSinp(uxSintSinp__3),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__3),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__3),
|
|
.o_uxCost(uxCost__3),
|
|
.o_uzCost(uzCost__3),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__3),
|
|
.o_uxNumerator(uxNumerator__3),
|
|
.o_uyNumerator(uyNumerator__3),
|
|
.o_uyCost(uyCost__3),
|
|
.o_uxQuotient(uxQuotient__3),
|
|
.o_uyQuotient(uyQuotient__3)
|
|
);
|
|
|
|
//forloop4:
|
|
InternalsBlock pipeReg4(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__3),
|
|
.i_cost(cost__3),
|
|
.i_sinp(sinp__3),
|
|
.i_cosp(cosp__3),
|
|
.i_sintCosp(sintCosp__3),
|
|
.i_sintSinp(sintSinp__3),
|
|
.i_uz2(uz2__3),
|
|
//changed
|
|
.i_uxUz(new_uxUz),
|
|
.i_uyUz(uyUz__3),
|
|
.i_uySintSinp(uySintSinp__3),
|
|
.i_oneMinusUz2(oneMinusUz2__3),
|
|
.i_uyUzSintCosp(uyUzSintCosp__3),
|
|
.i_uxUzSintCosp(uxUzSintCosp__3),
|
|
.i_uxSintSinp(uxSintSinp__3),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__3),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__3),
|
|
.i_uxCost(uxCost__3),
|
|
.i_uzCost(uzCost__3),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__3),
|
|
.i_uxNumerator(uxNumerator__3),
|
|
.i_uyNumerator(uyNumerator__3),
|
|
.i_uyCost(uyCost__3),
|
|
.i_uxQuotient(uxQuotient__3),
|
|
.i_uyQuotient(uyQuotient__3),
|
|
//Outputs
|
|
.o_sint(sint__4),
|
|
.o_cost(cost__4),
|
|
.o_sinp(sinp__4),
|
|
.o_cosp(cosp__4),
|
|
.o_sintCosp(sintCosp__4),
|
|
.o_sintSinp(sintSinp__4),
|
|
.o_uz2(uz2__4),
|
|
.o_uxUz(uxUz__4),
|
|
.o_uyUz(uyUz__4),
|
|
.o_uySintSinp(uySintSinp__4),
|
|
.o_oneMinusUz2(oneMinusUz2__4),
|
|
.o_uyUzSintCosp(uyUzSintCosp__4),
|
|
.o_uxUzSintCosp(uxUzSintCosp__4),
|
|
.o_uxSintSinp(uxSintSinp__4),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__4),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__4),
|
|
.o_uxCost(uxCost__4),
|
|
.o_uzCost(uzCost__4),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__4),
|
|
.o_uxNumerator(uxNumerator__4),
|
|
.o_uyNumerator(uyNumerator__4),
|
|
.o_uyCost(uyCost__4),
|
|
.o_uxQuotient(uxQuotient__4),
|
|
.o_uyQuotient(uyQuotient__4)
|
|
);
|
|
|
|
InternalsBlock pipeReg16(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__15),
|
|
.i_cost(cost__15),
|
|
.i_sinp(sinp__15),
|
|
.i_cosp(cosp__15),
|
|
.i_sintCosp(sintCosp__15),
|
|
.i_sintSinp(sintSinp__15),
|
|
.i_uz2(uz2__15),
|
|
.i_uxUz(uxUz__15),
|
|
.i_uyUz(uyUz__15),
|
|
.i_uySintSinp(uySintSinp__15),
|
|
.i_oneMinusUz2(oneMinusUz2__15),
|
|
.i_uyUzSintCosp(uyUzSintCosp__15),
|
|
.i_uxUzSintCosp(uxUzSintCosp__15),
|
|
.i_uxSintSinp(uxSintSinp__15),
|
|
//changed
|
|
.i_sqrtOneMinusUz2(new_sqrtOneMinusUz2),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__15),
|
|
.i_uxCost(uxCost__15),
|
|
.i_uzCost(uzCost__15),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__15),
|
|
.i_uxNumerator(uxNumerator__15),
|
|
.i_uyNumerator(uyNumerator__15),
|
|
.i_uyCost(uyCost__15),
|
|
.i_uxQuotient(uxQuotient__15),
|
|
.i_uyQuotient(uyQuotient__15),
|
|
//Outputs
|
|
.o_sint(sint__16),
|
|
.o_cost(cost__16),
|
|
.o_sinp(sinp__16),
|
|
.o_cosp(cosp__16),
|
|
.o_sintCosp(sintCosp__16),
|
|
.o_sintSinp(sintSinp__16),
|
|
.o_uz2(uz2__16),
|
|
.o_uxUz(uxUz__16),
|
|
.o_uyUz(uyUz__16),
|
|
.o_uySintSinp(uySintSinp__16),
|
|
.o_oneMinusUz2(oneMinusUz2__16),
|
|
.o_uyUzSintCosp(uyUzSintCosp__16),
|
|
.o_uxUzSintCosp(uxUzSintCosp__16),
|
|
.o_uxSintSinp(uxSintSinp__16),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__16),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__16),
|
|
.o_uxCost(uxCost__16),
|
|
.o_uzCost(uzCost__16),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__16),
|
|
.o_uxNumerator(uxNumerator__16),
|
|
.o_uyNumerator(uyNumerator__16),
|
|
.o_uyCost(uyCost__16),
|
|
.o_uxQuotient(uxQuotient__16),
|
|
.o_uyQuotient(uyQuotient__16)
|
|
);
|
|
|
|
//forloop 33 (10+20+3):
|
|
|
|
InternalsBlock pipeReg33(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
//changed
|
|
.i_sint(new_sint),
|
|
//changed
|
|
.i_cost(new_cost),
|
|
//changed
|
|
.i_sinp(new_sinp),
|
|
//changed
|
|
.i_cosp(new_cosp),
|
|
//changed
|
|
.i_sintCosp(new_sintCosp),
|
|
//changed
|
|
.i_sintSinp(new_sintSinp),
|
|
.i_uz2(uz2__32),
|
|
.i_uxUz(uxUz__32),
|
|
//changed
|
|
.i_uyUz(new_uyUz),
|
|
.i_uySintSinp(uySintSinp__32),
|
|
.i_oneMinusUz2(oneMinusUz2__32),
|
|
.i_uyUzSintCosp(uyUzSintCosp__32),
|
|
.i_uxUzSintCosp(uxUzSintCosp__32),
|
|
.i_uxSintSinp(uxSintSinp__32),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__32),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__32),
|
|
.i_uxCost(uxCost__32),
|
|
.i_uzCost(uzCost__32),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__32),
|
|
.i_uxNumerator(uxNumerator__32),
|
|
.i_uyNumerator(uyNumerator__32),
|
|
.i_uyCost(uyCost__32),
|
|
.i_uxQuotient(uxQuotient__32),
|
|
.i_uyQuotient(uyQuotient__32),
|
|
//Outputs
|
|
.o_sint(sint__33),
|
|
.o_cost(cost__33),
|
|
.o_sinp(sinp__33),
|
|
.o_cosp(cosp__33),
|
|
.o_sintCosp(sintCosp__33),
|
|
.o_sintSinp(sintSinp__33),
|
|
.o_uz2(uz2__33),
|
|
.o_uxUz(uxUz__33),
|
|
.o_uyUz(uyUz__33),
|
|
.o_uySintSinp(uySintSinp__33),
|
|
.o_oneMinusUz2(oneMinusUz2__33),
|
|
.o_uyUzSintCosp(uyUzSintCosp__33),
|
|
.o_uxUzSintCosp(uxUzSintCosp__33),
|
|
.o_uxSintSinp(uxSintSinp__33),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__33),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__33),
|
|
.o_uxCost(uxCost__33),
|
|
.o_uzCost(uzCost__33),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__33),
|
|
.o_uxNumerator(uxNumerator__33),
|
|
.o_uyNumerator(uyNumerator__33),
|
|
.o_uyCost(uyCost__33),
|
|
.o_uxQuotient(uxQuotient__33),
|
|
.o_uyQuotient(uyQuotient__33)
|
|
);
|
|
|
|
//forloop34 (10+20+4):
|
|
|
|
InternalsBlock pipeReg34(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__33),
|
|
.i_cost(cost__33),
|
|
.i_sinp(sinp__33),
|
|
.i_cosp(cosp__33),
|
|
.i_sintCosp(sintCosp__33),
|
|
.i_sintSinp(sintSinp__33),
|
|
.i_uz2(uz2__33),
|
|
.i_uxUz(uxUz__33),
|
|
.i_uyUz(uyUz__33),
|
|
//changed
|
|
.i_uySintSinp(new_uySintSinp),
|
|
.i_oneMinusUz2(oneMinusUz2__33),
|
|
//changed
|
|
.i_uyUzSintCosp(new_uyUzSintCosp),
|
|
//changed
|
|
.i_uxUzSintCosp(new_uxUzSintCosp),
|
|
//changed
|
|
.i_uxSintSinp(new_uxSintSinp),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__33),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__33),
|
|
.i_uxCost(uxCost__33),
|
|
.i_uzCost(uzCost__33),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__33),
|
|
.i_uxNumerator(uxNumerator__33),
|
|
.i_uyNumerator(uyNumerator__33),
|
|
.i_uyCost(uyCost__33),
|
|
.i_uxQuotient(uxQuotient__33),
|
|
.i_uyQuotient(uyQuotient__33),
|
|
//Outputs
|
|
.o_sint(sint__34),
|
|
.o_cost(cost__34),
|
|
.o_sinp(sinp__34),
|
|
.o_cosp(cosp__34),
|
|
.o_sintCosp(sintCosp__34),
|
|
.o_sintSinp(sintSinp__34),
|
|
.o_uz2(uz2__34),
|
|
.o_uxUz(uxUz__34),
|
|
.o_uyUz(uyUz__34),
|
|
.o_uySintSinp(uySintSinp__34),
|
|
.o_oneMinusUz2(oneMinusUz2__34),
|
|
.o_uyUzSintCosp(uyUzSintCosp__34),
|
|
.o_uxUzSintCosp(uxUzSintCosp__34),
|
|
.o_uxSintSinp(uxSintSinp__34),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__34),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__34),
|
|
.o_uxCost(uxCost__34),
|
|
.o_uzCost(uzCost__34),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__34),
|
|
.o_uxNumerator(uxNumerator__34),
|
|
.o_uyNumerator(uyNumerator__34),
|
|
.o_uyCost(uyCost__34),
|
|
.o_uxQuotient(uxQuotient__34),
|
|
.o_uyQuotient(uyQuotient__34)
|
|
);
|
|
|
|
//forloop35(10+20+5):
|
|
InternalsBlock pipeReg35(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__34),
|
|
.i_cost(cost__34),
|
|
.i_sinp(sinp__34),
|
|
.i_cosp(cosp__34),
|
|
.i_sintCosp(sintCosp__34),
|
|
.i_sintSinp(sintSinp__34),
|
|
.i_uz2(uz2__34),
|
|
.i_uxUz(uxUz__34),
|
|
.i_uyUz(uyUz__34),
|
|
.i_uySintSinp(uySintSinp__34),
|
|
.i_oneMinusUz2(oneMinusUz2__34),
|
|
.i_uyUzSintCosp(uyUzSintCosp__34),
|
|
.i_uxUzSintCosp(uxUzSintCosp__34),
|
|
.i_uxSintSinp(uxSintSinp__34),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__34),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__34),
|
|
.i_uxCost(uxCost__34),
|
|
.i_uzCost(uzCost__34),
|
|
//changedval
|
|
.i_sqrtOneMinusUz2_inv(new_sqrtOneMinusUz2_inv),
|
|
//changed
|
|
.i_uxNumerator(new_uxNumerator),
|
|
//changed
|
|
.i_uyNumerator(new_uyNumerator),
|
|
.i_uyCost(uyCost__34),
|
|
.i_uxQuotient(uxQuotient__34),
|
|
.i_uyQuotient(uyQuotient__34),
|
|
//Outputs
|
|
.o_sint(sint__35),
|
|
.o_cost(cost__35),
|
|
.o_sinp(sinp__35),
|
|
.o_cosp(cosp__35),
|
|
.o_sintCosp(sintCosp__35),
|
|
.o_sintSinp(sintSinp__35),
|
|
.o_uz2(uz2__35),
|
|
.o_uxUz(uxUz__35),
|
|
.o_uyUz(uyUz__35),
|
|
.o_uySintSinp(uySintSinp__35),
|
|
.o_oneMinusUz2(oneMinusUz2__35),
|
|
.o_uyUzSintCosp(uyUzSintCosp__35),
|
|
.o_uxUzSintCosp(uxUzSintCosp__35),
|
|
.o_uxSintSinp(uxSintSinp__35),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__35),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__35),
|
|
.o_uxCost(uxCost__35),
|
|
.o_uzCost(uzCost__35),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__35),
|
|
.o_uxNumerator(uxNumerator__35),
|
|
.o_uyNumerator(uyNumerator__35),
|
|
.o_uyCost(uyCost__35),
|
|
.o_uxQuotient(uxQuotient__35),
|
|
.o_uyQuotient(uyQuotient__35)
|
|
);
|
|
|
|
|
|
//forloop36 (10+20+6):
|
|
|
|
InternalsBlock pipeReg36(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__35),
|
|
.i_cost(cost__35),
|
|
.i_sinp(sinp__35),
|
|
.i_cosp(cosp__35),
|
|
.i_sintCosp(sintCosp__35),
|
|
.i_sintSinp(sintSinp__35),
|
|
.i_uz2(uz2__35),
|
|
.i_uxUz(uxUz__35),
|
|
.i_uyUz(uyUz__35),
|
|
.i_uySintSinp(uySintSinp__35),
|
|
.i_oneMinusUz2(oneMinusUz2__35),
|
|
.i_uyUzSintCosp(uyUzSintCosp__35),
|
|
.i_uxUzSintCosp(uxUzSintCosp__35),
|
|
.i_uxSintSinp(uxSintSinp__35),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__35),
|
|
//changed
|
|
.i_sintCospSqrtOneMinusUz2(new_sintCospSqrtOneMinusUz2),
|
|
//changed
|
|
.i_uxCost(new_uxCost),
|
|
//changed
|
|
.i_uzCost(new_uzCost),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__35),
|
|
.i_uxNumerator(uxNumerator__35),
|
|
.i_uyNumerator(uyNumerator__35),
|
|
//changed
|
|
.i_uyCost(new_uyCost),
|
|
//changed),
|
|
.i_uxQuotient(new_uxQuotient),
|
|
//cahgned
|
|
.i_uyQuotient(new_uyQuotient),
|
|
//Outputs
|
|
.o_sint(sint__36),
|
|
.o_cost(cost__36),
|
|
.o_sinp(sinp__36),
|
|
.o_cosp(cosp__36),
|
|
.o_sintCosp(sintCosp__36),
|
|
.o_sintSinp(sintSinp__36),
|
|
.o_uz2(uz2__36),
|
|
.o_uxUz(uxUz__36),
|
|
.o_uyUz(uyUz__36),
|
|
.o_uySintSinp(uySintSinp__36),
|
|
.o_oneMinusUz2(oneMinusUz2__36),
|
|
.o_uyUzSintCosp(uyUzSintCosp__36),
|
|
.o_uxUzSintCosp(uxUzSintCosp__36),
|
|
.o_uxSintSinp(uxSintSinp__36),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__36),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__36),
|
|
.o_uxCost(uxCost__36),
|
|
.o_uzCost(uzCost__36),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__36),
|
|
.o_uxNumerator(uxNumerator__36),
|
|
.o_uyNumerator(uyNumerator__36),
|
|
.o_uyCost(uyCost__36),
|
|
.o_uxQuotient(uxQuotient__36),
|
|
.o_uyQuotient(uyQuotient__36)
|
|
);
|
|
|
|
InternalsBlock pipeReg37(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__36),
|
|
.i_cost(cost__36),
|
|
.i_sinp(sinp__36),
|
|
.i_cosp(cosp__36),
|
|
.i_sintCosp(sintCosp__36),
|
|
.i_sintSinp(sintSinp__36),
|
|
.i_uz2(uz2__36),
|
|
.i_uxUz(uxUz__36),
|
|
.i_uyUz(uyUz__36),
|
|
.i_uySintSinp(uySintSinp__36),
|
|
.i_oneMinusUz2(oneMinusUz2__36),
|
|
.i_uyUzSintCosp(uyUzSintCosp__36),
|
|
.i_uxUzSintCosp(uxUzSintCosp__36),
|
|
.i_uxSintSinp(uxSintSinp__36),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__36),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__36),
|
|
.i_uxCost(uxCost__36),
|
|
.i_uzCost(uzCost__36),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__36),
|
|
.i_uxNumerator(uxNumerator__36),
|
|
.i_uyNumerator(uyNumerator__36),
|
|
.i_uyCost(uyCost__36),
|
|
.i_uxQuotient(uxQuotient__36),
|
|
.i_uyQuotient(uyQuotient__36),
|
|
//Outputs
|
|
.o_sint(sint__37),
|
|
.o_cost(cost__37),
|
|
.o_sinp(sinp__37),
|
|
.o_cosp(cosp__37),
|
|
.o_sintCosp(sintCosp__37),
|
|
.o_sintSinp(sintSinp__37),
|
|
.o_uz2(uz2__37),
|
|
.o_uxUz(uxUz__37),
|
|
.o_uyUz(uyUz__37),
|
|
.o_uySintSinp(uySintSinp__37),
|
|
.o_oneMinusUz2(oneMinusUz2__37),
|
|
.o_uyUzSintCosp(uyUzSintCosp__37),
|
|
.o_uxUzSintCosp(uxUzSintCosp__37),
|
|
.o_uxSintSinp(uxSintSinp__37),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__37),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__37),
|
|
.o_uxCost(uxCost__37),
|
|
.o_uzCost(uzCost__37),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__37),
|
|
.o_uxNumerator(uxNumerator__37),
|
|
.o_uyNumerator(uyNumerator__37),
|
|
.o_uyCost(uyCost__37),
|
|
.o_uxQuotient(uxQuotient__37),
|
|
.o_uyQuotient(uyQuotient__37)
|
|
);
|
|
|
|
|
|
|
|
InternalsBlock pipeReg32(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__31),
|
|
.i_cost(cost__31),
|
|
.i_sinp(sinp__31),
|
|
.i_cosp(cosp__31),
|
|
.i_sintCosp(sintCosp__31),
|
|
.i_sintSinp(sintSinp__31),
|
|
.i_uz2(uz2__31),
|
|
.i_uxUz(uxUz__31),
|
|
.i_uyUz(uyUz__31),
|
|
.i_uySintSinp(uySintSinp__31),
|
|
.i_oneMinusUz2(oneMinusUz2__31),
|
|
.i_uyUzSintCosp(uyUzSintCosp__31),
|
|
.i_uxUzSintCosp(uxUzSintCosp__31),
|
|
.i_uxSintSinp(uxSintSinp__31),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__31),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__31),
|
|
.i_uxCost(uxCost__31),
|
|
.i_uzCost(uzCost__31),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__31),
|
|
.i_uxNumerator(uxNumerator__31),
|
|
.i_uyNumerator(uyNumerator__31),
|
|
.i_uyCost(uyCost__31),
|
|
.i_uxQuotient(uxQuotient__31),
|
|
.i_uyQuotient(uyQuotient__31),
|
|
//Outputs
|
|
.o_sint(sint__32),
|
|
.o_cost(cost__32),
|
|
.o_sinp(sinp__32),
|
|
.o_cosp(cosp__32),
|
|
.o_sintCosp(sintCosp__32),
|
|
.o_sintSinp(sintSinp__32),
|
|
.o_uz2(uz2__32),
|
|
.o_uxUz(uxUz__32),
|
|
.o_uyUz(uyUz__32),
|
|
.o_uySintSinp(uySintSinp__32),
|
|
.o_oneMinusUz2(oneMinusUz2__32),
|
|
.o_uyUzSintCosp(uyUzSintCosp__32),
|
|
.o_uxUzSintCosp(uxUzSintCosp__32),
|
|
.o_uxSintSinp(uxSintSinp__32),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__32),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__32),
|
|
.o_uxCost(uxCost__32),
|
|
.o_uzCost(uzCost__32),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__32),
|
|
.o_uxNumerator(uxNumerator__32),
|
|
.o_uyNumerator(uyNumerator__32),
|
|
.o_uyCost(uyCost__32),
|
|
.o_uxQuotient(uxQuotient__32),
|
|
.o_uyQuotient(uyQuotient__32)
|
|
);
|
|
|
|
InternalsBlock pipeReg31(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__30),
|
|
.i_cost(cost__30),
|
|
.i_sinp(sinp__30),
|
|
.i_cosp(cosp__30),
|
|
.i_sintCosp(sintCosp__30),
|
|
.i_sintSinp(sintSinp__30),
|
|
.i_uz2(uz2__30),
|
|
.i_uxUz(uxUz__30),
|
|
.i_uyUz(uyUz__30),
|
|
.i_uySintSinp(uySintSinp__30),
|
|
.i_oneMinusUz2(oneMinusUz2__30),
|
|
.i_uyUzSintCosp(uyUzSintCosp__30),
|
|
.i_uxUzSintCosp(uxUzSintCosp__30),
|
|
.i_uxSintSinp(uxSintSinp__30),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__30),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__30),
|
|
.i_uxCost(uxCost__30),
|
|
.i_uzCost(uzCost__30),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__30),
|
|
.i_uxNumerator(uxNumerator__30),
|
|
.i_uyNumerator(uyNumerator__30),
|
|
.i_uyCost(uyCost__30),
|
|
.i_uxQuotient(uxQuotient__30),
|
|
.i_uyQuotient(uyQuotient__30),
|
|
//Outputs
|
|
.o_sint(sint__31),
|
|
.o_cost(cost__31),
|
|
.o_sinp(sinp__31),
|
|
.o_cosp(cosp__31),
|
|
.o_sintCosp(sintCosp__31),
|
|
.o_sintSinp(sintSinp__31),
|
|
.o_uz2(uz2__31),
|
|
.o_uxUz(uxUz__31),
|
|
.o_uyUz(uyUz__31),
|
|
.o_uySintSinp(uySintSinp__31),
|
|
.o_oneMinusUz2(oneMinusUz2__31),
|
|
.o_uyUzSintCosp(uyUzSintCosp__31),
|
|
.o_uxUzSintCosp(uxUzSintCosp__31),
|
|
.o_uxSintSinp(uxSintSinp__31),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__31),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__31),
|
|
.o_uxCost(uxCost__31),
|
|
.o_uzCost(uzCost__31),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__31),
|
|
.o_uxNumerator(uxNumerator__31),
|
|
.o_uyNumerator(uyNumerator__31),
|
|
.o_uyCost(uyCost__31),
|
|
.o_uxQuotient(uxQuotient__31),
|
|
.o_uyQuotient(uyQuotient__31)
|
|
);
|
|
|
|
InternalsBlock pipeReg30(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__29),
|
|
.i_cost(cost__29),
|
|
.i_sinp(sinp__29),
|
|
.i_cosp(cosp__29),
|
|
.i_sintCosp(sintCosp__29),
|
|
.i_sintSinp(sintSinp__29),
|
|
.i_uz2(uz2__29),
|
|
.i_uxUz(uxUz__29),
|
|
.i_uyUz(uyUz__29),
|
|
.i_uySintSinp(uySintSinp__29),
|
|
.i_oneMinusUz2(oneMinusUz2__29),
|
|
.i_uyUzSintCosp(uyUzSintCosp__29),
|
|
.i_uxUzSintCosp(uxUzSintCosp__29),
|
|
.i_uxSintSinp(uxSintSinp__29),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__29),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__29),
|
|
.i_uxCost(uxCost__29),
|
|
.i_uzCost(uzCost__29),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__29),
|
|
.i_uxNumerator(uxNumerator__29),
|
|
.i_uyNumerator(uyNumerator__29),
|
|
.i_uyCost(uyCost__29),
|
|
.i_uxQuotient(uxQuotient__29),
|
|
.i_uyQuotient(uyQuotient__29),
|
|
//Outputs
|
|
.o_sint(sint__30),
|
|
.o_cost(cost__30),
|
|
.o_sinp(sinp__30),
|
|
.o_cosp(cosp__30),
|
|
.o_sintCosp(sintCosp__30),
|
|
.o_sintSinp(sintSinp__30),
|
|
.o_uz2(uz2__30),
|
|
.o_uxUz(uxUz__30),
|
|
.o_uyUz(uyUz__30),
|
|
.o_uySintSinp(uySintSinp__30),
|
|
.o_oneMinusUz2(oneMinusUz2__30),
|
|
.o_uyUzSintCosp(uyUzSintCosp__30),
|
|
.o_uxUzSintCosp(uxUzSintCosp__30),
|
|
.o_uxSintSinp(uxSintSinp__30),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__30),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__30),
|
|
.o_uxCost(uxCost__30),
|
|
.o_uzCost(uzCost__30),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__30),
|
|
.o_uxNumerator(uxNumerator__30),
|
|
.o_uyNumerator(uyNumerator__30),
|
|
.o_uyCost(uyCost__30),
|
|
.o_uxQuotient(uxQuotient__30),
|
|
.o_uyQuotient(uyQuotient__30)
|
|
);
|
|
|
|
InternalsBlock pipeReg29(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__28),
|
|
.i_cost(cost__28),
|
|
.i_sinp(sinp__28),
|
|
.i_cosp(cosp__28),
|
|
.i_sintCosp(sintCosp__28),
|
|
.i_sintSinp(sintSinp__28),
|
|
.i_uz2(uz2__28),
|
|
.i_uxUz(uxUz__28),
|
|
.i_uyUz(uyUz__28),
|
|
.i_uySintSinp(uySintSinp__28),
|
|
.i_oneMinusUz2(oneMinusUz2__28),
|
|
.i_uyUzSintCosp(uyUzSintCosp__28),
|
|
.i_uxUzSintCosp(uxUzSintCosp__28),
|
|
.i_uxSintSinp(uxSintSinp__28),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__28),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__28),
|
|
.i_uxCost(uxCost__28),
|
|
.i_uzCost(uzCost__28),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__28),
|
|
.i_uxNumerator(uxNumerator__28),
|
|
.i_uyNumerator(uyNumerator__28),
|
|
.i_uyCost(uyCost__28),
|
|
.i_uxQuotient(uxQuotient__28),
|
|
.i_uyQuotient(uyQuotient__28),
|
|
//Outputs
|
|
.o_sint(sint__29),
|
|
.o_cost(cost__29),
|
|
.o_sinp(sinp__29),
|
|
.o_cosp(cosp__29),
|
|
.o_sintCosp(sintCosp__29),
|
|
.o_sintSinp(sintSinp__29),
|
|
.o_uz2(uz2__29),
|
|
.o_uxUz(uxUz__29),
|
|
.o_uyUz(uyUz__29),
|
|
.o_uySintSinp(uySintSinp__29),
|
|
.o_oneMinusUz2(oneMinusUz2__29),
|
|
.o_uyUzSintCosp(uyUzSintCosp__29),
|
|
.o_uxUzSintCosp(uxUzSintCosp__29),
|
|
.o_uxSintSinp(uxSintSinp__29),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__29),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__29),
|
|
.o_uxCost(uxCost__29),
|
|
.o_uzCost(uzCost__29),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__29),
|
|
.o_uxNumerator(uxNumerator__29),
|
|
.o_uyNumerator(uyNumerator__29),
|
|
.o_uyCost(uyCost__29),
|
|
.o_uxQuotient(uxQuotient__29),
|
|
.o_uyQuotient(uyQuotient__29)
|
|
);
|
|
|
|
InternalsBlock pipeReg28(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__27),
|
|
.i_cost(cost__27),
|
|
.i_sinp(sinp__27),
|
|
.i_cosp(cosp__27),
|
|
.i_sintCosp(sintCosp__27),
|
|
.i_sintSinp(sintSinp__27),
|
|
.i_uz2(uz2__27),
|
|
.i_uxUz(uxUz__27),
|
|
.i_uyUz(uyUz__27),
|
|
.i_uySintSinp(uySintSinp__27),
|
|
.i_oneMinusUz2(oneMinusUz2__27),
|
|
.i_uyUzSintCosp(uyUzSintCosp__27),
|
|
.i_uxUzSintCosp(uxUzSintCosp__27),
|
|
.i_uxSintSinp(uxSintSinp__27),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__27),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__27),
|
|
.i_uxCost(uxCost__27),
|
|
.i_uzCost(uzCost__27),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__27),
|
|
.i_uxNumerator(uxNumerator__27),
|
|
.i_uyNumerator(uyNumerator__27),
|
|
.i_uyCost(uyCost__27),
|
|
.i_uxQuotient(uxQuotient__27),
|
|
.i_uyQuotient(uyQuotient__27),
|
|
//Outputs
|
|
.o_sint(sint__28),
|
|
.o_cost(cost__28),
|
|
.o_sinp(sinp__28),
|
|
.o_cosp(cosp__28),
|
|
.o_sintCosp(sintCosp__28),
|
|
.o_sintSinp(sintSinp__28),
|
|
.o_uz2(uz2__28),
|
|
.o_uxUz(uxUz__28),
|
|
.o_uyUz(uyUz__28),
|
|
.o_uySintSinp(uySintSinp__28),
|
|
.o_oneMinusUz2(oneMinusUz2__28),
|
|
.o_uyUzSintCosp(uyUzSintCosp__28),
|
|
.o_uxUzSintCosp(uxUzSintCosp__28),
|
|
.o_uxSintSinp(uxSintSinp__28),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__28),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__28),
|
|
.o_uxCost(uxCost__28),
|
|
.o_uzCost(uzCost__28),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__28),
|
|
.o_uxNumerator(uxNumerator__28),
|
|
.o_uyNumerator(uyNumerator__28),
|
|
.o_uyCost(uyCost__28),
|
|
.o_uxQuotient(uxQuotient__28),
|
|
.o_uyQuotient(uyQuotient__28)
|
|
);
|
|
|
|
InternalsBlock pipeReg27(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__26),
|
|
.i_cost(cost__26),
|
|
.i_sinp(sinp__26),
|
|
.i_cosp(cosp__26),
|
|
.i_sintCosp(sintCosp__26),
|
|
.i_sintSinp(sintSinp__26),
|
|
.i_uz2(uz2__26),
|
|
.i_uxUz(uxUz__26),
|
|
.i_uyUz(uyUz__26),
|
|
.i_uySintSinp(uySintSinp__26),
|
|
.i_oneMinusUz2(oneMinusUz2__26),
|
|
.i_uyUzSintCosp(uyUzSintCosp__26),
|
|
.i_uxUzSintCosp(uxUzSintCosp__26),
|
|
.i_uxSintSinp(uxSintSinp__26),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__26),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__26),
|
|
.i_uxCost(uxCost__26),
|
|
.i_uzCost(uzCost__26),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__26),
|
|
.i_uxNumerator(uxNumerator__26),
|
|
.i_uyNumerator(uyNumerator__26),
|
|
.i_uyCost(uyCost__26),
|
|
.i_uxQuotient(uxQuotient__26),
|
|
.i_uyQuotient(uyQuotient__26),
|
|
//Outputs
|
|
.o_sint(sint__27),
|
|
.o_cost(cost__27),
|
|
.o_sinp(sinp__27),
|
|
.o_cosp(cosp__27),
|
|
.o_sintCosp(sintCosp__27),
|
|
.o_sintSinp(sintSinp__27),
|
|
.o_uz2(uz2__27),
|
|
.o_uxUz(uxUz__27),
|
|
.o_uyUz(uyUz__27),
|
|
.o_uySintSinp(uySintSinp__27),
|
|
.o_oneMinusUz2(oneMinusUz2__27),
|
|
.o_uyUzSintCosp(uyUzSintCosp__27),
|
|
.o_uxUzSintCosp(uxUzSintCosp__27),
|
|
.o_uxSintSinp(uxSintSinp__27),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__27),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__27),
|
|
.o_uxCost(uxCost__27),
|
|
.o_uzCost(uzCost__27),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__27),
|
|
.o_uxNumerator(uxNumerator__27),
|
|
.o_uyNumerator(uyNumerator__27),
|
|
.o_uyCost(uyCost__27),
|
|
.o_uxQuotient(uxQuotient__27),
|
|
.o_uyQuotient(uyQuotient__27)
|
|
);
|
|
|
|
InternalsBlock pipeReg26(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__25),
|
|
.i_cost(cost__25),
|
|
.i_sinp(sinp__25),
|
|
.i_cosp(cosp__25),
|
|
.i_sintCosp(sintCosp__25),
|
|
.i_sintSinp(sintSinp__25),
|
|
.i_uz2(uz2__25),
|
|
.i_uxUz(uxUz__25),
|
|
.i_uyUz(uyUz__25),
|
|
.i_uySintSinp(uySintSinp__25),
|
|
.i_oneMinusUz2(oneMinusUz2__25),
|
|
.i_uyUzSintCosp(uyUzSintCosp__25),
|
|
.i_uxUzSintCosp(uxUzSintCosp__25),
|
|
.i_uxSintSinp(uxSintSinp__25),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__25),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__25),
|
|
.i_uxCost(uxCost__25),
|
|
.i_uzCost(uzCost__25),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__25),
|
|
.i_uxNumerator(uxNumerator__25),
|
|
.i_uyNumerator(uyNumerator__25),
|
|
.i_uyCost(uyCost__25),
|
|
.i_uxQuotient(uxQuotient__25),
|
|
.i_uyQuotient(uyQuotient__25),
|
|
//Outputs
|
|
.o_sint(sint__26),
|
|
.o_cost(cost__26),
|
|
.o_sinp(sinp__26),
|
|
.o_cosp(cosp__26),
|
|
.o_sintCosp(sintCosp__26),
|
|
.o_sintSinp(sintSinp__26),
|
|
.o_uz2(uz2__26),
|
|
.o_uxUz(uxUz__26),
|
|
.o_uyUz(uyUz__26),
|
|
.o_uySintSinp(uySintSinp__26),
|
|
.o_oneMinusUz2(oneMinusUz2__26),
|
|
.o_uyUzSintCosp(uyUzSintCosp__26),
|
|
.o_uxUzSintCosp(uxUzSintCosp__26),
|
|
.o_uxSintSinp(uxSintSinp__26),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__26),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__26),
|
|
.o_uxCost(uxCost__26),
|
|
.o_uzCost(uzCost__26),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__26),
|
|
.o_uxNumerator(uxNumerator__26),
|
|
.o_uyNumerator(uyNumerator__26),
|
|
.o_uyCost(uyCost__26),
|
|
.o_uxQuotient(uxQuotient__26),
|
|
.o_uyQuotient(uyQuotient__26)
|
|
);
|
|
|
|
InternalsBlock pipeReg25(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__24),
|
|
.i_cost(cost__24),
|
|
.i_sinp(sinp__24),
|
|
.i_cosp(cosp__24),
|
|
.i_sintCosp(sintCosp__24),
|
|
.i_sintSinp(sintSinp__24),
|
|
.i_uz2(uz2__24),
|
|
.i_uxUz(uxUz__24),
|
|
.i_uyUz(uyUz__24),
|
|
.i_uySintSinp(uySintSinp__24),
|
|
.i_oneMinusUz2(oneMinusUz2__24),
|
|
.i_uyUzSintCosp(uyUzSintCosp__24),
|
|
.i_uxUzSintCosp(uxUzSintCosp__24),
|
|
.i_uxSintSinp(uxSintSinp__24),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__24),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__24),
|
|
.i_uxCost(uxCost__24),
|
|
.i_uzCost(uzCost__24),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__24),
|
|
.i_uxNumerator(uxNumerator__24),
|
|
.i_uyNumerator(uyNumerator__24),
|
|
.i_uyCost(uyCost__24),
|
|
.i_uxQuotient(uxQuotient__24),
|
|
.i_uyQuotient(uyQuotient__24),
|
|
//Outputs
|
|
.o_sint(sint__25),
|
|
.o_cost(cost__25),
|
|
.o_sinp(sinp__25),
|
|
.o_cosp(cosp__25),
|
|
.o_sintCosp(sintCosp__25),
|
|
.o_sintSinp(sintSinp__25),
|
|
.o_uz2(uz2__25),
|
|
.o_uxUz(uxUz__25),
|
|
.o_uyUz(uyUz__25),
|
|
.o_uySintSinp(uySintSinp__25),
|
|
.o_oneMinusUz2(oneMinusUz2__25),
|
|
.o_uyUzSintCosp(uyUzSintCosp__25),
|
|
.o_uxUzSintCosp(uxUzSintCosp__25),
|
|
.o_uxSintSinp(uxSintSinp__25),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__25),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__25),
|
|
.o_uxCost(uxCost__25),
|
|
.o_uzCost(uzCost__25),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__25),
|
|
.o_uxNumerator(uxNumerator__25),
|
|
.o_uyNumerator(uyNumerator__25),
|
|
.o_uyCost(uyCost__25),
|
|
.o_uxQuotient(uxQuotient__25),
|
|
.o_uyQuotient(uyQuotient__25)
|
|
);
|
|
|
|
InternalsBlock pipeReg24(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__23),
|
|
.i_cost(cost__23),
|
|
.i_sinp(sinp__23),
|
|
.i_cosp(cosp__23),
|
|
.i_sintCosp(sintCosp__23),
|
|
.i_sintSinp(sintSinp__23),
|
|
.i_uz2(uz2__23),
|
|
.i_uxUz(uxUz__23),
|
|
.i_uyUz(uyUz__23),
|
|
.i_uySintSinp(uySintSinp__23),
|
|
.i_oneMinusUz2(oneMinusUz2__23),
|
|
.i_uyUzSintCosp(uyUzSintCosp__23),
|
|
.i_uxUzSintCosp(uxUzSintCosp__23),
|
|
.i_uxSintSinp(uxSintSinp__23),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__23),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__23),
|
|
.i_uxCost(uxCost__23),
|
|
.i_uzCost(uzCost__23),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__23),
|
|
.i_uxNumerator(uxNumerator__23),
|
|
.i_uyNumerator(uyNumerator__23),
|
|
.i_uyCost(uyCost__23),
|
|
.i_uxQuotient(uxQuotient__23),
|
|
.i_uyQuotient(uyQuotient__23),
|
|
//Outputs
|
|
.o_sint(sint__24),
|
|
.o_cost(cost__24),
|
|
.o_sinp(sinp__24),
|
|
.o_cosp(cosp__24),
|
|
.o_sintCosp(sintCosp__24),
|
|
.o_sintSinp(sintSinp__24),
|
|
.o_uz2(uz2__24),
|
|
.o_uxUz(uxUz__24),
|
|
.o_uyUz(uyUz__24),
|
|
.o_uySintSinp(uySintSinp__24),
|
|
.o_oneMinusUz2(oneMinusUz2__24),
|
|
.o_uyUzSintCosp(uyUzSintCosp__24),
|
|
.o_uxUzSintCosp(uxUzSintCosp__24),
|
|
.o_uxSintSinp(uxSintSinp__24),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__24),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__24),
|
|
.o_uxCost(uxCost__24),
|
|
.o_uzCost(uzCost__24),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__24),
|
|
.o_uxNumerator(uxNumerator__24),
|
|
.o_uyNumerator(uyNumerator__24),
|
|
.o_uyCost(uyCost__24),
|
|
.o_uxQuotient(uxQuotient__24),
|
|
.o_uyQuotient(uyQuotient__24)
|
|
);
|
|
|
|
InternalsBlock pipeReg23(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__22),
|
|
.i_cost(cost__22),
|
|
.i_sinp(sinp__22),
|
|
.i_cosp(cosp__22),
|
|
.i_sintCosp(sintCosp__22),
|
|
.i_sintSinp(sintSinp__22),
|
|
.i_uz2(uz2__22),
|
|
.i_uxUz(uxUz__22),
|
|
.i_uyUz(uyUz__22),
|
|
.i_uySintSinp(uySintSinp__22),
|
|
.i_oneMinusUz2(oneMinusUz2__22),
|
|
.i_uyUzSintCosp(uyUzSintCosp__22),
|
|
.i_uxUzSintCosp(uxUzSintCosp__22),
|
|
.i_uxSintSinp(uxSintSinp__22),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__22),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__22),
|
|
.i_uxCost(uxCost__22),
|
|
.i_uzCost(uzCost__22),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__22),
|
|
.i_uxNumerator(uxNumerator__22),
|
|
.i_uyNumerator(uyNumerator__22),
|
|
.i_uyCost(uyCost__22),
|
|
.i_uxQuotient(uxQuotient__22),
|
|
.i_uyQuotient(uyQuotient__22),
|
|
//Outputs
|
|
.o_sint(sint__23),
|
|
.o_cost(cost__23),
|
|
.o_sinp(sinp__23),
|
|
.o_cosp(cosp__23),
|
|
.o_sintCosp(sintCosp__23),
|
|
.o_sintSinp(sintSinp__23),
|
|
.o_uz2(uz2__23),
|
|
.o_uxUz(uxUz__23),
|
|
.o_uyUz(uyUz__23),
|
|
.o_uySintSinp(uySintSinp__23),
|
|
.o_oneMinusUz2(oneMinusUz2__23),
|
|
.o_uyUzSintCosp(uyUzSintCosp__23),
|
|
.o_uxUzSintCosp(uxUzSintCosp__23),
|
|
.o_uxSintSinp(uxSintSinp__23),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__23),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__23),
|
|
.o_uxCost(uxCost__23),
|
|
.o_uzCost(uzCost__23),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__23),
|
|
.o_uxNumerator(uxNumerator__23),
|
|
.o_uyNumerator(uyNumerator__23),
|
|
.o_uyCost(uyCost__23),
|
|
.o_uxQuotient(uxQuotient__23),
|
|
.o_uyQuotient(uyQuotient__23)
|
|
);
|
|
|
|
InternalsBlock pipeReg22(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__21),
|
|
.i_cost(cost__21),
|
|
.i_sinp(sinp__21),
|
|
.i_cosp(cosp__21),
|
|
.i_sintCosp(sintCosp__21),
|
|
.i_sintSinp(sintSinp__21),
|
|
.i_uz2(uz2__21),
|
|
.i_uxUz(uxUz__21),
|
|
.i_uyUz(uyUz__21),
|
|
.i_uySintSinp(uySintSinp__21),
|
|
.i_oneMinusUz2(oneMinusUz2__21),
|
|
.i_uyUzSintCosp(uyUzSintCosp__21),
|
|
.i_uxUzSintCosp(uxUzSintCosp__21),
|
|
.i_uxSintSinp(uxSintSinp__21),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__21),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__21),
|
|
.i_uxCost(uxCost__21),
|
|
.i_uzCost(uzCost__21),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__21),
|
|
.i_uxNumerator(uxNumerator__21),
|
|
.i_uyNumerator(uyNumerator__21),
|
|
.i_uyCost(uyCost__21),
|
|
.i_uxQuotient(uxQuotient__21),
|
|
.i_uyQuotient(uyQuotient__21),
|
|
//Outputs
|
|
.o_sint(sint__22),
|
|
.o_cost(cost__22),
|
|
.o_sinp(sinp__22),
|
|
.o_cosp(cosp__22),
|
|
.o_sintCosp(sintCosp__22),
|
|
.o_sintSinp(sintSinp__22),
|
|
.o_uz2(uz2__22),
|
|
.o_uxUz(uxUz__22),
|
|
.o_uyUz(uyUz__22),
|
|
.o_uySintSinp(uySintSinp__22),
|
|
.o_oneMinusUz2(oneMinusUz2__22),
|
|
.o_uyUzSintCosp(uyUzSintCosp__22),
|
|
.o_uxUzSintCosp(uxUzSintCosp__22),
|
|
.o_uxSintSinp(uxSintSinp__22),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__22),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__22),
|
|
.o_uxCost(uxCost__22),
|
|
.o_uzCost(uzCost__22),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__22),
|
|
.o_uxNumerator(uxNumerator__22),
|
|
.o_uyNumerator(uyNumerator__22),
|
|
.o_uyCost(uyCost__22),
|
|
.o_uxQuotient(uxQuotient__22),
|
|
.o_uyQuotient(uyQuotient__22)
|
|
);
|
|
|
|
InternalsBlock pipeReg21(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__20),
|
|
.i_cost(cost__20),
|
|
.i_sinp(sinp__20),
|
|
.i_cosp(cosp__20),
|
|
.i_sintCosp(sintCosp__20),
|
|
.i_sintSinp(sintSinp__20),
|
|
.i_uz2(uz2__20),
|
|
.i_uxUz(uxUz__20),
|
|
.i_uyUz(uyUz__20),
|
|
.i_uySintSinp(uySintSinp__20),
|
|
.i_oneMinusUz2(oneMinusUz2__20),
|
|
.i_uyUzSintCosp(uyUzSintCosp__20),
|
|
.i_uxUzSintCosp(uxUzSintCosp__20),
|
|
.i_uxSintSinp(uxSintSinp__20),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__20),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__20),
|
|
.i_uxCost(uxCost__20),
|
|
.i_uzCost(uzCost__20),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__20),
|
|
.i_uxNumerator(uxNumerator__20),
|
|
.i_uyNumerator(uyNumerator__20),
|
|
.i_uyCost(uyCost__20),
|
|
.i_uxQuotient(uxQuotient__20),
|
|
.i_uyQuotient(uyQuotient__20),
|
|
//Outputs
|
|
.o_sint(sint__21),
|
|
.o_cost(cost__21),
|
|
.o_sinp(sinp__21),
|
|
.o_cosp(cosp__21),
|
|
.o_sintCosp(sintCosp__21),
|
|
.o_sintSinp(sintSinp__21),
|
|
.o_uz2(uz2__21),
|
|
.o_uxUz(uxUz__21),
|
|
.o_uyUz(uyUz__21),
|
|
.o_uySintSinp(uySintSinp__21),
|
|
.o_oneMinusUz2(oneMinusUz2__21),
|
|
.o_uyUzSintCosp(uyUzSintCosp__21),
|
|
.o_uxUzSintCosp(uxUzSintCosp__21),
|
|
.o_uxSintSinp(uxSintSinp__21),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__21),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__21),
|
|
.o_uxCost(uxCost__21),
|
|
.o_uzCost(uzCost__21),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__21),
|
|
.o_uxNumerator(uxNumerator__21),
|
|
.o_uyNumerator(uyNumerator__21),
|
|
.o_uyCost(uyCost__21),
|
|
.o_uxQuotient(uxQuotient__21),
|
|
.o_uyQuotient(uyQuotient__21)
|
|
);
|
|
|
|
InternalsBlock pipeReg20(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__19),
|
|
.i_cost(cost__19),
|
|
.i_sinp(sinp__19),
|
|
.i_cosp(cosp__19),
|
|
.i_sintCosp(sintCosp__19),
|
|
.i_sintSinp(sintSinp__19),
|
|
.i_uz2(uz2__19),
|
|
.i_uxUz(uxUz__19),
|
|
.i_uyUz(uyUz__19),
|
|
.i_uySintSinp(uySintSinp__19),
|
|
.i_oneMinusUz2(oneMinusUz2__19),
|
|
.i_uyUzSintCosp(uyUzSintCosp__19),
|
|
.i_uxUzSintCosp(uxUzSintCosp__19),
|
|
.i_uxSintSinp(uxSintSinp__19),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__19),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__19),
|
|
.i_uxCost(uxCost__19),
|
|
.i_uzCost(uzCost__19),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__19),
|
|
.i_uxNumerator(uxNumerator__19),
|
|
.i_uyNumerator(uyNumerator__19),
|
|
.i_uyCost(uyCost__19),
|
|
.i_uxQuotient(uxQuotient__19),
|
|
.i_uyQuotient(uyQuotient__19),
|
|
//Outputs
|
|
.o_sint(sint__20),
|
|
.o_cost(cost__20),
|
|
.o_sinp(sinp__20),
|
|
.o_cosp(cosp__20),
|
|
.o_sintCosp(sintCosp__20),
|
|
.o_sintSinp(sintSinp__20),
|
|
.o_uz2(uz2__20),
|
|
.o_uxUz(uxUz__20),
|
|
.o_uyUz(uyUz__20),
|
|
.o_uySintSinp(uySintSinp__20),
|
|
.o_oneMinusUz2(oneMinusUz2__20),
|
|
.o_uyUzSintCosp(uyUzSintCosp__20),
|
|
.o_uxUzSintCosp(uxUzSintCosp__20),
|
|
.o_uxSintSinp(uxSintSinp__20),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__20),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__20),
|
|
.o_uxCost(uxCost__20),
|
|
.o_uzCost(uzCost__20),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__20),
|
|
.o_uxNumerator(uxNumerator__20),
|
|
.o_uyNumerator(uyNumerator__20),
|
|
.o_uyCost(uyCost__20),
|
|
.o_uxQuotient(uxQuotient__20),
|
|
.o_uyQuotient(uyQuotient__20)
|
|
);
|
|
|
|
InternalsBlock pipeReg19(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__18),
|
|
.i_cost(cost__18),
|
|
.i_sinp(sinp__18),
|
|
.i_cosp(cosp__18),
|
|
.i_sintCosp(sintCosp__18),
|
|
.i_sintSinp(sintSinp__18),
|
|
.i_uz2(uz2__18),
|
|
.i_uxUz(uxUz__18),
|
|
.i_uyUz(uyUz__18),
|
|
.i_uySintSinp(uySintSinp__18),
|
|
.i_oneMinusUz2(oneMinusUz2__18),
|
|
.i_uyUzSintCosp(uyUzSintCosp__18),
|
|
.i_uxUzSintCosp(uxUzSintCosp__18),
|
|
.i_uxSintSinp(uxSintSinp__18),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__18),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__18),
|
|
.i_uxCost(uxCost__18),
|
|
.i_uzCost(uzCost__18),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__18),
|
|
.i_uxNumerator(uxNumerator__18),
|
|
.i_uyNumerator(uyNumerator__18),
|
|
.i_uyCost(uyCost__18),
|
|
.i_uxQuotient(uxQuotient__18),
|
|
.i_uyQuotient(uyQuotient__18),
|
|
//Outputs
|
|
.o_sint(sint__19),
|
|
.o_cost(cost__19),
|
|
.o_sinp(sinp__19),
|
|
.o_cosp(cosp__19),
|
|
.o_sintCosp(sintCosp__19),
|
|
.o_sintSinp(sintSinp__19),
|
|
.o_uz2(uz2__19),
|
|
.o_uxUz(uxUz__19),
|
|
.o_uyUz(uyUz__19),
|
|
.o_uySintSinp(uySintSinp__19),
|
|
.o_oneMinusUz2(oneMinusUz2__19),
|
|
.o_uyUzSintCosp(uyUzSintCosp__19),
|
|
.o_uxUzSintCosp(uxUzSintCosp__19),
|
|
.o_uxSintSinp(uxSintSinp__19),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__19),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__19),
|
|
.o_uxCost(uxCost__19),
|
|
.o_uzCost(uzCost__19),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__19),
|
|
.o_uxNumerator(uxNumerator__19),
|
|
.o_uyNumerator(uyNumerator__19),
|
|
.o_uyCost(uyCost__19),
|
|
.o_uxQuotient(uxQuotient__19),
|
|
.o_uyQuotient(uyQuotient__19)
|
|
);
|
|
|
|
InternalsBlock pipeReg18(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__17),
|
|
.i_cost(cost__17),
|
|
.i_sinp(sinp__17),
|
|
.i_cosp(cosp__17),
|
|
.i_sintCosp(sintCosp__17),
|
|
.i_sintSinp(sintSinp__17),
|
|
.i_uz2(uz2__17),
|
|
.i_uxUz(uxUz__17),
|
|
.i_uyUz(uyUz__17),
|
|
.i_uySintSinp(uySintSinp__17),
|
|
.i_oneMinusUz2(oneMinusUz2__17),
|
|
.i_uyUzSintCosp(uyUzSintCosp__17),
|
|
.i_uxUzSintCosp(uxUzSintCosp__17),
|
|
.i_uxSintSinp(uxSintSinp__17),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__17),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__17),
|
|
.i_uxCost(uxCost__17),
|
|
.i_uzCost(uzCost__17),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__17),
|
|
.i_uxNumerator(uxNumerator__17),
|
|
.i_uyNumerator(uyNumerator__17),
|
|
.i_uyCost(uyCost__17),
|
|
.i_uxQuotient(uxQuotient__17),
|
|
.i_uyQuotient(uyQuotient__17),
|
|
//Outputs
|
|
.o_sint(sint__18),
|
|
.o_cost(cost__18),
|
|
.o_sinp(sinp__18),
|
|
.o_cosp(cosp__18),
|
|
.o_sintCosp(sintCosp__18),
|
|
.o_sintSinp(sintSinp__18),
|
|
.o_uz2(uz2__18),
|
|
.o_uxUz(uxUz__18),
|
|
.o_uyUz(uyUz__18),
|
|
.o_uySintSinp(uySintSinp__18),
|
|
.o_oneMinusUz2(oneMinusUz2__18),
|
|
.o_uyUzSintCosp(uyUzSintCosp__18),
|
|
.o_uxUzSintCosp(uxUzSintCosp__18),
|
|
.o_uxSintSinp(uxSintSinp__18),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__18),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__18),
|
|
.o_uxCost(uxCost__18),
|
|
.o_uzCost(uzCost__18),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__18),
|
|
.o_uxNumerator(uxNumerator__18),
|
|
.o_uyNumerator(uyNumerator__18),
|
|
.o_uyCost(uyCost__18),
|
|
.o_uxQuotient(uxQuotient__18),
|
|
.o_uyQuotient(uyQuotient__18)
|
|
);
|
|
|
|
InternalsBlock pipeReg17(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__16),
|
|
.i_cost(cost__16),
|
|
.i_sinp(sinp__16),
|
|
.i_cosp(cosp__16),
|
|
.i_sintCosp(sintCosp__16),
|
|
.i_sintSinp(sintSinp__16),
|
|
.i_uz2(uz2__16),
|
|
.i_uxUz(uxUz__16),
|
|
.i_uyUz(uyUz__16),
|
|
.i_uySintSinp(uySintSinp__16),
|
|
.i_oneMinusUz2(oneMinusUz2__16),
|
|
.i_uyUzSintCosp(uyUzSintCosp__16),
|
|
.i_uxUzSintCosp(uxUzSintCosp__16),
|
|
.i_uxSintSinp(uxSintSinp__16),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__16),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__16),
|
|
.i_uxCost(uxCost__16),
|
|
.i_uzCost(uzCost__16),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__16),
|
|
.i_uxNumerator(uxNumerator__16),
|
|
.i_uyNumerator(uyNumerator__16),
|
|
.i_uyCost(uyCost__16),
|
|
.i_uxQuotient(uxQuotient__16),
|
|
.i_uyQuotient(uyQuotient__16),
|
|
//Outputs
|
|
.o_sint(sint__17),
|
|
.o_cost(cost__17),
|
|
.o_sinp(sinp__17),
|
|
.o_cosp(cosp__17),
|
|
.o_sintCosp(sintCosp__17),
|
|
.o_sintSinp(sintSinp__17),
|
|
.o_uz2(uz2__17),
|
|
.o_uxUz(uxUz__17),
|
|
.o_uyUz(uyUz__17),
|
|
.o_uySintSinp(uySintSinp__17),
|
|
.o_oneMinusUz2(oneMinusUz2__17),
|
|
.o_uyUzSintCosp(uyUzSintCosp__17),
|
|
.o_uxUzSintCosp(uxUzSintCosp__17),
|
|
.o_uxSintSinp(uxSintSinp__17),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__17),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__17),
|
|
.o_uxCost(uxCost__17),
|
|
.o_uzCost(uzCost__17),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__17),
|
|
.o_uxNumerator(uxNumerator__17),
|
|
.o_uyNumerator(uyNumerator__17),
|
|
.o_uyCost(uyCost__17),
|
|
.o_uxQuotient(uxQuotient__17),
|
|
.o_uyQuotient(uyQuotient__17)
|
|
);
|
|
|
|
|
|
InternalsBlock pipeReg15(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__14),
|
|
.i_cost(cost__14),
|
|
.i_sinp(sinp__14),
|
|
.i_cosp(cosp__14),
|
|
.i_sintCosp(sintCosp__14),
|
|
.i_sintSinp(sintSinp__14),
|
|
.i_uz2(uz2__14),
|
|
.i_uxUz(uxUz__14),
|
|
.i_uyUz(uyUz__14),
|
|
.i_uySintSinp(uySintSinp__14),
|
|
.i_oneMinusUz2(oneMinusUz2__14),
|
|
.i_uyUzSintCosp(uyUzSintCosp__14),
|
|
.i_uxUzSintCosp(uxUzSintCosp__14),
|
|
.i_uxSintSinp(uxSintSinp__14),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__14),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__14),
|
|
.i_uxCost(uxCost__14),
|
|
.i_uzCost(uzCost__14),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__14),
|
|
.i_uxNumerator(uxNumerator__14),
|
|
.i_uyNumerator(uyNumerator__14),
|
|
.i_uyCost(uyCost__14),
|
|
.i_uxQuotient(uxQuotient__14),
|
|
.i_uyQuotient(uyQuotient__14),
|
|
//Outputs
|
|
.o_sint(sint__15),
|
|
.o_cost(cost__15),
|
|
.o_sinp(sinp__15),
|
|
.o_cosp(cosp__15),
|
|
.o_sintCosp(sintCosp__15),
|
|
.o_sintSinp(sintSinp__15),
|
|
.o_uz2(uz2__15),
|
|
.o_uxUz(uxUz__15),
|
|
.o_uyUz(uyUz__15),
|
|
.o_uySintSinp(uySintSinp__15),
|
|
.o_oneMinusUz2(oneMinusUz2__15),
|
|
.o_uyUzSintCosp(uyUzSintCosp__15),
|
|
.o_uxUzSintCosp(uxUzSintCosp__15),
|
|
.o_uxSintSinp(uxSintSinp__15),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__15),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__15),
|
|
.o_uxCost(uxCost__15),
|
|
.o_uzCost(uzCost__15),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__15),
|
|
.o_uxNumerator(uxNumerator__15),
|
|
.o_uyNumerator(uyNumerator__15),
|
|
.o_uyCost(uyCost__15),
|
|
.o_uxQuotient(uxQuotient__15),
|
|
.o_uyQuotient(uyQuotient__15)
|
|
);
|
|
|
|
InternalsBlock pipeReg14(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__13),
|
|
.i_cost(cost__13),
|
|
.i_sinp(sinp__13),
|
|
.i_cosp(cosp__13),
|
|
.i_sintCosp(sintCosp__13),
|
|
.i_sintSinp(sintSinp__13),
|
|
.i_uz2(uz2__13),
|
|
.i_uxUz(uxUz__13),
|
|
.i_uyUz(uyUz__13),
|
|
.i_uySintSinp(uySintSinp__13),
|
|
.i_oneMinusUz2(oneMinusUz2__13),
|
|
.i_uyUzSintCosp(uyUzSintCosp__13),
|
|
.i_uxUzSintCosp(uxUzSintCosp__13),
|
|
.i_uxSintSinp(uxSintSinp__13),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__13),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__13),
|
|
.i_uxCost(uxCost__13),
|
|
.i_uzCost(uzCost__13),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__13),
|
|
.i_uxNumerator(uxNumerator__13),
|
|
.i_uyNumerator(uyNumerator__13),
|
|
.i_uyCost(uyCost__13),
|
|
.i_uxQuotient(uxQuotient__13),
|
|
.i_uyQuotient(uyQuotient__13),
|
|
//Outputs
|
|
.o_sint(sint__14),
|
|
.o_cost(cost__14),
|
|
.o_sinp(sinp__14),
|
|
.o_cosp(cosp__14),
|
|
.o_sintCosp(sintCosp__14),
|
|
.o_sintSinp(sintSinp__14),
|
|
.o_uz2(uz2__14),
|
|
.o_uxUz(uxUz__14),
|
|
.o_uyUz(uyUz__14),
|
|
.o_uySintSinp(uySintSinp__14),
|
|
.o_oneMinusUz2(oneMinusUz2__14),
|
|
.o_uyUzSintCosp(uyUzSintCosp__14),
|
|
.o_uxUzSintCosp(uxUzSintCosp__14),
|
|
.o_uxSintSinp(uxSintSinp__14),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__14),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__14),
|
|
.o_uxCost(uxCost__14),
|
|
.o_uzCost(uzCost__14),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__14),
|
|
.o_uxNumerator(uxNumerator__14),
|
|
.o_uyNumerator(uyNumerator__14),
|
|
.o_uyCost(uyCost__14),
|
|
.o_uxQuotient(uxQuotient__14),
|
|
.o_uyQuotient(uyQuotient__14)
|
|
);
|
|
|
|
InternalsBlock pipeReg13(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__12),
|
|
.i_cost(cost__12),
|
|
.i_sinp(sinp__12),
|
|
.i_cosp(cosp__12),
|
|
.i_sintCosp(sintCosp__12),
|
|
.i_sintSinp(sintSinp__12),
|
|
.i_uz2(uz2__12),
|
|
.i_uxUz(uxUz__12),
|
|
.i_uyUz(uyUz__12),
|
|
.i_uySintSinp(uySintSinp__12),
|
|
.i_oneMinusUz2(oneMinusUz2__12),
|
|
.i_uyUzSintCosp(uyUzSintCosp__12),
|
|
.i_uxUzSintCosp(uxUzSintCosp__12),
|
|
.i_uxSintSinp(uxSintSinp__12),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__12),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__12),
|
|
.i_uxCost(uxCost__12),
|
|
.i_uzCost(uzCost__12),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__12),
|
|
.i_uxNumerator(uxNumerator__12),
|
|
.i_uyNumerator(uyNumerator__12),
|
|
.i_uyCost(uyCost__12),
|
|
.i_uxQuotient(uxQuotient__12),
|
|
.i_uyQuotient(uyQuotient__12),
|
|
//Outputs
|
|
.o_sint(sint__13),
|
|
.o_cost(cost__13),
|
|
.o_sinp(sinp__13),
|
|
.o_cosp(cosp__13),
|
|
.o_sintCosp(sintCosp__13),
|
|
.o_sintSinp(sintSinp__13),
|
|
.o_uz2(uz2__13),
|
|
.o_uxUz(uxUz__13),
|
|
.o_uyUz(uyUz__13),
|
|
.o_uySintSinp(uySintSinp__13),
|
|
.o_oneMinusUz2(oneMinusUz2__13),
|
|
.o_uyUzSintCosp(uyUzSintCosp__13),
|
|
.o_uxUzSintCosp(uxUzSintCosp__13),
|
|
.o_uxSintSinp(uxSintSinp__13),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__13),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__13),
|
|
.o_uxCost(uxCost__13),
|
|
.o_uzCost(uzCost__13),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__13),
|
|
.o_uxNumerator(uxNumerator__13),
|
|
.o_uyNumerator(uyNumerator__13),
|
|
.o_uyCost(uyCost__13),
|
|
.o_uxQuotient(uxQuotient__13),
|
|
.o_uyQuotient(uyQuotient__13)
|
|
);
|
|
|
|
InternalsBlock pipeReg12(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__11),
|
|
.i_cost(cost__11),
|
|
.i_sinp(sinp__11),
|
|
.i_cosp(cosp__11),
|
|
.i_sintCosp(sintCosp__11),
|
|
.i_sintSinp(sintSinp__11),
|
|
.i_uz2(uz2__11),
|
|
.i_uxUz(uxUz__11),
|
|
.i_uyUz(uyUz__11),
|
|
.i_uySintSinp(uySintSinp__11),
|
|
.i_oneMinusUz2(oneMinusUz2__11),
|
|
.i_uyUzSintCosp(uyUzSintCosp__11),
|
|
.i_uxUzSintCosp(uxUzSintCosp__11),
|
|
.i_uxSintSinp(uxSintSinp__11),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__11),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__11),
|
|
.i_uxCost(uxCost__11),
|
|
.i_uzCost(uzCost__11),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__11),
|
|
.i_uxNumerator(uxNumerator__11),
|
|
.i_uyNumerator(uyNumerator__11),
|
|
.i_uyCost(uyCost__11),
|
|
.i_uxQuotient(uxQuotient__11),
|
|
.i_uyQuotient(uyQuotient__11),
|
|
//Outputs
|
|
.o_sint(sint__12),
|
|
.o_cost(cost__12),
|
|
.o_sinp(sinp__12),
|
|
.o_cosp(cosp__12),
|
|
.o_sintCosp(sintCosp__12),
|
|
.o_sintSinp(sintSinp__12),
|
|
.o_uz2(uz2__12),
|
|
.o_uxUz(uxUz__12),
|
|
.o_uyUz(uyUz__12),
|
|
.o_uySintSinp(uySintSinp__12),
|
|
.o_oneMinusUz2(oneMinusUz2__12),
|
|
.o_uyUzSintCosp(uyUzSintCosp__12),
|
|
.o_uxUzSintCosp(uxUzSintCosp__12),
|
|
.o_uxSintSinp(uxSintSinp__12),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__12),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__12),
|
|
.o_uxCost(uxCost__12),
|
|
.o_uzCost(uzCost__12),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__12),
|
|
.o_uxNumerator(uxNumerator__12),
|
|
.o_uyNumerator(uyNumerator__12),
|
|
.o_uyCost(uyCost__12),
|
|
.o_uxQuotient(uxQuotient__12),
|
|
.o_uyQuotient(uyQuotient__12)
|
|
);
|
|
|
|
InternalsBlock pipeReg11(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__10),
|
|
.i_cost(cost__10),
|
|
.i_sinp(sinp__10),
|
|
.i_cosp(cosp__10),
|
|
.i_sintCosp(sintCosp__10),
|
|
.i_sintSinp(sintSinp__10),
|
|
.i_uz2(uz2__10),
|
|
.i_uxUz(uxUz__10),
|
|
.i_uyUz(uyUz__10),
|
|
.i_uySintSinp(uySintSinp__10),
|
|
.i_oneMinusUz2(oneMinusUz2__10),
|
|
.i_uyUzSintCosp(uyUzSintCosp__10),
|
|
.i_uxUzSintCosp(uxUzSintCosp__10),
|
|
.i_uxSintSinp(uxSintSinp__10),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__10),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__10),
|
|
.i_uxCost(uxCost__10),
|
|
.i_uzCost(uzCost__10),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__10),
|
|
.i_uxNumerator(uxNumerator__10),
|
|
.i_uyNumerator(uyNumerator__10),
|
|
.i_uyCost(uyCost__10),
|
|
.i_uxQuotient(uxQuotient__10),
|
|
.i_uyQuotient(uyQuotient__10),
|
|
//Outputs
|
|
.o_sint(sint__11),
|
|
.o_cost(cost__11),
|
|
.o_sinp(sinp__11),
|
|
.o_cosp(cosp__11),
|
|
.o_sintCosp(sintCosp__11),
|
|
.o_sintSinp(sintSinp__11),
|
|
.o_uz2(uz2__11),
|
|
.o_uxUz(uxUz__11),
|
|
.o_uyUz(uyUz__11),
|
|
.o_uySintSinp(uySintSinp__11),
|
|
.o_oneMinusUz2(oneMinusUz2__11),
|
|
.o_uyUzSintCosp(uyUzSintCosp__11),
|
|
.o_uxUzSintCosp(uxUzSintCosp__11),
|
|
.o_uxSintSinp(uxSintSinp__11),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__11),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__11),
|
|
.o_uxCost(uxCost__11),
|
|
.o_uzCost(uzCost__11),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__11),
|
|
.o_uxNumerator(uxNumerator__11),
|
|
.o_uyNumerator(uyNumerator__11),
|
|
.o_uyCost(uyCost__11),
|
|
.o_uxQuotient(uxQuotient__11),
|
|
.o_uyQuotient(uyQuotient__11)
|
|
);
|
|
|
|
InternalsBlock pipeReg10(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__9),
|
|
.i_cost(cost__9),
|
|
.i_sinp(sinp__9),
|
|
.i_cosp(cosp__9),
|
|
.i_sintCosp(sintCosp__9),
|
|
.i_sintSinp(sintSinp__9),
|
|
.i_uz2(uz2__9),
|
|
.i_uxUz(uxUz__9),
|
|
.i_uyUz(uyUz__9),
|
|
.i_uySintSinp(uySintSinp__9),
|
|
.i_oneMinusUz2(oneMinusUz2__9),
|
|
.i_uyUzSintCosp(uyUzSintCosp__9),
|
|
.i_uxUzSintCosp(uxUzSintCosp__9),
|
|
.i_uxSintSinp(uxSintSinp__9),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__9),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__9),
|
|
.i_uxCost(uxCost__9),
|
|
.i_uzCost(uzCost__9),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__9),
|
|
.i_uxNumerator(uxNumerator__9),
|
|
.i_uyNumerator(uyNumerator__9),
|
|
.i_uyCost(uyCost__9),
|
|
.i_uxQuotient(uxQuotient__9),
|
|
.i_uyQuotient(uyQuotient__9),
|
|
//Outputs
|
|
.o_sint(sint__10),
|
|
.o_cost(cost__10),
|
|
.o_sinp(sinp__10),
|
|
.o_cosp(cosp__10),
|
|
.o_sintCosp(sintCosp__10),
|
|
.o_sintSinp(sintSinp__10),
|
|
.o_uz2(uz2__10),
|
|
.o_uxUz(uxUz__10),
|
|
.o_uyUz(uyUz__10),
|
|
.o_uySintSinp(uySintSinp__10),
|
|
.o_oneMinusUz2(oneMinusUz2__10),
|
|
.o_uyUzSintCosp(uyUzSintCosp__10),
|
|
.o_uxUzSintCosp(uxUzSintCosp__10),
|
|
.o_uxSintSinp(uxSintSinp__10),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__10),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__10),
|
|
.o_uxCost(uxCost__10),
|
|
.o_uzCost(uzCost__10),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__10),
|
|
.o_uxNumerator(uxNumerator__10),
|
|
.o_uyNumerator(uyNumerator__10),
|
|
.o_uyCost(uyCost__10),
|
|
.o_uxQuotient(uxQuotient__10),
|
|
.o_uyQuotient(uyQuotient__10)
|
|
);
|
|
|
|
InternalsBlock pipeReg9(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__8),
|
|
.i_cost(cost__8),
|
|
.i_sinp(sinp__8),
|
|
.i_cosp(cosp__8),
|
|
.i_sintCosp(sintCosp__8),
|
|
.i_sintSinp(sintSinp__8),
|
|
.i_uz2(uz2__8),
|
|
.i_uxUz(uxUz__8),
|
|
.i_uyUz(uyUz__8),
|
|
.i_uySintSinp(uySintSinp__8),
|
|
.i_oneMinusUz2(oneMinusUz2__8),
|
|
.i_uyUzSintCosp(uyUzSintCosp__8),
|
|
.i_uxUzSintCosp(uxUzSintCosp__8),
|
|
.i_uxSintSinp(uxSintSinp__8),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__8),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__8),
|
|
.i_uxCost(uxCost__8),
|
|
.i_uzCost(uzCost__8),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__8),
|
|
.i_uxNumerator(uxNumerator__8),
|
|
.i_uyNumerator(uyNumerator__8),
|
|
.i_uyCost(uyCost__8),
|
|
.i_uxQuotient(uxQuotient__8),
|
|
.i_uyQuotient(uyQuotient__8),
|
|
//Outputs
|
|
.o_sint(sint__9),
|
|
.o_cost(cost__9),
|
|
.o_sinp(sinp__9),
|
|
.o_cosp(cosp__9),
|
|
.o_sintCosp(sintCosp__9),
|
|
.o_sintSinp(sintSinp__9),
|
|
.o_uz2(uz2__9),
|
|
.o_uxUz(uxUz__9),
|
|
.o_uyUz(uyUz__9),
|
|
.o_uySintSinp(uySintSinp__9),
|
|
.o_oneMinusUz2(oneMinusUz2__9),
|
|
.o_uyUzSintCosp(uyUzSintCosp__9),
|
|
.o_uxUzSintCosp(uxUzSintCosp__9),
|
|
.o_uxSintSinp(uxSintSinp__9),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__9),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__9),
|
|
.o_uxCost(uxCost__9),
|
|
.o_uzCost(uzCost__9),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__9),
|
|
.o_uxNumerator(uxNumerator__9),
|
|
.o_uyNumerator(uyNumerator__9),
|
|
.o_uyCost(uyCost__9),
|
|
.o_uxQuotient(uxQuotient__9),
|
|
.o_uyQuotient(uyQuotient__9)
|
|
);
|
|
|
|
InternalsBlock pipeReg8(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__7),
|
|
.i_cost(cost__7),
|
|
.i_sinp(sinp__7),
|
|
.i_cosp(cosp__7),
|
|
.i_sintCosp(sintCosp__7),
|
|
.i_sintSinp(sintSinp__7),
|
|
.i_uz2(uz2__7),
|
|
.i_uxUz(uxUz__7),
|
|
.i_uyUz(uyUz__7),
|
|
.i_uySintSinp(uySintSinp__7),
|
|
.i_oneMinusUz2(oneMinusUz2__7),
|
|
.i_uyUzSintCosp(uyUzSintCosp__7),
|
|
.i_uxUzSintCosp(uxUzSintCosp__7),
|
|
.i_uxSintSinp(uxSintSinp__7),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__7),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__7),
|
|
.i_uxCost(uxCost__7),
|
|
.i_uzCost(uzCost__7),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__7),
|
|
.i_uxNumerator(uxNumerator__7),
|
|
.i_uyNumerator(uyNumerator__7),
|
|
.i_uyCost(uyCost__7),
|
|
.i_uxQuotient(uxQuotient__7),
|
|
.i_uyQuotient(uyQuotient__7),
|
|
//Outputs
|
|
.o_sint(sint__8),
|
|
.o_cost(cost__8),
|
|
.o_sinp(sinp__8),
|
|
.o_cosp(cosp__8),
|
|
.o_sintCosp(sintCosp__8),
|
|
.o_sintSinp(sintSinp__8),
|
|
.o_uz2(uz2__8),
|
|
.o_uxUz(uxUz__8),
|
|
.o_uyUz(uyUz__8),
|
|
.o_uySintSinp(uySintSinp__8),
|
|
.o_oneMinusUz2(oneMinusUz2__8),
|
|
.o_uyUzSintCosp(uyUzSintCosp__8),
|
|
.o_uxUzSintCosp(uxUzSintCosp__8),
|
|
.o_uxSintSinp(uxSintSinp__8),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__8),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__8),
|
|
.o_uxCost(uxCost__8),
|
|
.o_uzCost(uzCost__8),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__8),
|
|
.o_uxNumerator(uxNumerator__8),
|
|
.o_uyNumerator(uyNumerator__8),
|
|
.o_uyCost(uyCost__8),
|
|
.o_uxQuotient(uxQuotient__8),
|
|
.o_uyQuotient(uyQuotient__8)
|
|
);
|
|
|
|
InternalsBlock pipeReg7(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__6),
|
|
.i_cost(cost__6),
|
|
.i_sinp(sinp__6),
|
|
.i_cosp(cosp__6),
|
|
.i_sintCosp(sintCosp__6),
|
|
.i_sintSinp(sintSinp__6),
|
|
.i_uz2(uz2__6),
|
|
.i_uxUz(uxUz__6),
|
|
.i_uyUz(uyUz__6),
|
|
.i_uySintSinp(uySintSinp__6),
|
|
.i_oneMinusUz2(oneMinusUz2__6),
|
|
.i_uyUzSintCosp(uyUzSintCosp__6),
|
|
.i_uxUzSintCosp(uxUzSintCosp__6),
|
|
.i_uxSintSinp(uxSintSinp__6),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__6),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__6),
|
|
.i_uxCost(uxCost__6),
|
|
.i_uzCost(uzCost__6),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__6),
|
|
.i_uxNumerator(uxNumerator__6),
|
|
.i_uyNumerator(uyNumerator__6),
|
|
.i_uyCost(uyCost__6),
|
|
.i_uxQuotient(uxQuotient__6),
|
|
.i_uyQuotient(uyQuotient__6),
|
|
//Outputs
|
|
.o_sint(sint__7),
|
|
.o_cost(cost__7),
|
|
.o_sinp(sinp__7),
|
|
.o_cosp(cosp__7),
|
|
.o_sintCosp(sintCosp__7),
|
|
.o_sintSinp(sintSinp__7),
|
|
.o_uz2(uz2__7),
|
|
.o_uxUz(uxUz__7),
|
|
.o_uyUz(uyUz__7),
|
|
.o_uySintSinp(uySintSinp__7),
|
|
.o_oneMinusUz2(oneMinusUz2__7),
|
|
.o_uyUzSintCosp(uyUzSintCosp__7),
|
|
.o_uxUzSintCosp(uxUzSintCosp__7),
|
|
.o_uxSintSinp(uxSintSinp__7),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__7),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__7),
|
|
.o_uxCost(uxCost__7),
|
|
.o_uzCost(uzCost__7),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__7),
|
|
.o_uxNumerator(uxNumerator__7),
|
|
.o_uyNumerator(uyNumerator__7),
|
|
.o_uyCost(uyCost__7),
|
|
.o_uxQuotient(uxQuotient__7),
|
|
.o_uyQuotient(uyQuotient__7)
|
|
);
|
|
|
|
InternalsBlock pipeReg6(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__5),
|
|
.i_cost(cost__5),
|
|
.i_sinp(sinp__5),
|
|
.i_cosp(cosp__5),
|
|
.i_sintCosp(sintCosp__5),
|
|
.i_sintSinp(sintSinp__5),
|
|
.i_uz2(uz2__5),
|
|
.i_uxUz(uxUz__5),
|
|
.i_uyUz(uyUz__5),
|
|
.i_uySintSinp(uySintSinp__5),
|
|
.i_oneMinusUz2(oneMinusUz2__5),
|
|
.i_uyUzSintCosp(uyUzSintCosp__5),
|
|
.i_uxUzSintCosp(uxUzSintCosp__5),
|
|
.i_uxSintSinp(uxSintSinp__5),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__5),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__5),
|
|
.i_uxCost(uxCost__5),
|
|
.i_uzCost(uzCost__5),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__5),
|
|
.i_uxNumerator(uxNumerator__5),
|
|
.i_uyNumerator(uyNumerator__5),
|
|
.i_uyCost(uyCost__5),
|
|
.i_uxQuotient(uxQuotient__5),
|
|
.i_uyQuotient(uyQuotient__5),
|
|
//Outputs
|
|
.o_sint(sint__6),
|
|
.o_cost(cost__6),
|
|
.o_sinp(sinp__6),
|
|
.o_cosp(cosp__6),
|
|
.o_sintCosp(sintCosp__6),
|
|
.o_sintSinp(sintSinp__6),
|
|
.o_uz2(uz2__6),
|
|
.o_uxUz(uxUz__6),
|
|
.o_uyUz(uyUz__6),
|
|
.o_uySintSinp(uySintSinp__6),
|
|
.o_oneMinusUz2(oneMinusUz2__6),
|
|
.o_uyUzSintCosp(uyUzSintCosp__6),
|
|
.o_uxUzSintCosp(uxUzSintCosp__6),
|
|
.o_uxSintSinp(uxSintSinp__6),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__6),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__6),
|
|
.o_uxCost(uxCost__6),
|
|
.o_uzCost(uzCost__6),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__6),
|
|
.o_uxNumerator(uxNumerator__6),
|
|
.o_uyNumerator(uyNumerator__6),
|
|
.o_uyCost(uyCost__6),
|
|
.o_uxQuotient(uxQuotient__6),
|
|
.o_uyQuotient(uyQuotient__6)
|
|
);
|
|
|
|
InternalsBlock pipeReg5(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__4),
|
|
.i_cost(cost__4),
|
|
.i_sinp(sinp__4),
|
|
.i_cosp(cosp__4),
|
|
.i_sintCosp(sintCosp__4),
|
|
.i_sintSinp(sintSinp__4),
|
|
.i_uz2(uz2__4),
|
|
.i_uxUz(uxUz__4),
|
|
.i_uyUz(uyUz__4),
|
|
.i_uySintSinp(uySintSinp__4),
|
|
.i_oneMinusUz2(oneMinusUz2__4),
|
|
.i_uyUzSintCosp(uyUzSintCosp__4),
|
|
.i_uxUzSintCosp(uxUzSintCosp__4),
|
|
.i_uxSintSinp(uxSintSinp__4),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__4),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__4),
|
|
.i_uxCost(uxCost__4),
|
|
.i_uzCost(uzCost__4),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__4),
|
|
.i_uxNumerator(uxNumerator__4),
|
|
.i_uyNumerator(uyNumerator__4),
|
|
.i_uyCost(uyCost__4),
|
|
.i_uxQuotient(uxQuotient__4),
|
|
.i_uyQuotient(uyQuotient__4),
|
|
//Outputs
|
|
.o_sint(sint__5),
|
|
.o_cost(cost__5),
|
|
.o_sinp(sinp__5),
|
|
.o_cosp(cosp__5),
|
|
.o_sintCosp(sintCosp__5),
|
|
.o_sintSinp(sintSinp__5),
|
|
.o_uz2(uz2__5),
|
|
.o_uxUz(uxUz__5),
|
|
.o_uyUz(uyUz__5),
|
|
.o_uySintSinp(uySintSinp__5),
|
|
.o_oneMinusUz2(oneMinusUz2__5),
|
|
.o_uyUzSintCosp(uyUzSintCosp__5),
|
|
.o_uxUzSintCosp(uxUzSintCosp__5),
|
|
.o_uxSintSinp(uxSintSinp__5),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__5),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__5),
|
|
.o_uxCost(uxCost__5),
|
|
.o_uzCost(uzCost__5),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__5),
|
|
.o_uxNumerator(uxNumerator__5),
|
|
.o_uyNumerator(uyNumerator__5),
|
|
.o_uyCost(uyCost__5),
|
|
.o_uxQuotient(uxQuotient__5),
|
|
.o_uyQuotient(uyQuotient__5)
|
|
);
|
|
|
|
|
|
//since these will be replaced later
|
|
|
|
|
|
assign sint__0 = 32'b00000000000000000000000000000000;
|
|
assign cost__0 = 32'b00000000000000000000000000000000;
|
|
assign sinp__0 = 32'b00000000000000000000000000000000;
|
|
assign cosp__0 = 32'b00000000000000000000000000000000;
|
|
assign sintCosp__0 = 32'b00000000000000000000000000000000;
|
|
assign sintSinp__0 = 32'b00000000000000000000000000000000;
|
|
assign uz2__0 = 0;
|
|
assign uxUz__0 = 32'b00000000000000000000000000000000;
|
|
assign uyUz__0 = 32'b00000000000000000000000000000000;
|
|
assign uySintSinp__0 = 32'b00000000000000000000000000000000;
|
|
assign oneMinusUz2__0 = 0;
|
|
assign uyUzSintCosp__0 = 32'b00000000000000000000000000000000;
|
|
assign uxUzSintCosp__0 = 32'b00000000000000000000000000000000;
|
|
assign uxSintSinp__0 = 32'b00000000000000000000000000000000;
|
|
assign sqrtOneMinusUz2__0 = 32'b00000000000000000000000000000000;
|
|
assign sintCospSqrtOneMinusUz2__0 = 32'b00000000000000000000000000000000;
|
|
assign uxCost__0 = 32'b00000000000000000000000000000000;
|
|
assign uzCost__0 = 32'b00000000000000000000000000000000;
|
|
assign sqrtOneMinusUz2_inv__0 = 32'b00000000000000000000000000000000;
|
|
assign uxNumerator__0 = 32'b00000000000000000000000000000000;
|
|
assign uyNumerator__0 = 32'b00000000000000000000000000000000;
|
|
assign uyCost__0 = 32'b00000000000000000000000000000000;
|
|
assign uxQuotient__0 = 32'b00000000000000000000000000000000;
|
|
assign uyQuotient__0 = 32'b00000000000000000000000000000000;
|
|
|
|
InternalsBlock pipeReg1(
|
|
//Inputs
|
|
.clock(clock),
|
|
.reset(reset),
|
|
.enable(enable),
|
|
.i_sint(sint__0),
|
|
.i_cost(cost__0),
|
|
.i_sinp(sinp__0),
|
|
.i_cosp(cosp__0),
|
|
.i_sintCosp(sintCosp__0),
|
|
.i_sintSinp(sintSinp__0),
|
|
.i_uz2(uz2__0),
|
|
.i_uxUz(uxUz__0),
|
|
.i_uyUz(uyUz__0),
|
|
.i_uySintSinp(uySintSinp__0),
|
|
.i_oneMinusUz2(oneMinusUz2__0),
|
|
.i_uyUzSintCosp(uyUzSintCosp__0),
|
|
.i_uxUzSintCosp(uxUzSintCosp__0),
|
|
.i_uxSintSinp(uxSintSinp__0),
|
|
.i_sqrtOneMinusUz2(sqrtOneMinusUz2__0),
|
|
.i_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__0),
|
|
.i_uxCost(uxCost__0),
|
|
.i_uzCost(uzCost__0),
|
|
.i_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__0),
|
|
.i_uxNumerator(uxNumerator__0),
|
|
.i_uyNumerator(uyNumerator__0),
|
|
.i_uyCost(uyCost__0),
|
|
.i_uxQuotient(uxQuotient__0),
|
|
.i_uyQuotient(uyQuotient__0),
|
|
//Outputs
|
|
.o_sint(sint__1),
|
|
.o_cost(cost__1),
|
|
.o_sinp(sinp__1),
|
|
.o_cosp(cosp__1),
|
|
.o_sintCosp(sintCosp__1),
|
|
.o_sintSinp(sintSinp__1),
|
|
.o_uz2(uz2__1),
|
|
.o_uxUz(uxUz__1),
|
|
.o_uyUz(uyUz__1),
|
|
.o_uySintSinp(uySintSinp__1),
|
|
.o_oneMinusUz2(oneMinusUz2__1),
|
|
.o_uyUzSintCosp(uyUzSintCosp__1),
|
|
.o_uxUzSintCosp(uxUzSintCosp__1),
|
|
.o_uxSintSinp(uxSintSinp__1),
|
|
.o_sqrtOneMinusUz2(sqrtOneMinusUz2__1),
|
|
.o_sintCospSqrtOneMinusUz2(sintCospSqrtOneMinusUz2__1),
|
|
.o_uxCost(uxCost__1),
|
|
.o_uzCost(uzCost__1),
|
|
.o_sqrtOneMinusUz2_inv(sqrtOneMinusUz2_inv__1),
|
|
.o_uxNumerator(uxNumerator__1),
|
|
.o_uyNumerator(uyNumerator__1),
|
|
.o_uyCost(uyCost__1),
|
|
.o_uxQuotient(uxQuotient__1),
|
|
.o_uyQuotient(uyQuotient__1)
|
|
);
|
|
|
|
//-------------SYNCHRONOUS LOGIC----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//This is the end of the generate statement, and the beginning of the
|
|
//synchronous logic. On the clock event, the outputs calculated from
|
|
//this block are put on the output pins for reading (registered
|
|
//outputs, as per the convention).
|
|
|
|
|
|
|
|
|
|
//Assign outputs from block on positive clock edge.
|
|
always @ (posedge clock) begin
|
|
if(reset_new) begin
|
|
//Reset internal non-pipelined registers here.
|
|
ux_scatterer <= 32'h00000000;
|
|
uy_scatterer <= 32'h00000000;
|
|
uz_scatterer <= 32'h7FFFFFFF;
|
|
end else if (enable) begin
|
|
ux_scatterer <= new_ux;
|
|
uy_scatterer <= new_uy;
|
|
uz_scatterer <= new_uz;
|
|
end
|
|
end
|
|
|
|
//-------------ASYNCHRONOUS LOGIC----------------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//This is where the asynchronous logic takes place. Things that
|
|
//occur here include setting up wiring to send to the multipliers,
|
|
//divide unit, and square root unit. Also, products brought in
|
|
//from the wrapper are placed on the appropriate wires for placement
|
|
//in the pipeline.
|
|
|
|
|
|
|
|
|
|
//-------------OPERAND SETUP----------------------
|
|
|
|
|
|
//NAMING CONVENTION:
|
|
//opX_Y_Z, op stands for operand, X stands for the multiplication number for
|
|
//that clock cycle, Y stands for the clock cycle, Z is either 1 or 2 for the
|
|
//first or second operand for this multiply
|
|
//
|
|
//COMMENTING CONVENTIONS:
|
|
//CC X means that the values being calculated will be ready for the Xth register
|
|
//location, where 0 is the register prior to any calculations being done, 1 is
|
|
//after the 1st clock cycle of calculation, etc.
|
|
|
|
//CC 2
|
|
assign op1_2_1 = i_uz1;
|
|
assign op1_2_2 = i_uz1;
|
|
|
|
//CC 3
|
|
//SUBTRACTION, see math results
|
|
|
|
//CC 4
|
|
assign op1_4_1 = i_ux3;
|
|
assign op1_4_2 = i_uz3;
|
|
|
|
//CC 5 -- NOOP, line up with reflector
|
|
|
|
//CC `SQRT+5 -- Started in CC 6
|
|
assign sqrtOperand1_6 = oneMinusUz2__5;
|
|
|
|
//CC `SQRT+`DIV+6 -- Started in CC `SQRT+5
|
|
assign divNumerator1_16 = `INTMAX_2;
|
|
//assign divDenominator1_16 = sqrtOneMinusUz2[`SQRT+5];
|
|
assign divDenominator1_16 = new_sqrtOneMinusUz2;
|
|
|
|
//CC `SQRT+`DIV+3
|
|
assign op1_33_1 = sint_Mem;
|
|
assign op1_33_2 = cosp_Mem;
|
|
|
|
assign op2_33_1 = sint_Mem;
|
|
assign op2_33_2 = sinp_Mem;
|
|
|
|
assign op3_33_1 = i_uy32;
|
|
assign op3_33_2 = i_uz32;
|
|
|
|
//CC `SQRT+`DIV+4
|
|
assign op1_34_1 = i_ux33;
|
|
assign op1_34_2 = sintSinp__33;
|
|
|
|
assign op2_34_1 = i_uy33;
|
|
assign op2_34_2 = sintSinp__33;
|
|
|
|
assign op3_34_1 = uxUz__33;
|
|
assign op3_34_2 = sintCosp__33;
|
|
|
|
assign op4_34_1 = uyUz__33;
|
|
assign op4_34_2 = sintCosp__33;
|
|
|
|
//CC `SQRT+`DIV+5
|
|
//2 SUBS (see math results)
|
|
//`DIVISION COMPLETE (see math results)
|
|
|
|
//CC `SQRT+`DIV+6 -- Division is now complete and can be read.
|
|
assign op1_36_1 = uxNumerator__35;
|
|
assign op1_36_2 = new_sqrtOneMinusUz2_inv;
|
|
|
|
|
|
assign op2_36_1 = uyNumerator__35;
|
|
assign op2_36_2 = new_sqrtOneMinusUz2_inv;
|
|
|
|
assign op3_36_1 = sintCosp__35;
|
|
assign op3_36_2 = sqrtOneMinusUz2__35;
|
|
|
|
assign op4_36_1 = i_ux35;
|
|
assign op4_36_2 = cost__35;
|
|
|
|
assign op5_36_1 = i_uy35;
|
|
assign op5_36_2 = cost__35;
|
|
|
|
assign op6_36_1 = i_uz35;
|
|
assign op6_36_2 = cost__35;
|
|
|
|
|
|
//-------------MATH RESULTS----------------------
|
|
|
|
|
|
//NAMING CONVENTION:
|
|
//new_VAR means that the variable named VAR will be stored into the register
|
|
//pipeline at the clock cycle indicated by the comments above it.
|
|
//
|
|
//prod stands for product, quot stands for quotient, sqrt stands for square root
|
|
//prodX_Y means the Xth product which started calculation at the Yth clock cycle
|
|
//Similarly for quot and sqrtResult.
|
|
//
|
|
//
|
|
//COMMENTING CONVENTIONS:
|
|
//CC X means that the values being calculated will be ready for the Xth register
|
|
//location, where 0 is the register prior to any calculations being done, 1 is
|
|
//after the 1st clock cycle of calculation, etc.
|
|
|
|
|
|
//Used to determine whether or not the divide operation overflowed.
|
|
//or U1(div_overflow, quot1_16[62], quot1_16[61], quot1_16[60], quot1_16[59], quot1_16[58], quot1_16[57], quot1_16[56], quot1_16[55], quot1_16[54], quot1_16[53], quot1_16[52], quot1_16[51], quot1_16[50], quot1_16[49], quot1_16[48], quot1_16[47]);
|
|
assign div_overflow = quot1_16[62]| quot1_16[61]| quot1_16[60]| quot1_16[59]| quot1_16[58]| quot1_16[57]| quot1_16[56]| quot1_16[55]| quot1_16[54]| quot1_16[53]| quot1_16[52]| quot1_16[51]| quot1_16[50]| quot1_16[49]| quot1_16[48]| quot1_16[47];
|
|
|
|
//Used to determine whether or not the multiply operation overflowed.
|
|
//or U2(toAnd1_36_1, prod1_36[62], prod1_36[61], prod1_36[60], prod1_36[59], prod1_36[58], prod1_36[57], prod1_36[56], prod1_36[55], prod1_36[54], prod1_36[53], prod1_36[52], prod1_36[51], prod1_36[50], prod1_36[49], prod1_36[48], prod1_36[47], prod1_36[46]);
|
|
assign toAnd1_36_1 = prod1_36[62]| prod1_36[61]| prod1_36[60]| prod1_36[59]| prod1_36[58]| prod1_36[57]| prod1_36[56]| prod1_36[55]| prod1_36[54]| prod1_36[53]| prod1_36[52]| prod1_36[51]| prod1_36[50]| prod1_36[49]| prod1_36[48]| prod1_36[47]| prod1_36[46];
|
|
//Used to determine whether or not the multiply operation overflowed in the negative direction.
|
|
//or U3(toAnd1_36_2, ~prod1_36[62], ~prod1_36[61], ~prod1_36[60], ~prod1_36[59], ~prod1_36[58], ~prod1_36[57], ~prod1_36[56], ~prod1_36[55], ~prod1_36[54], ~prod1_36[53], ~prod1_36[52], ~prod1_36[51], ~prod1_36[50], ~prod1_36[49], ~prod1_36[48], ~prod1_36[47], ~prod1_36[46]);
|
|
assign toAnd1_36_2 = ~prod1_36[62]| ~prod1_36[61]| ~prod1_36[60]| ~prod1_36[59]| ~prod1_36[58]| ~prod1_36[57]| ~prod1_36[56]| ~prod1_36[55]| ~prod1_36[54]| ~prod1_36[53]| ~prod1_36[52]| ~prod1_36[51]| ~prod1_36[50]| ~prod1_36[49]| ~prod1_36[48]| ~prod1_36[47]| ~prod1_36[46];
|
|
|
|
//and U4(overflow1_36, ~prod1_36[63], toAnd1_36_1);
|
|
assign overflow1_36 = ~prod1_36[63]| toAnd1_36_1;
|
|
//and U5(negOverflow1_36, prod1_36[63], toAnd1_36_2);
|
|
assign negOverflow1_36 = prod1_36[63]| toAnd1_36_2;
|
|
|
|
|
|
//Used to determine whether or not the multiply operation overflowed.
|
|
//or U6(toAnd2_36_1, prod2_36[62], prod2_36[61], prod2_36[60], prod2_36[59], prod2_36[58], prod2_36[57], prod2_36[56], prod2_36[55], prod2_36[54], prod2_36[53], prod2_36[52], prod2_36[51], prod2_36[50], prod2_36[49], prod2_36[48], prod2_36[47], prod2_36[46]);
|
|
assign toAnd2_36_1 = prod2_36[62]| prod2_36[61]| prod2_36[60]| prod2_36[59]| prod2_36[58]| prod2_36[57]| prod2_36[56]| prod2_36[55]| prod2_36[54]| prod2_36[53]| prod2_36[52]| prod2_36[51]| prod2_36[50]| prod2_36[49]| prod2_36[48]| prod2_36[47]| prod2_36[46];
|
|
//Used to determine whether or not the multiply operation overflowed in the negative direction.
|
|
//or U7(toAnd2_36_2, ~prod2_36[62], ~prod2_36[61], ~prod2_36[60], ~prod2_36[59], ~prod2_36[58], ~prod2_36[57], ~prod2_36[56], ~prod2_36[55], ~prod2_36[54], ~prod2_36[53], ~prod2_36[52], ~prod2_36[51], ~prod2_36[50], ~prod2_36[49], ~prod2_36[48], ~prod2_36[47], ~prod2_36[46]);
|
|
assign toAnd2_36_2 = ~prod2_36[62]| ~prod2_36[61]| ~prod2_36[60]| ~prod2_36[59]| ~prod2_36[58]| ~prod2_36[57]| ~prod2_36[56]| ~prod2_36[55]| ~prod2_36[54]| ~prod2_36[53]| ~prod2_36[52]| ~prod2_36[51]| ~prod2_36[50]| ~prod2_36[49]| ~prod2_36[48]| ~prod2_36[47]| ~prod2_36[46];
|
|
|
|
//and U8(overflow2_36, ~prod2_36[63], toAnd2_36_1);
|
|
assign overflow2_36 = ~prod2_36[63]|toAnd2_36_1;
|
|
//and U9(negOverflow2_36, prod2_36[63], toAnd2_36_2);
|
|
assign negOverflow2_36 = prod2_36[63]|toAnd2_36_2;
|
|
|
|
|
|
|
|
//CC 2
|
|
assign new_uz2 = prod1_2;
|
|
//CC 3
|
|
sub_64b oneMinusUz2_sub(
|
|
.dataa(`INTMAX_2),
|
|
.datab(uz2__2),
|
|
.result(new_oneMinusUz2)
|
|
);
|
|
|
|
//CC 4
|
|
assign new_uxUz = prod1_4;
|
|
//CC `SQRT+5
|
|
assign new_sqrtOneMinusUz2 = sqrtResult1_6;
|
|
//CC `SQRT+`DIV+3
|
|
assign new_sintCosp = prod1_33;
|
|
assign new_sintSinp = prod2_33;
|
|
assign new_uyUz = prod3_33;
|
|
//CC `SQRT+`DIV+4
|
|
assign new_sint = sint_Mem;
|
|
assign new_cost = cost_Mem;
|
|
assign new_sinp = sinp_Mem;
|
|
assign new_cosp = cosp_Mem;
|
|
assign new_uxSintSinp = prod1_34;
|
|
assign new_uySintSinp = prod2_34;
|
|
assign new_uxUzSintCosp = prod3_34;
|
|
assign new_uyUzSintCosp = prod4_34;
|
|
//CC `SQRT+`DIV+5
|
|
sub_32b uxNumer_sub(
|
|
.dataa(uxUzSintCosp__34),
|
|
.datab(uySintSinp__34),
|
|
.overflow(uxNumerOverflow),
|
|
.result(new_uxNumerator)
|
|
);
|
|
|
|
add_32b uyNumer_add(
|
|
.dataa(uyUzSintCosp__34),
|
|
.datab(uxSintSinp__34),
|
|
.overflow(uyNumerOverflow),
|
|
.result(new_uyNumerator)
|
|
);
|
|
|
|
|
|
//Possibility for division overflow (whereby the inverse is too large). Data storage for this
|
|
//value is 15 bits left of the decimal, and 16 bits to the right.
|
|
assign new_sqrtOneMinusUz2_inv = (div_overflow) ? `INTMAX : {quot1_16[63:63], quot1_16[46:16]};
|
|
|
|
//CC `SQRT+`DIV+6
|
|
always @ (overflow1_36 or negOverflow1_36 or prod1_36 or overflow2_36 or negOverflow2_36 or prod2_36) begin
|
|
case ({overflow1_36, negOverflow1_36})
|
|
0: new_uxQuotient = {prod1_36[63:63], prod1_36[45:15]};
|
|
1: new_uxQuotient = `INTMIN;
|
|
2: new_uxQuotient = `INTMAX;
|
|
//Should never occur
|
|
3: new_uxQuotient = {prod1_36[63:63], prod1_36[45:15]};
|
|
endcase
|
|
|
|
case ({overflow2_36, negOverflow2_36})
|
|
|
|
0: new_uyQuotient = {prod2_36[63:63], prod2_36[45:15]};
|
|
1: new_uyQuotient = `INTMIN;
|
|
2: new_uyQuotient = `INTMAX;
|
|
//Should never occur
|
|
3: new_uyQuotient = {prod2_36[63:63], prod2_36[45:15]};
|
|
endcase
|
|
end
|
|
|
|
//always @* begin
|
|
// new_uxQuotient = {prod1_36[63:63], prod1_36[47:16]};
|
|
// new_uyQuotient = {prod2_36[63:63], prod2_36[47:16]};
|
|
//end
|
|
|
|
assign new_sintCospSqrtOneMinusUz2 = prod3_36;
|
|
assign new_uxCost = prod4_36;
|
|
assign new_uyCost = prod5_36;
|
|
assign new_uzCost = prod6_36;
|
|
|
|
|
|
|
|
//-----------------------FINAL RESULT CALCULATIONS--------------
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//
|
|
//At this point, all calculations have been completed, save the
|
|
//final results. This part of the code decides whether or not the
|
|
//current calculation involved a normal (orthogonal) incident or not,
|
|
//and uses this information to determine how to calculate the
|
|
//final results. Final results are put on wires new_ux, new_uy, and
|
|
//new_uz, where they are output to registers ux_scatterer,
|
|
//uy_scatterer, and uz_scatterer on the clock event for synchronization
|
|
//(registered outputs, as per the convention).
|
|
|
|
|
|
|
|
//Determine whether or not the photon calculation was done on a photon that
|
|
//was normal (orthogonal) to the plane of interest. This is to avoid divide
|
|
//by zero errors
|
|
always @ (i_uz36) begin
|
|
//If uz >= `INTMAX-3 || uz <= -`INTMAX+3, normal incident
|
|
if(i_uz36 == 32'h7FFFFFFF || i_uz36 == 32'h7FFFFFFE || i_uz36 == 32'h7FFFFFFD || i_uz36 == 32'h7FFFFFFC || i_uz36 == 32'h80000000 || i_uz36 == 32'h80000001 || i_uz36 == 32'h80000002 || i_uz36 == 32'h80000003 || i_uz36 == 32'h80000004) begin
|
|
normalIncident = 1'b1;
|
|
end else begin
|
|
normalIncident = 1'b0;
|
|
end
|
|
end
|
|
|
|
|
|
|
|
//Assign calculation values for final ux result
|
|
assign ux_add_1 = (normalIncident) ? sintCosp__36 : uxQuotient__36;
|
|
assign ux_add_2 = (normalIncident) ? 32'b0 : uxCost__36;
|
|
|
|
add_32b ux_add(
|
|
.dataa(ux_add_1),
|
|
.datab(ux_add_2),
|
|
.overflow(uxOverflow),
|
|
.result(new_ux)
|
|
);
|
|
|
|
//Assign calculation values for final uy result
|
|
assign uy_add_1 = (normalIncident) ? sintSinp__36 : uyQuotient__36;
|
|
assign uy_add_2 = (normalIncident) ? 32'b0 : uyCost__36;
|
|
|
|
add_32b uy_add(
|
|
.dataa(uy_add_1),
|
|
.datab(uy_add_2),
|
|
.overflow(uyOverflow),
|
|
.result(new_uy)
|
|
);
|
|
|
|
|
|
|
|
|
|
//Assign calculation values for final uz result.
|
|
//First MUX implements SIGN(uz) function.
|
|
assign normalUz = (i_uz36 >=0) ? cost__36 : -cost__36;
|
|
assign uz_sub_1 = (normalIncident) ? normalUz : uzCost__36;
|
|
assign uz_sub_2 = (normalIncident) ? 32'b0 : sintCospSqrtOneMinusUz2__36;
|
|
|
|
sub_32b uz_sub(
|
|
.dataa(uz_sub_1),
|
|
.datab(uz_sub_2),
|
|
.overflow(uzOverflow),
|
|
.result(new_uz)
|
|
);
|
|
|
|
|
|
|
|
endmodule
|
|
|
|
|
|
//***********************************
|
|
//Mathematical modules
|
|
//***********************************
|
|
|
|
module sub_64b (dataa, datab, result);
|
|
|
|
input [63:0] dataa;
|
|
input [63:0] datab;
|
|
output [63:0] result;
|
|
|
|
assign result = dataa - datab;
|
|
|
|
endmodule
|
|
|
|
module add_32b (dataa, datab, overflow, result);
|
|
|
|
input [31:0] dataa;
|
|
input [31:0] datab;
|
|
output overflow;
|
|
output [31:0] result;
|
|
|
|
wire [32:0]computation; //one extra bit to account for overflow
|
|
|
|
assign computation = dataa + datab;
|
|
assign overflow = computation[32];
|
|
assign result = computation[31:0];
|
|
|
|
endmodule
|
|
|
|
module sub_32b (dataa, datab, overflow, result);
|
|
|
|
input [31:0] dataa;
|
|
input [31:0] datab;
|
|
output overflow;
|
|
output [31:0] result;
|
|
|
|
wire [32:0]computation; //one extra bit to account for overflow
|
|
|
|
assign computation = dataa - datab;
|
|
assign overflow = computation[32];
|
|
assign result = computation[31:0];
|
|
|
|
endmodule
|
|
|
|
module Mult_32b (dataa, datab, result); //now signed version!
|
|
|
|
input [31:0]dataa;
|
|
input [31:0]datab;
|
|
output [63:0]result;
|
|
|
|
// assign result = dataa * datab;
|
|
|
|
wire [31:0]a;
|
|
wire [31:0]b;
|
|
assign a = dataa;
|
|
assign b = datab;
|
|
|
|
reg [63:0]c;
|
|
assign result = c;
|
|
|
|
reg is_neg_a;
|
|
reg is_neg_b;
|
|
reg [31:0]a_tmp;
|
|
reg [31:0]b_tmp;
|
|
reg [63:0]mult_tmp;
|
|
reg [63:0]c_tmp;
|
|
|
|
always@(a or b or is_neg_a or is_neg_b or a_tmp or b_tmp or c)
|
|
begin
|
|
if(a[31] == 1) begin
|
|
a_tmp = -a;
|
|
is_neg_a = 1;
|
|
end else
|
|
begin
|
|
a_tmp = a;
|
|
is_neg_a = 0;
|
|
end
|
|
|
|
if(b[31] == 1) begin
|
|
b_tmp = -b;
|
|
is_neg_b = 1;
|
|
end else
|
|
begin
|
|
b_tmp = b;
|
|
is_neg_b = 0;
|
|
end
|
|
|
|
mult_tmp = a_tmp * b_tmp;
|
|
|
|
if( is_neg_a != is_neg_b) begin
|
|
c_tmp = -mult_tmp;
|
|
end else
|
|
begin
|
|
c_tmp = mult_tmp;
|
|
end
|
|
end
|
|
|
|
always@(c_tmp)
|
|
begin
|
|
c = c_tmp;
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
|
|
module Div_64b (clock, denom, numer, quotient, remain);
|
|
input clock;
|
|
input [63:0]numer;
|
|
input [31:0]denom;
|
|
output [63:0]quotient;
|
|
reg [63:0]quotient;
|
|
output [31:0]remain;
|
|
reg [31:0]remain;
|
|
|
|
wire [63:0]quotient_temp;
|
|
wire [31:0]remain_temp;
|
|
Div_64b_unsigned div_temp(.clock(clock), .denom_(denom), .numer_(numer), .quotient(quotient_temp), .remain(remain_temp));
|
|
|
|
always @ (numer or denom or quotient_temp or remain_temp) begin
|
|
if ( numer[63]^denom[31] ) begin // only one is negative
|
|
quotient = -quotient_temp;
|
|
remain = -remain_temp;
|
|
end else begin
|
|
quotient = quotient_temp;
|
|
remain = remain_temp;
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
|
|
/*module Div_64b (clock, denom, numer, quotient, remain);
|
|
input clock;
|
|
input [63:0]numer;
|
|
input [31:0]denom;
|
|
output [63:0]quotient;
|
|
reg [63:0]quotient;
|
|
output [31:0]remain;
|
|
reg [31:0]remain; */
|
|
|
|
module Div_64b_unsigned (clock, denom_, numer_, quotient, remain);
|
|
input clock;
|
|
input [63:0]numer_;
|
|
input [31:0]denom_;
|
|
output [63:0]quotient;
|
|
output [31:0]remain;
|
|
|
|
reg [63:0]numer;
|
|
reg [31:0]denom0;
|
|
|
|
always @ (posedge clock)
|
|
begin
|
|
numer <= numer_;
|
|
denom0 <= denom_;
|
|
end
|
|
|
|
///////////////////////////////////////////////////Unchanged starts here
|
|
reg [94:0]numer_temp_63; //need to add bits
|
|
reg [94:0]numer_temp_62;
|
|
reg [94:0]numer_temp_61;
|
|
reg [94:0]numer_temp_60_d, numer_temp_60_q;
|
|
reg [94:0]numer_temp_59;
|
|
reg [94:0]numer_temp_58;
|
|
reg [94:0]numer_temp_57_d, numer_temp_57_q;
|
|
reg [94:0]numer_temp_56;
|
|
reg [94:0]numer_temp_55;
|
|
reg [94:0]numer_temp_54_d, numer_temp_54_q;
|
|
reg [94:0]numer_temp_53;
|
|
reg [94:0]numer_temp_52;
|
|
reg [94:0]numer_temp_51_d, numer_temp_51_q;
|
|
reg [94:0]numer_temp_50;
|
|
reg [94:0]numer_temp_49;
|
|
reg [94:0]numer_temp_48_d, numer_temp_48_q;
|
|
reg [94:0]numer_temp_47;
|
|
reg [94:0]numer_temp_46;
|
|
reg [94:0]numer_temp_45_d, numer_temp_45_q;
|
|
reg [94:0]numer_temp_44;
|
|
reg [94:0]numer_temp_43;
|
|
reg [94:0]numer_temp_42_d, numer_temp_42_q;
|
|
reg [94:0]numer_temp_41;
|
|
reg [94:0]numer_temp_40;
|
|
reg [94:0]numer_temp_39_d, numer_temp_39_q;
|
|
reg [94:0]numer_temp_38;
|
|
reg [94:0]numer_temp_37;
|
|
reg [94:0]numer_temp_36_d, numer_temp_36_q;
|
|
reg [94:0]numer_temp_35;
|
|
reg [94:0]numer_temp_34;
|
|
reg [94:0]numer_temp_33_d, numer_temp_33_q;
|
|
reg [94:0]numer_temp_32;
|
|
reg [94:0]numer_temp_31;
|
|
reg [94:0]numer_temp_30_d, numer_temp_30_q;
|
|
reg [94:0]numer_temp_29;
|
|
reg [94:0]numer_temp_28;
|
|
reg [94:0]numer_temp_27_d, numer_temp_27_q;
|
|
reg [94:0]numer_temp_26;
|
|
reg [94:0]numer_temp_25;
|
|
reg [94:0]numer_temp_24;
|
|
reg [94:0]numer_temp_23_d, numer_temp_23_q;
|
|
reg [94:0]numer_temp_22;
|
|
reg [94:0]numer_temp_21;
|
|
reg [94:0]numer_temp_20;
|
|
reg [94:0]numer_temp_19_d, numer_temp_19_q;
|
|
reg [94:0]numer_temp_18;
|
|
reg [94:0]numer_temp_17;
|
|
reg [94:0]numer_temp_16;
|
|
reg [94:0]numer_temp_15_d, numer_temp_15_q;
|
|
reg [94:0]numer_temp_14;
|
|
reg [94:0]numer_temp_13;
|
|
reg [94:0]numer_temp_12;
|
|
reg [94:0]numer_temp_11_d, numer_temp_11_q;
|
|
reg [94:0]numer_temp_10;
|
|
reg [94:0]numer_temp_9;
|
|
reg [94:0]numer_temp_8;
|
|
reg [94:0]numer_temp_7_d, numer_temp_7_q;
|
|
reg [94:0]numer_temp_6;
|
|
reg [94:0]numer_temp_5;
|
|
reg [94:0]numer_temp_4;
|
|
reg [94:0]numer_temp_3_d, numer_temp_3_q;
|
|
reg [94:0]numer_temp_2;
|
|
reg [94:0]numer_temp_1_d, numer_temp_1_q;
|
|
reg [94:0]numer_temp_0;
|
|
reg [94:0]numer_temp;
|
|
|
|
//The dummy pipeline (20 clock cycles)
|
|
reg [63:0]quo0_d;
|
|
reg [63:0]quo1_d;
|
|
reg [63:0]quo2_d;
|
|
reg [63:0]quo3_d;
|
|
reg [63:0]quo4_d;
|
|
reg [63:0]quo5_d;
|
|
reg [63:0]quo6_d;
|
|
reg [63:0]quo7_d;
|
|
reg [63:0]quo8_d;
|
|
reg [63:0]quo9_d;
|
|
reg [63:0]quo10_d;
|
|
reg [63:0]quo11_d;
|
|
reg [63:0]quo12_d;
|
|
reg [63:0]quo13_d;
|
|
reg [63:0]quo14_d;
|
|
reg [63:0]quo15_d;
|
|
reg [63:0]quo16_d;
|
|
reg [63:0]quo17_d;
|
|
reg [63:0]quo18_d;
|
|
reg [63:0]quo19_d;
|
|
|
|
reg [63:0]quo0_q;
|
|
reg [63:0]quo1_q;
|
|
reg [63:0]quo2_q;
|
|
reg [63:0]quo3_q;
|
|
reg [63:0]quo4_q;
|
|
reg [63:0]quo5_q;
|
|
reg [63:0]quo6_q;
|
|
reg [63:0]quo7_q;
|
|
reg [63:0]quo8_q;
|
|
reg [63:0]quo9_q;
|
|
reg [63:0]quo10_q;
|
|
reg [63:0]quo11_q;
|
|
reg [63:0]quo12_q;
|
|
reg [63:0]quo13_q;
|
|
reg [63:0]quo14_q;
|
|
reg [63:0]quo15_q;
|
|
reg [63:0]quo16_q;
|
|
reg [63:0]quo17_q;
|
|
reg [63:0]quo18_q;
|
|
|
|
reg [31:0]denom1;
|
|
reg [31:0]denom2;
|
|
reg [31:0]denom3;
|
|
reg [31:0]denom4;
|
|
reg [31:0]denom5;
|
|
reg [31:0]denom6;
|
|
reg [31:0]denom7;
|
|
reg [31:0]denom8;
|
|
reg [31:0]denom9;
|
|
reg [31:0]denom10;
|
|
reg [31:0]denom11;
|
|
reg [31:0]denom12;
|
|
reg [31:0]denom13;
|
|
reg [31:0]denom14;
|
|
reg [31:0]denom15;
|
|
reg [31:0]denom16;
|
|
reg [31:0]denom17;
|
|
reg [31:0]denom18;
|
|
reg [31:0]denom19;
|
|
|
|
|
|
always @(numer or denom0) begin
|
|
numer_temp_63 = {31'b0, numer};
|
|
|
|
//quo0[63]
|
|
if (numer_temp_63[94:63] >= denom0 ) begin
|
|
quo0_d[63] = 1'b1;
|
|
numer_temp_62 = {numer_temp_63[94:63] - denom0, numer_temp_63[62:0]};
|
|
end else begin
|
|
quo0_d[63] = 1'b0;
|
|
numer_temp_62 = numer_temp_63;
|
|
end
|
|
|
|
//quo0[62]
|
|
if (numer_temp_62[94:62] >= denom0 ) begin
|
|
quo0_d[62] = 1'b1;
|
|
numer_temp_61 = {numer_temp_62[94:62] - denom0, numer_temp_62[61:0]};
|
|
end else begin
|
|
quo0_d[62] = 1'b0;
|
|
numer_temp_61 = numer_temp_62;
|
|
end
|
|
//quo0[61]
|
|
if (numer_temp_61[94:61] >= denom0 ) begin
|
|
quo0_d[61] = 1'b1;
|
|
numer_temp_60_d = {numer_temp_61[94:61] - denom0, numer_temp_61[60:0]};
|
|
end else begin
|
|
quo0_d[61] = 1'b0;
|
|
numer_temp_60_d = numer_temp_61;
|
|
end
|
|
quo0_d[60:0] = 61'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo0_q <= quo0_d;
|
|
numer_temp_60_q <= numer_temp_60_d;
|
|
denom1 <= denom0;
|
|
end
|
|
|
|
always @(numer_temp_60_q or denom1 or quo0_q) begin
|
|
quo1_d[63:61] = quo0_q[63:61];
|
|
|
|
//quo1_d[60]
|
|
if (numer_temp_60_q[94:60] >= denom1 ) begin
|
|
quo1_d[60] = 1'b1;
|
|
numer_temp_59 = {numer_temp_60_q[94:60] - denom1, numer_temp_60_q[59:0]};
|
|
end else begin
|
|
quo1_d[60] = 1'b0;
|
|
numer_temp_59 = numer_temp_60_q;
|
|
end
|
|
//quo1_d[59]
|
|
if (numer_temp_59[94:59] >= denom1 ) begin
|
|
quo1_d[59] = 1'b1;
|
|
numer_temp_58 = {numer_temp_59[94:59] - denom1, numer_temp_59[58:0]};
|
|
end else begin
|
|
quo1_d[59] = 1'b0;
|
|
numer_temp_58 = numer_temp_59;
|
|
end
|
|
//quo1_d[58]
|
|
if (numer_temp_58[94:58] >= denom1 ) begin
|
|
quo1_d[58] = 1'b1;
|
|
numer_temp_57_d = {numer_temp_58[94:58] - denom1, numer_temp_58[57:0]};
|
|
end else begin
|
|
quo1_d[58] = 1'b0;
|
|
numer_temp_57_d = numer_temp_58;
|
|
end
|
|
quo1_d[57:0] = 58'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo1_q <= quo1_d;
|
|
numer_temp_57_q <= numer_temp_57_d;
|
|
denom2 <= denom1;
|
|
end
|
|
|
|
always @ (numer_temp_57_q or denom2 or quo1_q) begin
|
|
quo2_d[63:58] = quo1_q[63:58];
|
|
|
|
//quo2_d[57]
|
|
if (numer_temp_57_q[94:57] >= denom2 ) begin
|
|
quo2_d[57] = 1'b1;
|
|
numer_temp_56 = {numer_temp_57_q[94:57] - denom2, numer_temp_57_q[56:0]};
|
|
end else begin
|
|
quo2_d[57] = 1'b0;
|
|
numer_temp_56 = numer_temp_57_q;
|
|
end
|
|
//quo2_d[56]
|
|
if (numer_temp_56[94:56] >= denom2 ) begin
|
|
quo2_d[56] = 1'b1;
|
|
numer_temp_55 = {numer_temp_56[94:56] - denom2, numer_temp_56[55:0]};
|
|
end else begin
|
|
quo2_d[56] = 1'b0;
|
|
numer_temp_55 = numer_temp_56;
|
|
end
|
|
//quo2_d[55]
|
|
if (numer_temp_55[94:55] >= denom2 ) begin
|
|
quo2_d[55] = 1'b1;
|
|
numer_temp_54_d = {numer_temp_55[94:55] - denom2, numer_temp_55[54:0]};
|
|
end else begin
|
|
quo2_d[55] = 1'b0;
|
|
numer_temp_54_d = numer_temp_55;
|
|
end
|
|
quo2_d[54:0] = 55'b0;
|
|
end
|
|
|
|
|
|
always @ (posedge clock) begin
|
|
quo2_q <= quo2_d;
|
|
numer_temp_54_q <= numer_temp_54_d;
|
|
denom3 <= denom2;
|
|
end
|
|
|
|
always @ (numer_temp_54_q or denom3 or quo2_q) begin
|
|
quo3_d[63:55] = quo2_q[63:55];
|
|
|
|
//quo3_d[54]
|
|
if (numer_temp_54_q[94:54] >= denom3 ) begin
|
|
quo3_d[54] = 1'b1;
|
|
numer_temp_53 = {numer_temp_54_q[94:54] - denom3, numer_temp_54_q[53:0]};
|
|
end else begin
|
|
quo3_d[54] = 1'b0;
|
|
numer_temp_53 = numer_temp_54_q;
|
|
end
|
|
//quo3_d[53]
|
|
if (numer_temp_53[94:53] >= denom3 ) begin
|
|
quo3_d[53] = 1'b1;
|
|
numer_temp_52 = {numer_temp_53[94:53] - denom3, numer_temp_53[52:0]};
|
|
end else begin
|
|
quo3_d[53] = 1'b0;
|
|
numer_temp_52 = numer_temp_53;
|
|
end
|
|
//quo3_d[52]
|
|
if (numer_temp_52[94:52] >= denom3 ) begin
|
|
quo3_d[52] = 1'b1;
|
|
numer_temp_51_d = {numer_temp_52[94:52] - denom3, numer_temp_52[51:0]};
|
|
end else begin
|
|
quo3_d[52] = 1'b0;
|
|
numer_temp_51_d = numer_temp_52;
|
|
end
|
|
quo3_d[51:0] = 52'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo3_q <= quo3_d;
|
|
numer_temp_51_q <= numer_temp_51_d;
|
|
denom4 <= denom3;
|
|
end
|
|
|
|
always @ (numer_temp_51_q or denom4 or quo3_q) begin
|
|
quo4_d[63:52] = quo3_q[63:52];
|
|
|
|
//quo4[51]
|
|
if (numer_temp_51_q[94:51] >= denom4 ) begin
|
|
quo4_d[51] = 1'b1;
|
|
numer_temp_50 = {numer_temp_51_q[94:51] - denom4, numer_temp_51_q[50:0]};
|
|
end else begin
|
|
quo4_d[51] = 1'b0;
|
|
numer_temp_50 = numer_temp_51_q;
|
|
end
|
|
//quo4_d[50]
|
|
if (numer_temp_50[94:50] >= denom4 ) begin
|
|
quo4_d[50] = 1'b1;
|
|
numer_temp_49 = {numer_temp_50[94:50] - denom4, numer_temp_50[49:0]};
|
|
end else begin
|
|
quo4_d[50] = 1'b0;
|
|
numer_temp_49 = numer_temp_50;
|
|
end
|
|
//quo4_d[49]
|
|
if (numer_temp_49[94:49] >= denom4 ) begin
|
|
quo4_d[49] = 1'b1;
|
|
numer_temp_48_d = {numer_temp_49[94:49] - denom4, numer_temp_49[48:0]};
|
|
end else begin
|
|
quo4_d[49] = 1'b0;
|
|
numer_temp_48_d = numer_temp_49;
|
|
end
|
|
quo4_d[48:0] = 49'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo4_q <= quo4_d;
|
|
numer_temp_48_q <= numer_temp_48_d;
|
|
denom5 <= denom4;
|
|
end
|
|
|
|
always @ (numer_temp_48_q or denom5 or quo4_q) begin
|
|
quo5_d[63:49] = quo4_q[63:49];
|
|
|
|
//quo5_d[48]
|
|
if (numer_temp_48_q[94:48] >= denom5 ) begin
|
|
quo5_d[48] = 1'b1;
|
|
numer_temp_47 = {numer_temp_48_q[94:48] - denom5, numer_temp_48_q[47:0]};
|
|
end else begin
|
|
quo5_d[48] = 1'b0;
|
|
numer_temp_47 = numer_temp_48_q;
|
|
end
|
|
//quo5_d[47]
|
|
if (numer_temp_47[94:47] >= denom5 ) begin
|
|
quo5_d[47] = 1'b1;
|
|
numer_temp_46 = {numer_temp_47[94:47] - denom5, numer_temp_47[46:0]};
|
|
end else begin
|
|
quo5_d[47] = 1'b0;
|
|
numer_temp_46 = numer_temp_47;
|
|
end
|
|
//quo5_d[46]
|
|
if (numer_temp_46[94:46] >= denom5 ) begin
|
|
quo5_d[46] = 1'b1;
|
|
numer_temp_45_d = {numer_temp_46[94:46] - denom5, numer_temp_46[45:0]};
|
|
end else begin
|
|
quo5_d[46] = 1'b0;
|
|
numer_temp_45_d = numer_temp_46;
|
|
end
|
|
quo5_d[45:0] = 46'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo5_q <= quo5_d;
|
|
numer_temp_45_q <= numer_temp_45_d;
|
|
denom6 <= denom5;
|
|
end
|
|
|
|
always @ (numer_temp_45_q or denom6 or quo5_q) begin
|
|
quo6_d[63:46] = quo5_q[63:46];
|
|
|
|
//quo6_d[45]
|
|
if (numer_temp_45_q[94:45] >= denom6 ) begin
|
|
quo6_d[45] = 1'b1;
|
|
numer_temp_44 = {numer_temp_45_q[94:45] - denom6, numer_temp_45_q[44:0]};
|
|
end else begin
|
|
quo6_d[45] = 1'b0;
|
|
numer_temp_44 = numer_temp_45_q;
|
|
end
|
|
//quo6_d[44]
|
|
if (numer_temp_44[94:44] >= denom6 ) begin
|
|
quo6_d[44] = 1'b1;
|
|
numer_temp_43 = {numer_temp_44[94:44] - denom6, numer_temp_44[43:0]};
|
|
end else begin
|
|
quo6_d[44] = 1'b0;
|
|
numer_temp_43 = numer_temp_44;
|
|
end
|
|
//quo6_d[43]
|
|
if (numer_temp_43[94:43] >= denom6 ) begin
|
|
quo6_d[43] = 1'b1;
|
|
numer_temp_42_d = {numer_temp_43[94:43] - denom6, numer_temp_43[42:0]};
|
|
end else begin
|
|
quo6_d[43] = 1'b0;
|
|
numer_temp_42_d = numer_temp_43;
|
|
end
|
|
quo6_d[42:0] = 43'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo6_q<= quo6_d;
|
|
numer_temp_42_q <= numer_temp_42_d;
|
|
denom7 <= denom6;
|
|
end
|
|
|
|
always @ (numer_temp_42_q or denom7 or quo6_q) begin
|
|
quo7_d[63:43] = quo6_q[63:43];
|
|
|
|
//quo7_d[42]
|
|
if (numer_temp_42_q[94:42] >= denom7 ) begin
|
|
quo7_d[42] = 1'b1;
|
|
numer_temp_41 = {numer_temp_42_q[94:42] - denom7, numer_temp_42_q[41:0]};
|
|
end else begin
|
|
quo7_d[42] = 1'b0;
|
|
numer_temp_41 = numer_temp_42_q;
|
|
end
|
|
//quo7_d[41]
|
|
if (numer_temp_41[94:41] >= denom7 ) begin
|
|
quo7_d[41] = 1'b1;
|
|
numer_temp_40 = {numer_temp_41[94:41] - denom7, numer_temp_41[40:0]};
|
|
end else begin
|
|
quo7_d[41] = 1'b0;
|
|
numer_temp_40 = numer_temp_41;
|
|
end
|
|
//quo7_d[40]
|
|
if (numer_temp_40[94:40] >= denom7 ) begin
|
|
quo7_d[40] = 1'b1;
|
|
numer_temp_39_d = {numer_temp_40[94:40] - denom7, numer_temp_40[39:0]};
|
|
end else begin
|
|
quo7_d[40] = 1'b0;
|
|
numer_temp_39_d = numer_temp_40;
|
|
end
|
|
quo7_d[39:0] = 40'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo7_q <= quo7_d;
|
|
numer_temp_39_q <= numer_temp_39_d;
|
|
denom8 <= denom7;
|
|
end
|
|
|
|
always @ (numer_temp_39_q or denom8 or quo7_q) begin
|
|
quo8_d[63:40] = quo7_q[63:40];
|
|
|
|
//quo8[39]
|
|
if (numer_temp_39_q[94:39] >= denom8 ) begin
|
|
quo8_d[39] = 1'b1;
|
|
numer_temp_38 = {numer_temp_39_q[94:39] - denom8, numer_temp_39_q[38:0]};
|
|
end else begin
|
|
quo8_d[39] = 1'b0;
|
|
numer_temp_38 = numer_temp_39_q;
|
|
end
|
|
//quo8_d[38]
|
|
if (numer_temp_38[94:38] >= denom8 ) begin
|
|
quo8_d[38] = 1'b1;
|
|
numer_temp_37 = {numer_temp_38[94:38] - denom8, numer_temp_38[37:0]};
|
|
end else begin
|
|
quo8_d[38] = 1'b0;
|
|
numer_temp_37 = numer_temp_38;
|
|
end
|
|
//quo8_d[37]
|
|
if (numer_temp_37[94:37] >= denom8 ) begin
|
|
quo8_d[37] = 1'b1;
|
|
numer_temp_36_d = {numer_temp_37[94:37] - denom8, numer_temp_37[36:0]};
|
|
end else begin
|
|
quo8_d[37] = 1'b0;
|
|
numer_temp_36_d = numer_temp_37;
|
|
end
|
|
quo8_d[36:0] = 37'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo8_q <= quo8_d;
|
|
numer_temp_36_q <= numer_temp_36_d;
|
|
denom9 <= denom8;
|
|
end
|
|
|
|
always @ (numer_temp_36_q or denom9 or quo8_q) begin
|
|
quo9_d[63:37] = quo8_q[63:37];
|
|
|
|
//quo9[36]
|
|
if (numer_temp_36_q[94:36] >= denom9 ) begin
|
|
quo9_d[36] = 1'b1;
|
|
numer_temp_35 = {numer_temp_36_q[94:36] - denom9, numer_temp_36_q[35:0]};
|
|
end else begin
|
|
quo9_d[36] = 1'b0;
|
|
numer_temp_35 = numer_temp_36_q;
|
|
end
|
|
//quo9_d[35]
|
|
if (numer_temp_35[94:35] >= denom9 ) begin
|
|
quo9_d[35] = 1'b1;
|
|
numer_temp_34 = {numer_temp_35[94:35] - denom9, numer_temp_35[34:0]};
|
|
end else begin
|
|
quo9_d[35] = 1'b0;
|
|
numer_temp_34 = numer_temp_35;
|
|
end
|
|
//quo9_d[34]
|
|
if (numer_temp_34[94:34] >= denom9 ) begin
|
|
quo9_d[34] = 1'b1;
|
|
numer_temp_33_d = {numer_temp_34[94:34] - denom9, numer_temp_34[33:0]};
|
|
end else begin
|
|
quo9_d[34] = 1'b0;
|
|
numer_temp_33_d = numer_temp_34;
|
|
end
|
|
quo9_d[33:0] = 34'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo9_q <= quo9_d;
|
|
numer_temp_33_q <= numer_temp_33_d;
|
|
denom10 <= denom9;
|
|
end
|
|
|
|
always @ (numer_temp_33_q or denom10 or quo9_q) begin
|
|
quo10_d[63:34] = quo9_q[63:34];
|
|
|
|
//quo10_d[33]
|
|
if (numer_temp_33_q[94:33] >= denom10 ) begin
|
|
quo10_d[33] = 1'b1;
|
|
numer_temp_32 = {numer_temp_33_q[94:33] - denom10, numer_temp_33_q[32:0]};
|
|
end else begin
|
|
quo10_d[33] = 1'b0;
|
|
numer_temp_32 = numer_temp_33_q;
|
|
end
|
|
//quo10_d[32]
|
|
if (numer_temp_32[94:32] >= denom10 ) begin
|
|
quo10_d[32] = 1'b1;
|
|
numer_temp_31 = {numer_temp_32[94:32] - denom10, numer_temp_32[31:0]};
|
|
end else begin
|
|
quo10_d[32] = 1'b0;
|
|
numer_temp_31 = numer_temp_32;
|
|
end
|
|
//quo10_d[31]
|
|
if (numer_temp_31[94:31] >= denom10 ) begin
|
|
quo10_d[31] = 1'b1;
|
|
numer_temp_30_d = {numer_temp_31[94:31] - denom10, numer_temp_31[30:0]};
|
|
end else begin
|
|
quo10_d[31] = 1'b0;
|
|
numer_temp_30_d = numer_temp_31;
|
|
end
|
|
quo10_d[30:0] = 31'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo10_q <= quo10_d;
|
|
numer_temp_30_q <= numer_temp_30_d;
|
|
denom11 <= denom10;
|
|
end
|
|
|
|
always @ (numer_temp_30_q or denom11 or quo10_q) begin
|
|
quo11_d[63:31] = quo10_q[63:31];
|
|
|
|
//quo11[30]
|
|
if (numer_temp_30_q[94:30] >= denom11 ) begin
|
|
quo11_d[30] = 1'b1;
|
|
numer_temp_29 = {numer_temp_30_q[94:30] - denom11, numer_temp_30_q[29:0]};
|
|
end else begin
|
|
quo11_d[30] = 1'b0;
|
|
numer_temp_29 = numer_temp_30_q;
|
|
end
|
|
//quo11_d[29]
|
|
if (numer_temp_29[94:29] >= denom11 ) begin
|
|
quo11_d[29] = 1'b1;
|
|
numer_temp_28 = {numer_temp_29[94:29] - denom11, numer_temp_29[28:0]};
|
|
end else begin
|
|
quo11_d[29] = 1'b0;
|
|
numer_temp_28 = numer_temp_29;
|
|
end
|
|
//quo11_d[28]
|
|
if (numer_temp_28[94:28] >= denom11 ) begin
|
|
quo11_d[28] = 1'b1;
|
|
numer_temp_27_d = {numer_temp_28[94:28] - denom11, numer_temp_28[27:0]};
|
|
end else begin
|
|
quo11_d[28] = 1'b0;
|
|
numer_temp_27_d = numer_temp_28;
|
|
end
|
|
quo11_d[27:0] = 28'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo11_q <= quo11_d;
|
|
numer_temp_27_q <= numer_temp_27_d;
|
|
denom12 <= denom11;
|
|
end
|
|
|
|
always @ (numer_temp_27_q or denom12 or quo11_q) begin
|
|
quo12_d[63:28] = quo11_q[63:28];
|
|
|
|
//quo12[27]
|
|
if (numer_temp_27_q[94:27] >= denom12 ) begin
|
|
quo12_d[27] = 1'b1;
|
|
numer_temp_26 = {numer_temp_27_q[94:27] - denom12, numer_temp_27_q[26:0]};
|
|
end else begin
|
|
quo12_d[27] = 1'b0;
|
|
numer_temp_26 = numer_temp_27_q;
|
|
end
|
|
//quo12_d[26]
|
|
if (numer_temp_26[94:26] >= denom12 ) begin
|
|
quo12_d[26] = 1'b1;
|
|
numer_temp_25 = {numer_temp_26[94:26] - denom12, numer_temp_26[25:0]};
|
|
end else begin
|
|
quo12_d[26] = 1'b0;
|
|
numer_temp_25 = numer_temp_26;
|
|
end
|
|
//quo12_d[25]
|
|
if (numer_temp_25[94:25] >= denom12 ) begin
|
|
quo12_d[25] = 1'b1;
|
|
numer_temp_24 = {numer_temp_25[94:25] - denom12, numer_temp_25[24:0]};
|
|
end else begin
|
|
quo12_d[25] = 1'b0;
|
|
numer_temp_24 = numer_temp_25;
|
|
end
|
|
//quo12_d[24]
|
|
if (numer_temp_24[94:24] >= denom12 ) begin
|
|
quo12_d[24] = 1'b1;
|
|
numer_temp_23_d = {numer_temp_24[94:24] - denom12, numer_temp_24[23:0]};
|
|
end else begin
|
|
quo12_d[24] = 1'b0;
|
|
numer_temp_23_d = numer_temp_24;
|
|
end
|
|
quo12_d[23:0] = 24'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo12_q <= quo12_d;
|
|
numer_temp_23_q <= numer_temp_23_d;
|
|
denom13 <= denom12;
|
|
end
|
|
|
|
always @ (numer_temp_23_q or denom13 or quo12_q) begin
|
|
quo13_d[63:24] = quo12_q[63:24];
|
|
|
|
//quo13_d[23]
|
|
if (numer_temp_23_q[94:23] >= denom13 ) begin
|
|
quo13_d[23] = 1'b1;
|
|
numer_temp_22 = {numer_temp_23_q[94:23] - denom13, numer_temp_23_q[22:0]};
|
|
end else begin
|
|
quo13_d[23] = 1'b0;
|
|
numer_temp_22 = numer_temp_23_q;
|
|
end
|
|
//quo13_d[22]
|
|
if (numer_temp_22[94:22] >= denom13 ) begin
|
|
quo13_d[22] = 1'b1;
|
|
numer_temp_21 = {numer_temp_22[94:22] - denom13, numer_temp_22[21:0]};
|
|
end else begin
|
|
quo13_d[22] = 1'b0;
|
|
numer_temp_21 = numer_temp_22;
|
|
end
|
|
//quo13_d[21]
|
|
if (numer_temp_21[94:21] >= denom13 ) begin
|
|
quo13_d[21] = 1'b1;
|
|
numer_temp_20 = {numer_temp_21[94:21] - denom13, numer_temp_21[20:0]};
|
|
end else begin
|
|
quo13_d[21] = 1'b0;
|
|
numer_temp_20 = numer_temp_21;
|
|
end
|
|
//quo13_d[20]
|
|
if (numer_temp_20[94:20] >= denom13 ) begin
|
|
quo13_d[20] = 1'b1;
|
|
numer_temp_19_d = {numer_temp_20[94:20] - denom13, numer_temp_20[19:0]};
|
|
end else begin
|
|
quo13_d[20] = 1'b0;
|
|
numer_temp_19_d = numer_temp_20;
|
|
end
|
|
quo13_d[19:0] = 20'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo13_q <= quo13_d;
|
|
numer_temp_19_q <= numer_temp_19_d;
|
|
denom14 <= denom13;
|
|
end
|
|
|
|
always @ (numer_temp_19_q or denom14 or quo13_q) begin
|
|
quo14_d[63:20] = quo13_q[63:20];
|
|
|
|
//quo14_d[19]
|
|
if (numer_temp_19_q[94:19] >= denom14 ) begin
|
|
quo14_d[19] = 1'b1;
|
|
numer_temp_18 = {numer_temp_19_q[94:19] - denom14, numer_temp_19_q[18:0]};
|
|
end else begin
|
|
quo14_d[19] = 1'b0;
|
|
numer_temp_18 = numer_temp_19_q;
|
|
end
|
|
//quo14_d[18]
|
|
if (numer_temp_18[94:18] >= denom14 ) begin
|
|
quo14_d[18] = 1'b1;
|
|
numer_temp_17 = {numer_temp_18[94:18] - denom14, numer_temp_18[17:0]};
|
|
end else begin
|
|
quo14_d[18] = 1'b0;
|
|
numer_temp_17 = numer_temp_18;
|
|
end
|
|
//quo14_d[17]
|
|
if (numer_temp_17[94:17] >= denom14 ) begin
|
|
quo14_d[17] = 1'b1;
|
|
numer_temp_16 = {numer_temp_17[94:17] - denom14, numer_temp_17[16:0]};
|
|
end else begin
|
|
quo14_d[17] = 1'b0;
|
|
numer_temp_16 = numer_temp_17;
|
|
end
|
|
//quo14_d[16]
|
|
if (numer_temp_16[94:16] >= denom14 ) begin
|
|
quo14_d[16] = 1'b1;
|
|
numer_temp_15_d = {numer_temp_16[94:16] - denom14, numer_temp_16[15:0]};
|
|
end else begin
|
|
quo14_d[16] = 1'b0;
|
|
numer_temp_15_d = numer_temp_16;
|
|
end
|
|
quo14_d[15:0] = 16'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo14_q <= quo14_d;
|
|
numer_temp_15_q <= numer_temp_15_d;
|
|
denom15 <= denom14;
|
|
end
|
|
|
|
always @ (numer_temp_15_q or denom15 or quo14_q) begin
|
|
quo15_d[63:16] = quo14_q[63:16];
|
|
|
|
//quo15_d[15]
|
|
if (numer_temp_15_q[94:15] >= denom15 ) begin
|
|
quo15_d[15] = 1'b1;
|
|
numer_temp_14 = {numer_temp_15_q[94:15] - denom15, numer_temp_15_q[14:0]};
|
|
end else begin
|
|
quo15_d[15] = 1'b0;
|
|
numer_temp_14 = numer_temp_15_q;
|
|
end
|
|
//quo15_d[14]
|
|
if (numer_temp_14[94:14] >= denom15 ) begin
|
|
quo15_d[14] = 1'b1;
|
|
numer_temp_13 = {numer_temp_14[94:14] - denom15, numer_temp_14[13:0]};
|
|
end else begin
|
|
quo15_d[14] = 1'b0;
|
|
numer_temp_13 = numer_temp_14;
|
|
end
|
|
//quo15_d[13]
|
|
if (numer_temp_13[94:13] >= denom15 ) begin
|
|
quo15_d[13] = 1'b1;
|
|
numer_temp_12 = {numer_temp_13[94:13] - denom15, numer_temp_13[12:0]};
|
|
end else begin
|
|
quo15_d[13] = 1'b0;
|
|
numer_temp_12 = numer_temp_13;
|
|
end
|
|
//quo15_d[12]
|
|
if (numer_temp_12[94:12] >= denom15 ) begin
|
|
quo15_d[12] = 1'b1;
|
|
numer_temp_11_d = {numer_temp_12[94:12] - denom15, numer_temp_12[11:0]};
|
|
end else begin
|
|
quo15_d[12] = 1'b0;
|
|
numer_temp_11_d = numer_temp_12;
|
|
end
|
|
quo15_d[11:0] = 12'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo15_q <= quo15_d;
|
|
numer_temp_11_q <= numer_temp_11_d;
|
|
denom16 <= denom15;
|
|
end
|
|
|
|
always @ (numer_temp_11_q or denom16 or quo15_q) begin
|
|
quo16_d[63:12] = quo15_q[63:12];
|
|
|
|
//quo16_d[11]
|
|
if (numer_temp_11_q[94:11] >= denom16 ) begin
|
|
quo16_d[11] = 1'b1;
|
|
numer_temp_10 = {numer_temp_11_q[94:11] - denom16, numer_temp_11_q[10:0]};
|
|
end else begin
|
|
quo16_d[11] = 1'b0;
|
|
numer_temp_10 = numer_temp_11_q;
|
|
end
|
|
//quo16_d[10]
|
|
if (numer_temp_10[94:10] >= denom16 ) begin
|
|
quo16_d[10] = 1'b1;
|
|
numer_temp_9 = {numer_temp_10[94:10] - denom16, numer_temp_10[9:0]};
|
|
end else begin
|
|
quo16_d[10] = 1'b0;
|
|
numer_temp_9 = numer_temp_10;
|
|
end
|
|
//quo16_d[9]
|
|
if (numer_temp_9[94:9] >= denom16 ) begin
|
|
quo16_d[9] = 1'b1;
|
|
numer_temp_8 = {numer_temp_9[94:9] - denom16, numer_temp_9[8:0]};
|
|
end else begin
|
|
quo16_d[9] = 1'b0;
|
|
numer_temp_8 = numer_temp_9;
|
|
end
|
|
//quo16_d[8]
|
|
if (numer_temp_8[94:8] >= denom16 ) begin
|
|
quo16_d[8] = 1'b1;
|
|
numer_temp_7_d = {numer_temp_8[94:8] - denom16, numer_temp_8[7:0]};
|
|
end else begin
|
|
quo16_d[8] = 1'b0;
|
|
numer_temp_7_d = numer_temp_8;
|
|
end
|
|
quo16_d[7:0] = 8'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo16_q <= quo16_d;
|
|
numer_temp_7_q <= numer_temp_7_d;
|
|
denom17 <= denom16;
|
|
end
|
|
|
|
always @ (numer_temp_7_q or denom17 or quo16_q) begin
|
|
quo17_d[63:8] = quo16_q[63:8];
|
|
|
|
//quo17_d[7]
|
|
if (numer_temp_7_q[94:7] >= denom17 ) begin
|
|
quo17_d[7] = 1'b1;
|
|
numer_temp_6 = {numer_temp_7_q[94:7] - denom17, numer_temp_7_q[6:0]};
|
|
end else begin
|
|
quo17_d[7] = 1'b0;
|
|
numer_temp_6 = numer_temp_7_q;
|
|
end
|
|
//quo17_d[6]
|
|
if (numer_temp_6[94:6] >= denom17 ) begin
|
|
quo17_d[6] = 1'b1;
|
|
numer_temp_5 = {numer_temp_6[94:6] - denom17, numer_temp_6[5:0]};
|
|
end else begin
|
|
quo17_d[6] = 1'b0;
|
|
numer_temp_5 = numer_temp_6;
|
|
end
|
|
//quo17_d[5]
|
|
if (numer_temp_5[94:5] >= denom17 ) begin
|
|
quo17_d[5] = 1'b1;
|
|
numer_temp_4 = {numer_temp_5[94:5] - denom17, numer_temp_5[4:0]};
|
|
end else begin
|
|
quo17_d[5] = 1'b0;
|
|
numer_temp_4 = numer_temp_5;
|
|
end
|
|
//quo17_d[4]
|
|
if (numer_temp_4[94:4] >= denom17 ) begin
|
|
quo17_d[4] = 1'b1;
|
|
numer_temp_3_d = {numer_temp_4[94:4] - denom17, numer_temp_4[3:0]};
|
|
end else begin
|
|
quo17_d[4] = 1'b0;
|
|
numer_temp_3_d = numer_temp_4;
|
|
end
|
|
quo17_d[3:0] = 4'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo17_q <= quo17_d;
|
|
numer_temp_3_q <= numer_temp_3_d;
|
|
denom18 <= denom17;
|
|
end
|
|
|
|
always @ (numer_temp_3_q or denom18 or quo17_q) begin
|
|
quo18_d[63:4] = quo17_q[63:4];
|
|
|
|
//quo18_d[3]
|
|
if (numer_temp_3_q[94:3] >= denom18 ) begin
|
|
quo18_d[3] = 1'b1;
|
|
numer_temp_2 = {numer_temp_3_q[94:3] - denom18, numer_temp_3_q[2:0]};
|
|
end else begin
|
|
quo18_d[3] = 1'b0;
|
|
numer_temp_2 = numer_temp_3_q;
|
|
end
|
|
//quo18_d[2]
|
|
if (numer_temp_2[94:2] >= denom18 ) begin
|
|
quo18_d[2] = 1'b1;
|
|
numer_temp_1_d = {numer_temp_2[94:2] - denom18, numer_temp_2[1:0]};
|
|
end else begin
|
|
quo18_d[2] = 1'b0;
|
|
numer_temp_1_d = numer_temp_2;
|
|
end
|
|
quo18_d[1:0] = 2'b0;
|
|
end
|
|
|
|
always @ (posedge clock) begin
|
|
quo18_q <= quo18_d;
|
|
numer_temp_1_q <= numer_temp_1_d;
|
|
denom19 <= denom18;
|
|
end
|
|
|
|
always @ (numer_temp_1_q or denom19 or quo18_q) begin
|
|
quo19_d[63:2] = quo18_q[63:2];
|
|
//quo19_d[1]
|
|
if (numer_temp_1_q[94:1] >= denom19 ) begin
|
|
quo19_d[1] = 1'b1;
|
|
numer_temp_0 = {numer_temp_1_q[94:1] - denom19, numer_temp_1_q[0:0]};
|
|
end else begin
|
|
quo19_d[1] = 1'b0;
|
|
numer_temp_0 = numer_temp_1_q;
|
|
|
|
end
|
|
//quo19_d[0]
|
|
if (numer_temp_0[94:0] >= denom19 ) begin
|
|
quo19_d[0] = 1'b1;
|
|
numer_temp = numer_temp_0[94:0] - denom19;
|
|
end else begin
|
|
quo19_d[0] = 1'b0;
|
|
numer_temp = numer_temp_0;
|
|
end
|
|
end
|
|
|
|
assign quotient = quo19_d;
|
|
assign remain = numer_temp[31:0];
|
|
|
|
|
|
|
|
endmodule
|
|
|
|
/*module sqrt_64b (clk, num, res);
|
|
input clk;
|
|
input [63:0]num;
|
|
output [31:0]res;
|
|
reg [31:0]res;*/
|
|
|
|
//`timescale 1 ns / 1 ps
|
|
|
|
module Sqrt_64b (clk, num_, res);
|
|
input clk;
|
|
input [63:0]num_;
|
|
output [31:0]res;
|
|
reg [31:0]res;
|
|
|
|
reg [63:0]num;
|
|
|
|
always @ (posedge clk)
|
|
begin
|
|
num <= num_;
|
|
end
|
|
|
|
///////////////////////////////////////////////////Unchanged starts here
|
|
|
|
// reg [63:0] one_[32:0];
|
|
// reg [63:0] res_[32:0];
|
|
// reg [63:0] op_[32:0];
|
|
|
|
wire [63:0]one__0;
|
|
reg [63:0]one__1;
|
|
reg [63:0]one__2;
|
|
reg [63:0]one__3_d, one__3_q;
|
|
reg [63:0]one__4;
|
|
reg [63:0]one__5;
|
|
reg [63:0]one__6;
|
|
reg [63:0]one__7_d, one__7_q;
|
|
reg [63:0]one__8;
|
|
reg [63:0]one__9;
|
|
reg [63:0]one__10;
|
|
reg [63:0]one__11_d, one__11_q;
|
|
reg [63:0]one__12;
|
|
reg [63:0]one__13;
|
|
reg [63:0]one__14;
|
|
reg [63:0]one__15_d, one__15_q;
|
|
reg [63:0]one__16;
|
|
reg [63:0]one__17;
|
|
reg [63:0]one__18_d, one__18_q;
|
|
reg [63:0]one__19;
|
|
reg [63:0]one__20;
|
|
reg [63:0]one__21_d, one__21_q;
|
|
reg [63:0]one__22;
|
|
reg [63:0]one__23;
|
|
reg [63:0]one__24_d, one__24_q;
|
|
reg [63:0]one__25;
|
|
reg [63:0]one__26;
|
|
reg [63:0]one__27_d, one__27_q;
|
|
reg [63:0]one__28;
|
|
reg [63:0]one__29;
|
|
reg [63:0]one__30_d, one__30_q;
|
|
reg [63:0]one__31;
|
|
reg [63:0]one__32;
|
|
|
|
wire [63:0]res__0;
|
|
reg [63:0]res__1;
|
|
reg [63:0]res__2;
|
|
reg [63:0]res__3_d, res__3_q;
|
|
reg [63:0]res__4;
|
|
reg [63:0]res__5;
|
|
reg [63:0]res__6;
|
|
reg [63:0]res__7_d, res__7_q;
|
|
reg [63:0]res__8;
|
|
reg [63:0]res__9;
|
|
reg [63:0]res__10;
|
|
reg [63:0]res__11_d, res__11_q;
|
|
reg [63:0]res__12;
|
|
reg [63:0]res__13;
|
|
reg [63:0]res__14;
|
|
reg [63:0]res__15_d, res__15_q;
|
|
reg [63:0]res__16;
|
|
reg [63:0]res__17;
|
|
reg [63:0]res__18_d, res__18_q;
|
|
reg [63:0]res__19;
|
|
reg [63:0]res__20;
|
|
reg [63:0]res__21_d, res__21_q;
|
|
reg [63:0]res__22;
|
|
reg [63:0]res__23;
|
|
reg [63:0]res__24_d, res__24_q;
|
|
reg [63:0]res__25;
|
|
reg [63:0]res__26;
|
|
reg [63:0]res__27_d, res__27_q;
|
|
reg [63:0]res__28;
|
|
reg [63:0]res__29;
|
|
reg [63:0]res__30_d, res__30_q;
|
|
reg [63:0]res__31;
|
|
reg [63:0]res__32;
|
|
|
|
wire [63:0]op__0;
|
|
reg [63:0]op__1;
|
|
reg [63:0]op__2;
|
|
reg [63:0]op__3_d, op__3_q;
|
|
reg [63:0]op__4;
|
|
reg [63:0]op__5;
|
|
reg [63:0]op__6;
|
|
reg [63:0]op__7_d, op__7_q;
|
|
reg [63:0]op__8;
|
|
reg [63:0]op__9;
|
|
reg [63:0]op__10;
|
|
reg [63:0]op__11_d, op__11_q;
|
|
reg [63:0]op__12;
|
|
reg [63:0]op__13;
|
|
reg [63:0]op__14;
|
|
reg [63:0]op__15_d, op__15_q;
|
|
reg [63:0]op__16;
|
|
reg [63:0]op__17;
|
|
reg [63:0]op__18_d, op__18_q;
|
|
reg [63:0]op__19;
|
|
reg [63:0]op__20;
|
|
reg [63:0]op__21_d, op__21_q;
|
|
reg [63:0]op__22;
|
|
reg [63:0]op__23;
|
|
reg [63:0]op__24_d, op__24_q;
|
|
reg [63:0]op__25;
|
|
reg [63:0]op__26;
|
|
reg [63:0]op__27_d, op__27_q;
|
|
reg [63:0]op__28;
|
|
reg [63:0]op__29;
|
|
reg [63:0]op__30_d, op__30_q;
|
|
reg [63:0]op__31;
|
|
reg [63:0]op__32;
|
|
|
|
|
|
reg [63:0]one; //This is the one that is selected in first expanded loop
|
|
reg [31:0]one_tmp;
|
|
|
|
always @ (num) begin
|
|
|
|
//The first for-loop:
|
|
//all of these will be zero no matter how 'one' is selected.
|
|
one[1] = 0;
|
|
one[3] = 0;
|
|
one[5] = 0;
|
|
one[7] = 0;
|
|
one[9] = 0;
|
|
one[11] = 0;
|
|
one[13] = 0;
|
|
one[15] = 0;
|
|
one[17] = 0;
|
|
one[19] = 0;
|
|
one[21] = 0;
|
|
one[23] = 0;
|
|
one[25] = 0;
|
|
one[27] = 0;
|
|
one[29] = 0;
|
|
one[31] = 0;
|
|
one[33] = 0;
|
|
one[35] = 0;
|
|
one[37] = 0;
|
|
one[39] = 0;
|
|
one[41] = 0;
|
|
one[43] = 0;
|
|
one[45] = 0;
|
|
one[47] = 0;
|
|
one[49] = 0;
|
|
one[51] = 0;
|
|
one[53] = 0;
|
|
one[55] = 0;
|
|
one[57] = 0;
|
|
one[59] = 0;
|
|
one[61] = 0;
|
|
one[63] = 0;
|
|
|
|
one_tmp[0] = num[0]|num[1];
|
|
one_tmp[1] = num[2]|num[3];
|
|
one_tmp[2] = num[4]|num[5];
|
|
one_tmp[3] = num[6]|num[7];
|
|
one_tmp[4] = num[8]|num[9];
|
|
one_tmp[5] = num[10]|num[11];
|
|
one_tmp[6] = num[12]|num[13];
|
|
one_tmp[7] = num[14]|num[15];
|
|
one_tmp[8] = num[16]|num[17];
|
|
one_tmp[9] = num[18]|num[19];
|
|
one_tmp[10] = num[20]|num[21];
|
|
one_tmp[11] = num[22]|num[23];
|
|
one_tmp[12] = num[24]|num[25];
|
|
one_tmp[13] = num[26]|num[27];
|
|
one_tmp[14] = num[28]|num[29];
|
|
one_tmp[15] = num[30]|num[31];
|
|
one_tmp[16] = num[32]|num[33];
|
|
one_tmp[17] = num[34]|num[35];
|
|
one_tmp[18] = num[36]|num[37];
|
|
one_tmp[19] = num[38]|num[39];
|
|
one_tmp[20] = num[40]|num[41];
|
|
one_tmp[21] = num[42]|num[43];
|
|
one_tmp[22] = num[44]|num[45];
|
|
one_tmp[23] = num[46]|num[47];
|
|
one_tmp[24] = num[48]|num[49];
|
|
one_tmp[25] = num[50]|num[51];
|
|
one_tmp[26] = num[52]|num[53];
|
|
one_tmp[27] = num[54]|num[55];
|
|
one_tmp[28] = num[56]|num[57];
|
|
one_tmp[29] = num[58]|num[59];
|
|
one_tmp[30] = num[60]|num[61];
|
|
one_tmp[31] = num[62]|num[63];
|
|
|
|
one[0] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&~one_tmp[7]&~one_tmp[6]&~one_tmp[5]&~one_tmp[4]&~one_tmp[3]&~one_tmp[2]&~one_tmp[1]&one_tmp[0];
|
|
one[2] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&~one_tmp[7]&~one_tmp[6]&~one_tmp[5]&~one_tmp[4]&~one_tmp[3]&~one_tmp[2]&one_tmp[1];
|
|
one[4] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&~one_tmp[7]&~one_tmp[6]&~one_tmp[5]&~one_tmp[4]&~one_tmp[3]&one_tmp[2];
|
|
one[6] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&~one_tmp[7]&~one_tmp[6]&~one_tmp[5]&~one_tmp[4]&one_tmp[3];
|
|
one[8] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&~one_tmp[7]&~one_tmp[6]&~one_tmp[5]&one_tmp[4];
|
|
one[10] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&~one_tmp[7]&~one_tmp[6]&one_tmp[5];
|
|
one[12] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&~one_tmp[7]&one_tmp[6];
|
|
one[14] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&~one_tmp[8]&one_tmp[7];
|
|
one[16] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&~one_tmp[9]&one_tmp[8];
|
|
one[18] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&~one_tmp[10]&one_tmp[9];
|
|
one[20] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&~one_tmp[11]&one_tmp[10];
|
|
one[22] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&~one_tmp[12]&one_tmp[11];
|
|
one[24] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&~one_tmp[13]&one_tmp[12];
|
|
one[26] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&~one_tmp[14]&one_tmp[13];
|
|
one[28] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&~one_tmp[15]&one_tmp[14];
|
|
one[30] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&~one_tmp[16]&one_tmp[15];
|
|
one[32] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&~one_tmp[17]&one_tmp[16];
|
|
one[34] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&~one_tmp[18]&one_tmp[17];
|
|
one[36] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&~one_tmp[19]&one_tmp[18];
|
|
one[38] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&~one_tmp[20]&one_tmp[19];
|
|
one[40] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&~one_tmp[21]&one_tmp[20];
|
|
one[42] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&~one_tmp[22]&one_tmp[21];
|
|
one[44] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&~one_tmp[23]&one_tmp[22];
|
|
one[46] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&~one_tmp[24]&one_tmp[23];
|
|
one[48] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&~one_tmp[25]&one_tmp[24];
|
|
one[50] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&~one_tmp[26]&one_tmp[25];
|
|
one[52] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&~one_tmp[27]&one_tmp[26];
|
|
one[54] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&~one_tmp[28]&one_tmp[27];
|
|
one[56] = ~one_tmp[31]&~one_tmp[30]&~one_tmp[29]&one_tmp[28];
|
|
one[58] = ~one_tmp[31]&~one_tmp[30]&one_tmp[29];
|
|
one[60] = ~one_tmp[31]&one_tmp[30];
|
|
one[62] = one_tmp[31];
|
|
end
|
|
|
|
// //2nd for-loop:
|
|
// integer i;
|
|
// always @* begin
|
|
// op_[0] = num;
|
|
// one_[0] = one;
|
|
// res_[0] = 64'b0;
|
|
// res = 63'b0;
|
|
// res_assigned = 1'b0;
|
|
//
|
|
// for (i = 0; i <= 31; i=i+1) begin
|
|
// if ((one_[i] == 0) & ~res_assigned) begin
|
|
// res = res_[i];
|
|
// res_assigned = 1'b1;
|
|
// end
|
|
//
|
|
// //Define the next stage:
|
|
// if (op_[i] >= res_[i] + one_[i]) begin
|
|
// op_[i+1] = op_[i] - res_[i] - one_[i];
|
|
// res_[i+1] = (res_[i]>>1) + one_[i];
|
|
// end else begin
|
|
// op_[i+1] = op_[i]; //this line had to be added for the verilog version.
|
|
// res_[i+1] = (res_[i]>>1);
|
|
// end
|
|
// one_[i+1] = (one_[i] >> 2);
|
|
// end
|
|
//
|
|
// //Add the part for really big numbers later:
|
|
// if (~res_assigned) begin
|
|
// res = res_[32];
|
|
// end
|
|
// end
|
|
|
|
//If-statement about defining the next stage:
|
|
assign op__0 = num;
|
|
assign res__0 = 64'b0;
|
|
assign one__0 = one;
|
|
|
|
always @ (res__0 or op__0 or one__0) begin
|
|
|
|
//i = 0
|
|
if (op__0 >= res__0 + one__0) begin
|
|
op__1 = op__0 - res__0 - one__0;
|
|
res__1 = (res__0>>1) + one__0;
|
|
end else begin
|
|
op__1 = op__0;
|
|
res__1 = (res__0>>1);
|
|
end
|
|
one__1 = (one__0 >> 2);
|
|
|
|
//i = 1
|
|
if (op__1 >= res__1 + one__1) begin
|
|
op__2 = op__1 - res__1 - one__1;
|
|
res__2 = (res__1>>1) + one__1;
|
|
end else begin
|
|
op__2 = op__1;
|
|
res__2 = (res__1>>1);
|
|
end
|
|
one__2 = (one__1 >> 2);
|
|
|
|
//i = 2
|
|
if (op__2 >= res__2 + one__2) begin
|
|
op__3_d = op__2 - res__2 - one__2;
|
|
res__3_d = (res__2>>1) + one__2;
|
|
end else begin
|
|
op__3_d = op__2;
|
|
res__3_d = (res__2>>1);
|
|
end
|
|
one__3_d = (one__2 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__3_q <= op__3_d;
|
|
res__3_q <= res__3_d;
|
|
one__3_q <= one__3_d;
|
|
end
|
|
|
|
always @ (op__3_q or res__3_q or one__3_q) begin
|
|
//i = 3
|
|
if (op__3_q >= res__3_q + one__3_q) begin
|
|
op__4 = op__3_q - res__3_q - one__3_q;
|
|
res__4 = (res__3_q>>1) + one__3_q;
|
|
end else begin
|
|
op__4 = op__3_q;
|
|
res__4 = (res__3_q>>1);
|
|
end
|
|
one__4 = (one__3_q >> 2);
|
|
|
|
//i = 4
|
|
if (op__4 >= res__4 + one__4) begin
|
|
op__5 = op__4 - res__4 - one__4;
|
|
res__5 = (res__4>>1) + one__4;
|
|
end else begin
|
|
op__5 = op__4;
|
|
res__5 = (res__4>>1);
|
|
end
|
|
one__5 = (one__4 >> 2);
|
|
|
|
//i = 5
|
|
if (op__5 >= res__5 + one__5) begin
|
|
op__6 = op__5 - res__5 - one__5;
|
|
res__6 = (res__5>>1) + one__5;
|
|
end else begin
|
|
op__6 = op__5;
|
|
res__6 = (res__5>>1);
|
|
end
|
|
one__6 = (one__5 >> 2);
|
|
|
|
//i = 6
|
|
if (op__6 >= res__6 + one__6) begin
|
|
op__7_d = op__6 - res__6 - one__6;
|
|
res__7_d = (res__6>>1) + one__6;
|
|
end else begin
|
|
op__7_d = op__6;
|
|
res__7_d = (res__6>>1);
|
|
end
|
|
one__7_d = (one__6 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__7_q <= op__7_d;
|
|
one__7_q <= one__7_d;
|
|
res__7_q <= res__7_d;
|
|
end
|
|
|
|
always @ (op__7_q or res__7_q or one__7_q) begin
|
|
//i = 7
|
|
if (op__7_q >= res__7_q + one__7_q) begin
|
|
op__8 = op__7_q - res__7_q - one__7_q;
|
|
res__8 = (res__7_q>>1) + one__7_q;
|
|
end else begin
|
|
op__8 = op__7_q;
|
|
res__8 = (res__7_q>>1);
|
|
end
|
|
one__8 = (one__7_q >> 2);
|
|
|
|
//i = 8
|
|
if (op__8 >= res__8 + one__8) begin
|
|
op__9 = op__8 - res__8 - one__8;
|
|
res__9 = (res__8>>1) + one__8;
|
|
end else begin
|
|
op__9 = op__8;
|
|
res__9 = (res__8>>1);
|
|
end
|
|
one__9 = (one__8 >> 2);
|
|
|
|
//i = 9
|
|
if (op__9 >= res__9 + one__9) begin
|
|
op__10 = op__9 - res__9 - one__9;
|
|
res__10 = (res__9>>1) + one__9;
|
|
end else begin
|
|
op__10 = op__9;
|
|
res__10 = (res__9>>1);
|
|
end
|
|
one__10 = (one__9 >> 2);
|
|
|
|
//i = 10
|
|
if (op__10 >= res__10 + one__10) begin
|
|
op__11_d = op__10 - res__10 - one__10;
|
|
res__11_d = (res__10>>1) + one__10;
|
|
end else begin
|
|
op__11_d = op__10;
|
|
res__11_d = (res__10>>1);
|
|
end
|
|
one__11_d = (one__10 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__11_q <= op__11_d;
|
|
one__11_q <= one__11_d;
|
|
res__11_q <= res__11_d;
|
|
end
|
|
|
|
always @ (op__11_q or res__11_q or one__11_q) begin
|
|
//i = 11
|
|
if (op__11_q >= res__11_q + one__11_q) begin
|
|
op__12 = op__11_q - res__11_q - one__11_q;
|
|
res__12 = (res__11_q>>1) + one__11_q;
|
|
end else begin
|
|
op__12 = op__11_q;
|
|
res__12 = (res__11_q>>1);
|
|
end
|
|
one__12 = (one__11_q >> 2);
|
|
|
|
//i = 12
|
|
if (op__12 >= res__12 + one__12) begin
|
|
op__13 = op__12 - res__12 - one__12;
|
|
res__13 = (res__12>>1) + one__12;
|
|
end else begin
|
|
op__13 = op__12;
|
|
res__13 = (res__12>>1);
|
|
end
|
|
one__13 = (one__12 >> 2);
|
|
|
|
//i = 13
|
|
if (op__13 >= res__13 + one__13) begin
|
|
op__14 = op__13 - res__13 - one__13;
|
|
res__14 = (res__13>>1) + one__13;
|
|
end else begin
|
|
op__14 = op__13;
|
|
res__14 = (res__13>>1);
|
|
end
|
|
one__14 = (one__13 >> 2);
|
|
|
|
//i = 14
|
|
if (op__14 >= res__14 + one__14) begin
|
|
op__15_d = op__14 - res__14 - one__14;
|
|
res__15_d = (res__14>>1) + one__14;
|
|
end else begin
|
|
op__15_d = op__14;
|
|
res__15_d = (res__14>>1);
|
|
end
|
|
one__15_d = (one__14 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__15_q <= op__15_d;
|
|
one__15_q <= one__15_d;
|
|
res__15_q <= res__15_d;
|
|
end
|
|
|
|
always @ (op__15_q or res__15_q or one__15_q) begin
|
|
//i = 15
|
|
if (op__15_q >= res__15_q + one__15_q) begin
|
|
op__16 = op__15_q - res__15_q - one__15_q;
|
|
res__16 = (res__15_q>>1) + one__15_q;
|
|
end else begin
|
|
op__16 = op__15_q;
|
|
res__16 = (res__15_q>>1);
|
|
end
|
|
one__16 = (one__15_q >> 2);
|
|
|
|
//i = 16
|
|
if (op__16 >= res__16 + one__16) begin
|
|
op__17 = op__16 - res__16 - one__16;
|
|
res__17 = (res__16>>1) + one__16;
|
|
end else begin
|
|
op__17 = op__16;
|
|
res__17 = (res__16>>1);
|
|
end
|
|
one__17 = (one__16 >> 2);
|
|
|
|
//i = 17
|
|
if (op__17 >= res__17 + one__17) begin
|
|
op__18_d = op__17 - res__17 - one__17;
|
|
res__18_d = (res__17>>1) + one__17;
|
|
end else begin
|
|
op__18_d = op__17;
|
|
res__18_d = (res__17>>1);
|
|
end
|
|
one__18_d = (one__17 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__18_q <= op__18_d;
|
|
one__18_q <= one__18_d;
|
|
res__18_q <= res__18_d;
|
|
end
|
|
|
|
always @ (op__18_q or res__18_q or one__18_q) begin
|
|
//i = 18
|
|
if (op__18_q >= res__18_q + one__18_q) begin
|
|
op__19 = op__18_q - res__18_q - one__18_q;
|
|
res__19 = (res__18_q>>1) + one__18_q;
|
|
end else begin
|
|
op__19 = op__18_q;
|
|
res__19 = (res__18_q>>1);
|
|
end
|
|
one__19 = (one__18_q >> 2);
|
|
|
|
//i = 19
|
|
if (op__19 >= res__19 + one__19) begin
|
|
op__20 = op__19 - res__19 - one__19;
|
|
res__20 = (res__19>>1) + one__19;
|
|
end else begin
|
|
op__20 = op__19;
|
|
res__20 = (res__19>>1);
|
|
end
|
|
one__20 = (one__19 >> 2);
|
|
|
|
//i = 20
|
|
if (op__20 >= res__20 + one__20) begin
|
|
op__21_d = op__20 - res__20 - one__20;
|
|
res__21_d = (res__20>>1) + one__20;
|
|
end else begin
|
|
op__21_d = op__20;
|
|
res__21_d = (res__20>>1);
|
|
end
|
|
one__21_d = (one__20 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__21_q <= op__21_d;
|
|
one__21_q <= one__21_d;
|
|
res__21_q <= res__21_d;
|
|
end
|
|
|
|
always @ (op__21_q or res__21_q or one__21_q) begin
|
|
//i = 21
|
|
if (op__21_q >= res__21_q + one__21_q) begin
|
|
op__22 = op__21_q - res__21_q - one__21_q;
|
|
res__22 = (res__21_q>>1) + one__21_q;
|
|
end else begin
|
|
op__22 = op__21_q;
|
|
res__22 = (res__21_q>>1);
|
|
end
|
|
one__22 = (one__21_q >> 2);
|
|
|
|
//i = 22
|
|
if (op__22 >= res__22 + one__22) begin
|
|
op__23 = op__22 - res__22 - one__22;
|
|
res__23 = (res__22>>1) + one__22;
|
|
end else begin
|
|
op__23 = op__22;
|
|
res__23 = (res__22>>1);
|
|
end
|
|
one__23 = (one__22 >> 2);
|
|
|
|
//i = 23
|
|
if (op__23 >= res__23 + one__23) begin
|
|
op__24_d = op__23 - res__23 - one__23;
|
|
res__24_d = (res__23>>1) + one__23;
|
|
end else begin
|
|
op__24_d = op__23;
|
|
res__24_d = (res__23>>1);
|
|
end
|
|
one__24_d = (one__23 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__24_q <= op__24_d;
|
|
one__24_q <= one__24_d;
|
|
res__24_q <= res__24_d;
|
|
end
|
|
|
|
always @ (op__24_q or res__24_q or one__24_q) begin
|
|
//i = 24
|
|
if (op__24_q >= res__24_q + one__24_q) begin
|
|
op__25 = op__24_q - res__24_q - one__24_q;
|
|
res__25 = (res__24_q>>1) + one__24_q;
|
|
end else begin
|
|
op__25 = op__24_q;
|
|
res__25 = (res__24_q>>1);
|
|
end
|
|
one__25 = (one__24_q >> 2);
|
|
|
|
//i = 25
|
|
if (op__25 >= res__25 + one__25) begin
|
|
op__26 = op__25 - res__25 - one__25;
|
|
res__26 = (res__25>>1) + one__25;
|
|
end else begin
|
|
op__26 = op__25;
|
|
res__26 = (res__25>>1);
|
|
end
|
|
one__26 = (one__25 >> 2);
|
|
|
|
//i = 26
|
|
if (op__26 >= res__26 + one__26) begin
|
|
op__27_d = op__26 - res__26 - one__26;
|
|
res__27_d = (res__26>>1) + one__26;
|
|
end else begin
|
|
op__27_d = op__26;
|
|
res__27_d = (res__26>>1);
|
|
end
|
|
one__27_d = (one__26 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__27_q <= op__27_d;
|
|
one__27_q <= one__27_d;
|
|
res__27_q <= res__27_d;
|
|
end
|
|
|
|
always @ (op__27_q or res__27_q or one__27_q) begin
|
|
//i = 27
|
|
if (op__27_q >= res__27_q + one__27_q) begin
|
|
op__28 = op__27_q - res__27_q - one__27_q;
|
|
res__28 = (res__27_q>>1) + one__27_q;
|
|
end else begin
|
|
op__28 = op__27_q;
|
|
res__28 = (res__27_q>>1);
|
|
end
|
|
one__28 = (one__27_q >> 2);
|
|
|
|
//i = 28
|
|
if (op__28 >= res__28 + one__28) begin
|
|
op__29 = op__28 - res__28 - one__28;
|
|
res__29 = (res__28>>1) + one__28;
|
|
end else begin
|
|
op__29 = op__28;
|
|
res__29 = (res__28>>1);
|
|
end
|
|
one__29 = (one__28 >> 2);
|
|
|
|
//i = 29
|
|
if (op__29 >= res__29 + one__29) begin
|
|
op__30_d = op__29 - res__29 - one__29;
|
|
res__30_d = (res__29>>1) + one__29;
|
|
end else begin
|
|
op__30_d = op__29;
|
|
res__30_d = (res__29>>1);
|
|
end
|
|
one__30_d = (one__29 >> 2);
|
|
end
|
|
|
|
always @ (posedge clk) begin
|
|
op__30_q <= op__30_d;
|
|
one__30_q <= one__30_d;
|
|
res__30_q <= res__30_d;
|
|
end
|
|
|
|
always @* begin
|
|
//i = 30
|
|
if (op__30_q >= res__30_q + one__30_q) begin
|
|
op__31 = op__30_q - res__30_q - one__30_q;
|
|
res__31 = (res__30_q>>1) + one__30_q;
|
|
end else begin
|
|
op__31 = op__30_q;
|
|
res__31 = (res__30_q>>1);
|
|
end
|
|
one__31 = (one__30_q >> 2);
|
|
|
|
//i = 31
|
|
if (op__31 >= res__31 + one__31) begin
|
|
op__32 = op__31 - res__31 - one__31;
|
|
res__32 = (res__31>>1) + one__31;
|
|
end else begin
|
|
op__32 = op__31;
|
|
res__32 = (res__31>>1);
|
|
end
|
|
one__32 = (one__31 >> 2);
|
|
end
|
|
|
|
|
|
//If-statement about assigning res:
|
|
always @* begin
|
|
if(one__0 == 0) begin
|
|
res = res__0[31:0];
|
|
end else if (one__1 == 0) begin
|
|
res = res__1[31:0];
|
|
end else if (one__2 == 0) begin
|
|
res = res__2[31:0];
|
|
end else if (one__3_q == 0) begin
|
|
res = res__3_q[31:0];
|
|
end else if (one__4 == 0) begin
|
|
res = res__4[31:0];
|
|
end else if (one__5 == 0) begin
|
|
res = res__5[31:0];
|
|
end else if (one__6 == 0) begin
|
|
res = res__6[31:0];
|
|
end else if (one__7_q == 0) begin
|
|
res = res__7_q[31:0];
|
|
end else if (one__8 == 0) begin
|
|
res = res__8[31:0];
|
|
end else if (one__9 == 0) begin
|
|
res = res__9[31:0];
|
|
end else if (one__10 == 0) begin
|
|
res = res__10[31:0];
|
|
end else if (one__11_q == 0) begin
|
|
res = res__11_q[31:0];
|
|
end else if (one__12 == 0) begin
|
|
res = res__12[31:0];
|
|
end else if (one__13 == 0) begin
|
|
res = res__13[31:0];
|
|
end else if (one__14 == 0) begin
|
|
res = res__14[31:0];
|
|
end else if (one__15_q == 0) begin
|
|
res = res__15_q[31:0];
|
|
end else if (one__16 == 0) begin
|
|
res = res__16[31:0];
|
|
end else if (one__17 == 0) begin
|
|
res = res__17[31:0];
|
|
end else if (one__18_q == 0) begin
|
|
res = res__18_q[31:0];
|
|
end else if (one__19 == 0) begin
|
|
res = res__19[31:0];
|
|
end else if (one__20 == 0) begin
|
|
res = res__20[31:0];
|
|
end else if (one__21_q == 0) begin
|
|
res = res__21_q[31:0];
|
|
end else if (one__22 == 0) begin
|
|
res = res__22[31:0];
|
|
end else if (one__23 == 0) begin
|
|
res = res__23[31:0];
|
|
end else if (one__24_q == 0) begin
|
|
res = res__24_q[31:0];
|
|
end else if (one__25 == 0) begin
|
|
res = res__25[31:0];
|
|
end else if (one__26 == 0) begin
|
|
res = res__26[31:0];
|
|
end else if (one__27_q == 0) begin
|
|
res = res__27_q[31:0];
|
|
end else if (one__28 == 0) begin
|
|
res = res__28[31:0];
|
|
end else if (one__29 == 0) begin
|
|
res = res__29[31:0];
|
|
end else if (one__30_q == 0) begin
|
|
res = res__30_q[31:0];
|
|
end else if (one__31 == 0) begin
|
|
res = res__31[31:0];
|
|
end else begin
|
|
res = res__32[31:0];
|
|
end
|
|
|
|
end
|
|
|
|
|
|
endmodule
|
|
|
|
//---------------------------------------
|
|
// A dual-port RAM 8192x32
|
|
// This module is tuned for VTR's benchmarks
|
|
//---------------------------------------
|
|
module dual_port_ram_8192x32 (
|
|
input clk,
|
|
input we1,
|
|
input we2,
|
|
input [13 - 1 : 0] addr1,
|
|
input [32 - 1 : 0] data1,
|
|
output [32 - 1 : 0] out1,
|
|
input [13 - 1 : 0] addr2,
|
|
input [32 - 1 : 0] data2,
|
|
output [32 - 1 : 0] out2
|
|
);
|
|
reg [32 - 1 : 0] ram[2**13 - 1 : 0];
|
|
reg [32 - 1 : 0] data_out1;
|
|
reg [32 - 1 : 0] data_out2;
|
|
|
|
assign out1 = data_out1;
|
|
assign out2 = data_out2;
|
|
|
|
// If writen enable 1 is activated,
|
|
// data1 will be loaded through addr1
|
|
// Otherwise, data will be read out through addr1
|
|
always @(posedge clk) begin
|
|
if (we1) begin
|
|
ram[addr1] <= data1;
|
|
end else begin
|
|
data_out1 <= ram[addr1];
|
|
end
|
|
end
|
|
|
|
// If writen enable 2 is activated,
|
|
// data1 will be loaded through addr2
|
|
// Otherwise, data will be read out through addr2
|
|
always @(posedge clk) begin
|
|
if (we2) begin
|
|
ram[addr2] <= data2;
|
|
end else begin
|
|
data_out2 <= ram[addr2];
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
//---------------------------------------
|
|
// A dual-port RAM 65536x36
|
|
// This module is tuned for VTR's benchmarks
|
|
//---------------------------------------
|
|
module dual_port_ram_65536x36 (
|
|
input clk,
|
|
input we1,
|
|
input we2,
|
|
input [16 - 1 : 0] addr1,
|
|
input [36 - 1 : 0] data1,
|
|
output [36 - 1 : 0] out1,
|
|
input [16 - 1 : 0] addr2,
|
|
input [36 - 1 : 0] data2,
|
|
output [36 - 1 : 0] out2
|
|
);
|
|
reg [36 - 1 : 0] ram[2**16 - 1 : 0];
|
|
reg [36 - 1 : 0] data_out1;
|
|
reg [36 - 1 : 0] data_out2;
|
|
|
|
assign out1 = data_out1;
|
|
assign out2 = data_out2;
|
|
|
|
// If writen enable 1 is activated,
|
|
// data1 will be loaded through addr1
|
|
// Otherwise, data will be read out through addr1
|
|
always @(posedge clk) begin
|
|
if (we1) begin
|
|
ram[addr1] <= data1;
|
|
end else begin
|
|
data_out1 <= ram[addr1];
|
|
end
|
|
end
|
|
|
|
// If writen enable 2 is activated,
|
|
// data1 will be loaded through addr2
|
|
// Otherwise, data will be read out through addr2
|
|
always @(posedge clk) begin
|
|
if (we2) begin
|
|
ram[addr2] <= data2;
|
|
end else begin
|
|
data_out2 <= ram[addr2];
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
//---------------------------------------
|
|
// A dual-port RAM 65536x18
|
|
// This module is tuned for VTR's benchmarks
|
|
//---------------------------------------
|
|
module dual_port_ram_65536x18 (
|
|
input clk,
|
|
input we1,
|
|
input we2,
|
|
input [16 - 1 : 0] addr1,
|
|
input [18 - 1 : 0] data1,
|
|
output [18 - 1 : 0] out1,
|
|
input [16 - 1 : 0] addr2,
|
|
input [18 - 1 : 0] data2,
|
|
output [18 - 1 : 0] out2
|
|
);
|
|
reg [18 - 1 : 0] ram[2**16 - 1 : 0];
|
|
reg [18 - 1 : 0] data_out1;
|
|
reg [18 - 1 : 0] data_out2;
|
|
|
|
assign out1 = data_out1;
|
|
assign out2 = data_out2;
|
|
|
|
// If writen enable 1 is activated,
|
|
// data1 will be loaded through addr1
|
|
// Otherwise, data will be read out through addr1
|
|
always @(posedge clk) begin
|
|
if (we1) begin
|
|
ram[addr1] <= data1;
|
|
end else begin
|
|
data_out1 <= ram[addr1];
|
|
end
|
|
end
|
|
|
|
// If writen enable 2 is activated,
|
|
// data1 will be loaded through addr2
|
|
// Otherwise, data will be read out through addr2
|
|
always @(posedge clk) begin
|
|
if (we2) begin
|
|
ram[addr2] <= data2;
|
|
end else begin
|
|
data_out2 <= ram[addr2];
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
//---------------------------------------
|
|
// A dual-port RAM 65536x8
|
|
// This module is tuned for VTR's benchmarks
|
|
//---------------------------------------
|
|
module dual_port_ram_65536x8 (
|
|
input clk,
|
|
input we1,
|
|
input we2,
|
|
input [16 - 1 : 0] addr1,
|
|
input [8 - 1 : 0] data1,
|
|
output [8 - 1 : 0] out1,
|
|
input [16 - 1 : 0] addr2,
|
|
input [8 - 1 : 0] data2,
|
|
output [8 - 1 : 0] out2
|
|
);
|
|
reg [8 - 1 : 0] ram[2**16 - 1 : 0];
|
|
reg [8 - 1 : 0] data_out1;
|
|
reg [8 - 1 : 0] data_out2;
|
|
|
|
assign out1 = data_out1;
|
|
assign out2 = data_out2;
|
|
|
|
// If writen enable 1 is activated,
|
|
// data1 will be loaded through addr1
|
|
// Otherwise, data will be read out through addr1
|
|
always @(posedge clk) begin
|
|
if (we1) begin
|
|
ram[addr1] <= data1;
|
|
end else begin
|
|
data_out1 <= ram[addr1];
|
|
end
|
|
end
|
|
|
|
// If writen enable 2 is activated,
|
|
// data1 will be loaded through addr2
|
|
// Otherwise, data will be read out through addr2
|
|
always @(posedge clk) begin
|
|
if (we2) begin
|
|
ram[addr2] <= data2;
|
|
end else begin
|
|
data_out2 <= ram[addr2];
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
//---------------------------------------
|
|
// A single-port RAM
|
|
// This module is tuned for VTR's benchmarks
|
|
//---------------------------------------
|
|
module single_port_ram (
|
|
input clk,
|
|
input we,
|
|
input [`MANTISSA_PRECISION - 1 : 0] addr,
|
|
input [31:0] data,
|
|
output [31:0] out );
|
|
|
|
reg [31:0] ram[2**`MANTISSA_PRECISION - 1 : 0];
|
|
reg [31:0] internal;
|
|
|
|
assign out = internal;
|
|
|
|
always @(posedge clk) begin
|
|
if(wen) begin
|
|
ram[addr] <= data;
|
|
end
|
|
|
|
if(ren) begin
|
|
internal <= ram[addr];
|
|
end
|
|
end
|
|
|
|
endmodule
|
|
|
|
//---------------------------------------
|
|
// A single-port 1024x32bit RAM
|
|
// This module is tuned for VTR's benchmarks
|
|
//---------------------------------------
|
|
module single_port_ram_1024x32 (
|
|
input clk,
|
|
input we,
|
|
input [9:0] addr,
|
|
input [31:0] data,
|
|
output [31:0] out );
|
|
|
|
reg [31:0] ram[1023:0];
|
|
reg [31:0] internal;
|
|
|
|
assign out = internal;
|
|
|
|
always @(posedge clk) begin
|
|
if(wen) begin
|
|
ram[addr] <= data;
|
|
end
|
|
|
|
if(ren) begin
|
|
internal <= ram[addr];
|
|
end
|
|
end
|
|
|
|
endmodule
|