summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usrp2/control_lib/settings_readback_bus_fifo_ctrl.v12
-rw-r--r--usrp2/control_lib/simple_spi_core.v42
-rw-r--r--usrp2/top/N2x0/bootloader.rmi640
-rw-r--r--usrp2/top/N2x0/u2plus_core.v24
-rw-r--r--usrp2/top/USRP2/u2_core.v81
5 files changed, 429 insertions, 370 deletions
diff --git a/usrp2/control_lib/settings_readback_bus_fifo_ctrl.v b/usrp2/control_lib/settings_readback_bus_fifo_ctrl.v
index 7219aa6a1..18119d2bd 100644
--- a/usrp2/control_lib/settings_readback_bus_fifo_ctrl.v
+++ b/usrp2/control_lib/settings_readback_bus_fifo_ctrl.v
@@ -19,6 +19,7 @@
module settings_readback_bus_fifo_ctrl
#(
+ parameter NUM_PERFS = 4,
parameter FIFO_DEPTH = 6, //64 entries depth
parameter PROT_DEST = 0 //protocol framer destination
)
@@ -29,6 +30,9 @@ module settings_readback_bus_fifo_ctrl
//current system time
input [63:0] vita_time,
+ //ready signals for multiple peripherals
+ input [NUM_PERFS-1:0] perfs_ready,
+
//input fifo36 interface control
input [35:0] in_data, input in_valid, output in_ready,
@@ -244,8 +248,12 @@ module settings_readback_bus_fifo_ctrl
`endif
//action occurs in the event state and when there is fifo space (should always be true)
- //the third condition is that is an event time has been set, action is delayed until that time
- wire action = (cmd_state == EVENT_CMD) && ~result_fifo_full && ((out_command_has_time)? (now || late || clear) : 1);
+ //the third condition is that all peripherals in the mask are ready/active high
+ //the fourth condition is that is an event time has been set, action is delayed until that time
+ wire [NUM_PERFS-1:0] perfs_mask = command_hdr_reg[10+NUM_PERFS-1:10];
+ wire perfs_in_mask_ready = (perfs_ready & perfs_mask) == perfs_mask;
+ wire time_ready = (out_command_has_time)? (now || late || clear) : 1;
+ wire action = (cmd_state == EVENT_CMD) && ~result_fifo_full && perfs_in_mask_ready && time_ready;
assign command_fifo_read = action;
assign result_fifo_write = action;
diff --git a/usrp2/control_lib/simple_spi_core.v b/usrp2/control_lib/simple_spi_core.v
index 4772180a7..dbfa5ad8b 100644
--- a/usrp2/control_lib/simple_spi_core.v
+++ b/usrp2/control_lib/simple_spi_core.v
@@ -50,7 +50,7 @@ module simple_spi_core
parameter WIDTH = 8,
//idle state of the spi clock
- parameter CLK_IDLE = 1,
+ parameter CLK_IDLE = 0,
//idle state of the serial enables
parameter SEN_IDLE = 24'hffffff
@@ -64,9 +64,9 @@ module simple_spi_core
//32-bit data readback
output [31:0] readback,
-
- //done is high for one cycle after a spi transaction
- output done,
+
+ //read is high when spi core can begin another transaction
+ output ready,
//spi interface, slave selects, clock, data in, data out
output [WIDTH-1:0] sen,
@@ -101,23 +101,25 @@ module simple_spi_core
localparam CLK_REG = 2;
localparam CLK_INV = 3;
localparam POST_IDLE = 4;
- localparam TRANS_DONE = 5;
reg [2:0] state;
- assign done = (state == TRANS_DONE);
+ assign ready = (state == WAIT_TRIG);
//serial clock either idles or is in one of two clock states
- assign sclk = (state == CLK_INV)? ~CLK_IDLE : (state == CLK_REG)? CLK_IDLE : CLK_IDLE;
+ reg sclk_reg;
+ assign sclk = sclk_reg;
//serial enables either idle or enabled based on state
- wire [23:0] sen24 = (state == WAIT_TRIG || state == TRANS_DONE)? SEN_IDLE : (SEN_IDLE ^ slave_select);
- assign sen = sen24[WIDTH-1:0];
+ wire [23:0] sen24 = (ready)? SEN_IDLE : (SEN_IDLE ^ slave_select);
+ reg [WIDTH-1:0] sen_reg;
+ always @(posedge clock) sen_reg <= sen24[WIDTH-1:0];
+ assign sen = sen_reg;
//data output shift register
reg [31:0] dataout_reg;
- wire [31:0] dataout_next = {0, dataout_reg[31:1]};
- assign mosi = (state == CLK_INV || state == CLK_REG)? dataout_reg[0] : 0;
+ wire [31:0] dataout_next = {dataout_reg[30:0], 1'b0};
+ assign mosi = dataout_reg[31];
//data input shift register
reg [31:0] datain_reg;
@@ -137,6 +139,7 @@ module simple_spi_core
always @(posedge clock) begin
if (reset) begin
state <= WAIT_TRIG;
+ sclk_reg <= CLK_IDLE;
end
else begin
case (state)
@@ -144,6 +147,7 @@ module simple_spi_core
WAIT_TRIG: begin
if (trigger_spi) state <= PRE_IDLE;
sclk_counter <= 0;
+ sclk_reg <= CLK_IDLE;
end
PRE_IDLE: begin
@@ -151,13 +155,15 @@ module simple_spi_core
sclk_counter <= sclk_counter_next;
dataout_reg <= mosi_data;
bit_counter <= 0;
+ sclk_reg <= CLK_IDLE;
end
CLK_REG: begin
if (sclk_counter_done) begin
state <= CLK_INV;
- if (~datain_edge) datain_reg <= datain_next;
- if (~dataout_edge) dataout_reg <= dataout_next;
+ if (datain_edge != CLK_IDLE) datain_reg <= datain_next;
+ if (dataout_edge != CLK_IDLE) dataout_reg <= dataout_next;
+ sclk_reg <= ~CLK_IDLE;
end
sclk_counter <= sclk_counter_next;
end
@@ -166,15 +172,17 @@ module simple_spi_core
if (sclk_counter_done) begin
state <= (bit_counter_done)? POST_IDLE : CLK_REG;
bit_counter <= bit_counter_next;
- if (datain_edge) datain_reg <= datain_next;
- if (dataout_edge) dataout_reg <= dataout_next;
+ if (datain_edge == CLK_IDLE) datain_reg <= datain_next;
+ if (dataout_edge == CLK_IDLE) dataout_reg <= dataout_next;
+ sclk_reg <= CLK_IDLE;
end
sclk_counter <= sclk_counter_next;
end
POST_IDLE: begin
- if (sclk_counter_done) state <= TRANS_DONE;
+ if (sclk_counter_done) state <= WAIT_TRIG;
sclk_counter <= sclk_counter_next;
+ sclk_reg <= CLK_IDLE;
end
default: state <= WAIT_TRIG;
@@ -185,7 +193,7 @@ module simple_spi_core
assign debug = {
trigger_spi, state, //4
- sclk, mosi, miso, done, //4
+ sclk, mosi, miso, ready, //4
sen[7:0], //8
1'b0, bit_counter[6:0], //8
sclk_counter_done, bit_counter_done, //2
diff --git a/usrp2/top/N2x0/bootloader.rmi b/usrp2/top/N2x0/bootloader.rmi
index 0f3134434..02d661a9c 100644
--- a/usrp2/top/N2x0/bootloader.rmi
+++ b/usrp2/top/N2x0/bootloader.rmi
@@ -1,5 +1,5 @@
-defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_d7f40400_3a0b0b80_80e4ac0c_82700b0b_0b0b0b0b;
-defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_800c0400_880c840c_80d8be2d_88080b0b_80088408;
+defparam bootram.RAM0.INIT_00=256'h00000000_00000000_00000000_d7e10400_3a0b0b80_80e4980c_82700b0b_0b0b0b0b;
+defparam bootram.RAM0.INIT_01=256'h00000000_00000000_00000000_800c0400_880c840c_80d8ab2d_88080b0b_80088408;
defparam bootram.RAM0.INIT_02=256'h00000000_00000000_04000000_ffff0652_832b2a83_81058205_72830609_71fd0608;
defparam bootram.RAM0.INIT_03=256'h83a70400_0b0b0b0b_7383ffff_2b2b0906_05820583_83060981_83ffff73_71fd0608;
defparam bootram.RAM0.INIT_04=256'h00000000_00000000_53510400_070a8106_73097306_09060906_72057373_72098105;
@@ -18,58 +18,58 @@ defparam bootram.RAM0.INIT_10=256'h00000000_00000000_00000000_00000000_00000000_
defparam bootram.RAM0.INIT_11=256'h00000000_00000000_00000000_00000000_00000000_04000000_05055351_72720981;
defparam bootram.RAM0.INIT_12=256'h00000000_00000000_00000000_00000000_00000000_07535104_73730906_72097206;
defparam bootram.RAM0.INIT_13=256'h00000000_00000000_04000000_81ff0652_1010102a_81058305_72830609_71fc0608;
-defparam bootram.RAM0.INIT_14=256'h00000000_00000000_88aa0400_060b0b0b_10100508_98738306_0b0b80e4_71fc0608;
-defparam bootram.RAM0.INIT_15=256'h00000000_0c510400_0c840c80_80085688_952d5050_0b0b80cf_88087575_80088408;
-defparam bootram.RAM0.INIT_16=256'h00000000_0c510400_0c840c80_80085688_c72d5050_0b0b80d0_88087575_80088408;
+defparam bootram.RAM0.INIT_14=256'h00000000_00000000_88aa0400_060b0b0b_10100508_84738306_0b0b80e4_71fc0608;
+defparam bootram.RAM0.INIT_15=256'h00000000_0c510400_0c840c80_80085688_822d5050_0b0b80cf_88087575_80088408;
+defparam bootram.RAM0.INIT_16=256'h00000000_0c510400_0c840c80_80085688_b42d5050_0b0b80d0_88087575_80088408;
defparam bootram.RAM0.INIT_17=256'h04000000_07515151_05ff0506_73097274_70547106_8106ff05_0509060a_72097081;
defparam bootram.RAM0.INIT_18=256'h51040000_06075151_7405ff05_06730972_05705471_098106ff_0509060a_72097081;
defparam bootram.RAM0.INIT_19=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_05ff0504;
-defparam bootram.RAM0.INIT_1A=256'h00000000_00000000_00000000_00000000_00000000_51040000_80e4a80c_810b0b0b;
+defparam bootram.RAM0.INIT_1A=256'h00000000_00000000_00000000_00000000_00000000_51040000_80e4940c_810b0b0b;
defparam bootram.RAM0.INIT_1B=256'h00000000_00000000_00000000_00000000_00000000_00000000_04000000_71810552;
defparam bootram.RAM0.INIT_1C=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000;
defparam bootram.RAM0.INIT_1D=256'h00000000_00000000_00000000_00000000_00000000_04000000_10100552_02840572;
defparam bootram.RAM0.INIT_1E=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000;
defparam bootram.RAM0.INIT_1F=256'h00000000_00000000_00000000_00000000_00000000_020d0400_05715351_717105ff;
-defparam bootram.RAM0.INIT_20=256'h10101010_10101010_10101010_10101010_10101010_10101010_d0bb3f04_82813f80;
+defparam bootram.RAM0.INIT_20=256'h10101010_10101010_10101010_10101010_10101010_10101010_d0a83f04_82813f80;
defparam bootram.RAM0.INIT_21=256'hfc060c51_102b0772_83051010_06098105_ff067383_51047381_10101053_10101010;
defparam bootram.RAM0.INIT_22=256'h51535104_72ed3851_0a100a53_71105272_09720605_8106ff05_72728072_51043c04;
-defparam bootram.RAM0.INIT_23=256'h800b80e5_840c82a0_0b0b80e5_8380800b_822ebd38_80e4ac08_802ea438_80e4a808;
-defparam bootram.RAM0.INIT_24=256'h0b80e588_80808280_e5840cf8_0b0b0b80_808080a4_8c0c04f8_800b80e5_880c8290;
-defparam bootram.RAM0.INIT_25=256'h940b80e5_80c0a880_80e5840c_8c0b0b0b_80c0a880_e58c0c04_84800b80_0cf88080;
-defparam bootram.RAM0.INIT_26=256'h70085252_80e4b408_5170a738_80e59033_04ff3d0d_80e58c0c_80d8f00b_880c0b0b;
-defparam bootram.RAM0.INIT_27=256'h9034833d_810b80e5_5270ee38_08700852_2d80e4b4_e4b40c70_38841280_70802e94;
-defparam bootram.RAM0.INIT_28=256'h38823d0d_09810685_800b802e_0b0b0b0b_802e8e38_80e58008_3d0d0b0b_0d040480;
-defparam bootram.RAM0.INIT_29=256'h3d225a79_80c13895_0d685b7a_0404ee3d_3f823d0d_0b0bf5d4_e580510b_040b0b80;
+defparam bootram.RAM0.INIT_23=256'h800b80e4_f00c82a0_0b0b80e4_8380800b_822ebd38_80e49808_802ea438_80e49408;
+defparam bootram.RAM0.INIT_24=256'h0b80e4f4_80808280_e4f00cf8_0b0b0b80_808080a4_f80c04f8_800b80e4_f40c8290;
+defparam bootram.RAM0.INIT_25=256'h940b80e4_80c0a880_80e4f00c_8c0b0b0b_80c0a880_e4f80c04_84800b80_0cf88080;
+defparam bootram.RAM0.INIT_26=256'h70085252_80e4a008_5170a738_80e4fc33_04ff3d0d_80e4f80c_80d8dc0b_f40c0b0b;
+defparam bootram.RAM0.INIT_27=256'hfc34833d_810b80e4_5270ee38_08700852_2d80e4a0_e4a00c70_38841280_70802e94;
+defparam bootram.RAM0.INIT_28=256'h38823d0d_09810685_800b802e_0b0b0b0b_802e8e38_80e4ec08_3d0d0b0b_0d040480;
+defparam bootram.RAM0.INIT_29=256'h3d225a79_80c13895_0d685b7a_0404ee3d_3f823d0d_0b0bf5d4_e4ec510b_040b0b80;
defparam bootram.RAM0.INIT_2A=256'h8d3881d2_8380862e_81dc3979_842e8e38_38798380_8085248b_ae387983_8380852e;
defparam bootram.RAM0.INIT_2B=256'h0b983d22_81b83980_81e4d00c_81c0397a_81e2cc0c_c939810b_e18c0c81_39810b81;
defparam bootram.RAM0.INIT_2C=256'h80862e8b_99397983_2e9f3881_79838084_85248b38_38798380_80852ea7_5b5b7983;
defparam bootram.RAM0.INIT_2D=256'h055241a9_53963d84_5b923d70_5b833983_5b873981_81883982_872e8c38_38798380;
-defparam bootram.RAM0.INIT_2E=256'h5b79337b_1d7f1d5b_415e5c7b_883d993d_5f40800b_84057c5b_3f800802_a53f8a8e;
+defparam bootram.RAM0.INIT_2E=256'h5b79337b_1d7f1d5b_415e5c7b_883d993d_5f40800b_84057c5b_3f800802_923f8a8e;
defparam bootram.RAM0.INIT_2F=256'h1c5c887c_337b3481_055b5b79_1d963d7d_1f5e5c7b_38800b90_887c26ef_34811c5c;
defparam bootram.RAM0.INIT_30=256'h5c7b1e61_26ef3880_1c5c867c_337b3481_1d5b5b79_5c7b1d60_0b881f5e_26ed3880;
-defparam bootram.RAM0.INIT_31=256'h1208595a_0d686a84_0d04ee3d_9b3f943d_26ef389a_1c5c867c_337b3481_1d5b5b79;
-defparam bootram.RAM0.INIT_32=256'h863f80e1_d8f45195_538b5280_2e8c3875_94387580_56758b2e_9c387708_58837927;
-defparam bootram.RAM0.INIT_33=256'h9f175675_18085dff_5ba05c88_3fa0578b_c45194f3_a45280d9_8e387853_5778a326;
-defparam bootram.RAM0.INIT_34=256'h39951833_085e81eb_9c3f8008_80c15c89_56750804_80dbb405_38758429_92268281;
+defparam bootram.RAM0.INIT_31=256'h1208595a_0d686a84_0d04ee3d_883f943d_26ef389a_1c5c867c_337b3481_1d5b5b79;
+defparam bootram.RAM0.INIT_32=256'h863f80e1_d8e05195_538b5280_2e8c3875_94387580_56758b2e_9c387708_58837927;
+defparam bootram.RAM0.INIT_33=256'h9f175675_18085dff_5ba05c88_3fa0578b_b05194f3_a45280d9_8e387853_5778a326;
+defparam bootram.RAM0.INIT_34=256'h39951833_085e81eb_9c3f8008_80c15c89_56750804_80dba005_38758429_92268281;
defparam bootram.RAM0.INIT_35=256'h19335757_52800b97_538c1808_54901808_55961833_38845776_80f22e83_56825775;
-defparam bootram.RAM0.INIT_36=256'hea05538c_7054953d_398d1833_d35c81b3_80085f80_5196a23f_38815776_75772e83;
+defparam bootram.RAM0.INIT_36=256'hea05538c_7054953d_398d1833_d35c81b3_80085f80_5196ae3f_38815776_75772e83;
defparam bootram.RAM0.INIT_37=256'h80c85c75_568de93f_8c193352_548e1953_8d183370_c95c9439_8cdc3f80_19335256;
-defparam bootram.RAM0.INIT_38=256'h8c190858_80dc8005_38758429_852680c2_ff055675_39941833_053480ff_028405b5;
+defparam bootram.RAM0.INIT_38=256'h8c190858_80dbec05_38758429_852680c2_ff055675_39941833_053480ff_028405b5;
defparam bootram.RAM0.INIT_39=256'h76842980_77239b39_39921822_08770ca2_a9399018_3976225f_76085fae_56750804;
-defparam bootram.RAM0.INIT_3A=256'h5e80cc5c_5cad3978_0c5680d2_90190871_80e59405_39768429_0840568e_e5940570;
+defparam bootram.RAM0.INIT_3A=256'h5e80cc5c_5cad3978_0c5680d2_90190871_80e58005_39768429_0840568e_e5800570;
defparam bootram.RAM0.INIT_3B=256'h18588878_33773481_05575775_19963d79_3d5a5877_54800b83_943ddc05_8c180855;
defparam bootram.RAM0.INIT_3C=256'h75337734_79055757_7719963d_833d5a58_0554800b_55943ddc_39a05ca4_26ed38a4;
-defparam bootram.RAM0.INIT_3D=256'h525392a3_5380da90_3d0d7470_3d0d04fe_9bb73f94_83808051_7826ed38_81185888;
-defparam bootram.RAM0.INIT_3E=256'hd03f7251_52725187_3f8d39a0_d53f9bca_3f81518f_a05187e1_9238a052_3f72802e;
-defparam bootram.RAM0.INIT_3F=256'h3f8b5280_cc5191e7_895280da_5188c43f_3f80dab0_3d0d8297_3d0d04fa_8fc43f84;
-defparam bootram.RAM1.INIT_00=256'h993f87de_80085190_3f85bb3f_a73f868e_a9d33f85_80e5b00c_de3f820b_daec5191;
-defparam bootram.RAM1.INIT_01=256'he23f85f1_80085194_9d3f7352_80085485_3f86823f_b33f87d2_80085190_3f868e3f;
-defparam bootram.RAM1.INIT_02=256'h80845195_8ab25283_5195a83f_52838080_ec3f8cb6_8ea43f94_52800851_3f838085;
-defparam bootram.RAM1.INIT_03=256'h5195803f_52838087_8a3f8ab2_80855195_8ab25283_5195943f_52838086_9e3f8ab2;
-defparam bootram.RAM1.INIT_04=256'h3fac8b3f_b351a9f9_8e903f8f_a63f8051_809251a5_94f53f83_83808251_80c09952;
+defparam bootram.RAM0.INIT_3D=256'h525392a3_5380d9fc_3d0d7470_3d0d04fe_9ba43f94_83808051_7826ed38_81185888;
+defparam bootram.RAM0.INIT_3E=256'hd03f7251_52725187_3f8d39a0_d53f9bb7_3f81518f_a05187e1_9238a052_3f72802e;
+defparam bootram.RAM0.INIT_3F=256'h3f8b5280_b85191e7_895280da_5188c43f_3f80da9c_3d0d8297_3d0d04fa_8fc43f84;
+defparam bootram.RAM1.INIT_00=256'h993f87de_80085190_3f85bb3f_a73f868e_a9c03f85_80e59c0c_de3f820b_dad85191;
+defparam bootram.RAM1.INIT_01=256'hcf3f85f1_80085194_9d3f7352_80085485_3f86823f_b33f87d2_80085190_3f868e3f;
+defparam bootram.RAM1.INIT_02=256'h80845195_8ab25283_5195953f_52838080_d93f8cb6_8ea43f94_52800851_3f838085;
+defparam bootram.RAM1.INIT_03=256'h5194ed3f_52838087_f73f8ab2_80855194_8ab25283_5195813f_52838086_8b3f8ab2;
+defparam bootram.RAM1.INIT_04=256'h3fabf83f_b351a9e6_8e903f8f_933f8051_809251a5_94e23f83_83808251_80c08652;
defparam bootram.RAM1.INIT_05=256'hfdee2e09_55557382_088e0522_c9387680_08802e80_80085680_518e873f_883dfc05;
-defparam bootram.RAM1.INIT_06=256'h863f9416_db985190_089a3880_c4db3f80_90055180_90528008_845380db_8106ad38;
-defparam bootram.RAM1.INIT_07=256'h3f8bfe3f_8c3fa4f9_9aad3f8d_74527551_913f8839_3f735185_f73f8696_7052548e;
+defparam bootram.RAM1.INIT_06=256'h863f9416_db845190_089a3880_c4c83f80_90055180_fc528008_845380da_8106ad38;
+defparam bootram.RAM1.INIT_07=256'h3f8bfe3f_8c3fa4e6_9a9a3f8d_74527551_913f8839_3f735185_f73f8696_7052548e;
defparam bootram.RAM1.INIT_08=256'h85ac3f9f_9f528051_3f88833f_873f8bb3_82b73f87_3f91ce3f_3d0d85df_ff9e39fe;
defparam bootram.RAM1.INIT_09=256'h5184ee3f_3f885288_ac518ae5_84fb3f82_84528451_518af23f_883f82ac_52805185;
defparam bootram.RAM1.INIT_0A=256'h80e4518a_5184d23f_539f5280_8acb3f82_3f82ac51_905184e1_d83f9052_82ac518a;
@@ -78,32 +78,32 @@ defparam bootram.RAM1.INIT_0C=256'h2a810680_8c08708b_3d0d8280_3d0d0480_0b800c84_
defparam bootram.RAM1.INIT_0D=256'h58595775_055a5757_70802582_05337030_028c05a7_0d7a7d7f_0d04f93d_0c51823d;
defparam bootram.RAM1.INIT_0E=256'h53805481_709f2a51_8a557330_55738338_2e883888_05557583_72802588_822e9338;
defparam bootram.RAM1.INIT_0F=256'h54805486_2b075154_05707284_777131fe_812cff05_2e973876_72547280_77259e38;
-defparam bootram.RAM1.INIT_10=256'hae9f3f81_52811851_aea73f73_06527751_3f7281ff_7b51aeb1_80547452_39735381;
-defparam bootram.RAM1.INIT_11=256'h7551fee6_bd537852_5580ca54_05335681_3d0d029f_3d0d04fb_ae973f89_5280da51;
-defparam bootram.RAM1.INIT_12=256'h800881ff_3ffeb83f_d63f8f89_81528151_51adee3f_815280c5_04fe3d0d_3f873d0d;
+defparam bootram.RAM1.INIT_10=256'hae8c3f81_52811851_ae943f73_06527751_3f7281ff_7b51ae9e_80547452_39735381;
+defparam bootram.RAM1.INIT_11=256'h7551fee6_bd537852_5580ca54_05335681_3d0d029f_3d0d04fb_ae843f89_5280da51;
+defparam bootram.RAM1.INIT_12=256'h800881ff_3ffeb83f_d63f8f88_81528151_51addb3f_815280c5_04fe3d0d_3f873d0d;
defparam bootram.RAM1.INIT_13=256'h57578170_3d0d787a_3d0d04fa_800c5384_900781e0_e0800870_2ef33881_06537280;
defparam bootram.RAM1.INIT_14=256'h2e833880_527181ff_80547133_802e8338_33525270_38721770_7276279e_56548053;
-defparam bootram.RAM1.INIT_15=256'h0b80e5b8_fe3d0d81_883d0d04_5170800c_2e833881_07517080_df397474_55811353;
-defparam bootram.RAM1.INIT_16=256'h38810b80_335574bc_0d80e5b8_0d04f93d_b83f843d_e4bc51be_dc9c5280_34865380;
-defparam bootram.RAM1.INIT_17=256'h38865275_74802e9c_81ff0655_ec3f8008_80d051ad_54568252_54873d70_e5b83486;
-defparam bootram.RAM1.INIT_18=256'h800c893d_80e4bc0b_51bdee3f_5280e4bc_38865375_0655748c_800881ff_51fef43f;
-defparam bootram.RAM1.INIT_19=256'h810b80e5_5574b938_80e5b433_04fb3d0d_80e4b80c_80dc9808_80e5b434_0d04810b;
-defparam bootram.RAM1.INIT_1A=256'h8452873d_802e9938_ff065574_3f800881_d051ad8d_538c5280_873dfc05_b4348454;
-defparam bootram.RAM1.INIT_1B=256'h0d04fb3d_800c873d_80e4b80b_80e4b80c_74863875_81ff0655_923f8008_fc0551fe;
-defparam bootram.RAM1.INIT_1C=256'h80e4b80c_8d387508_5574802e_0881ff06_abd33f80_5280d051_5475538c_0d775684;
-defparam bootram.RAM1.INIT_1D=256'h7080e5bc_bc080607_067180e5_73097375_04803d0d_0c873d0d_b4347480_810b80e5;
-defparam bootram.RAM1.INIT_1E=256'hc00c81e0_077080e5_e5c00806_75067180_0d730973_0d04803d_0c51823d_0c81e08c;
+defparam bootram.RAM1.INIT_15=256'h0b80e5a4_fe3d0d81_883d0d04_5170800c_2e833881_07517080_df397474_55811353;
+defparam bootram.RAM1.INIT_16=256'h38810b80_335574bc_0d80e5a4_0d04f93d_a53f843d_e4a851be_dc885280_34865380;
+defparam bootram.RAM1.INIT_17=256'h38865275_74802e9c_81ff0655_d93f8008_80d051ad_54568252_54873d70_e5a43486;
+defparam bootram.RAM1.INIT_18=256'h800c893d_80e4a80b_51bddb3f_5280e4a8_38865375_0655748c_800881ff_51fef43f;
+defparam bootram.RAM1.INIT_19=256'h810b80e5_5574b938_80e5a033_04fb3d0d_80e4a40c_80dc8408_80e5a034_0d04810b;
+defparam bootram.RAM1.INIT_1A=256'h8452873d_802e9938_ff065574_3f800881_d051acfa_538c5280_873dfc05_a0348454;
+defparam bootram.RAM1.INIT_1B=256'h0d04fb3d_800c873d_80e4a40b_80e4a40c_74863875_81ff0655_923f8008_fc0551fe;
+defparam bootram.RAM1.INIT_1C=256'h80e4a40c_8d387508_5574802e_0881ff06_abc03f80_5280d051_5475538c_0d775684;
+defparam bootram.RAM1.INIT_1D=256'h7080e5a8_a8080607_067180e5_73097375_04803d0d_0c873d0d_a0347480_810b80e5;
+defparam bootram.RAM1.INIT_1E=256'hac0c81e0_077080e5_e5ac0806_75067180_0d730973_0d04803d_0c51823d_0c81e08c;
defparam bootram.RAM1.INIT_1F=256'h0d04ff3d_800c843d_81c73f72_53538051_3d0d7470_af3f04fe_3d0d0481_980c5182;
defparam bootram.RAM1.INIT_20=256'h802e9038_06545472_337081ff_79565674_fb3d0d77_833d0d04_5181b63f_0d8a5280;
defparam bootram.RAM1.INIT_21=256'h8051cd3f_3d0d7352_3d0d04ff_0b800c87_3fe53980_52558191_ff065376_81157481;
defparam bootram.RAM1.INIT_22=256'h3d0d04ff_0b800c84_80e73f80_8a527251_53ffbd3f_76537052_fe3d0d74_833d0d04;
-defparam bootram.RAM1.INIT_23=256'h0d04ff3d_1234823d_3380e4c4_51028f05_803d0d72_833d0d04_8051dd3f_3d0d7352;
-defparam bootram.RAM1.INIT_24=256'h5380e4c4_fe3d0d80_833d0d04_720c5351_a4057022_751080dc_82908005_0d73a029;
-defparam bootram.RAM1.INIT_25=256'h04fc3d0d_38843d0d_827325e5_3f811353_527251ce_e4c81333_51c63f80_13335272;
-defparam bootram.RAM1.INIT_26=256'h7351de3f_87388d52_2e098106_33537281_80e4c414_81069538_748a2e09_76785654;
+defparam bootram.RAM1.INIT_23=256'h0d04ff3d_1234823d_3380e4b0_51028f05_803d0d72_833d0d04_8051dd3f_3d0d7352;
+defparam bootram.RAM1.INIT_24=256'h5380e4b0_fe3d0d80_833d0d04_720c5351_90057022_751080dc_82908005_0d73a029;
+defparam bootram.RAM1.INIT_25=256'h04fc3d0d_38843d0d_827325e5_3f811353_527251ce_e4b41333_51c63f80_13335272;
+defparam bootram.RAM1.INIT_26=256'h7351de3f_87388d52_2e098106_33537281_80e4b014_81069538_748a2e09_76785654;
defparam bootram.RAM1.INIT_27=256'h74a02982_04fe3d0d_0c863d0d_38748c15_72802ef8_84140853_90800554_73a02982;
defparam bootram.RAM1.INIT_28=256'h0d800b81_0d04ff3d_800c843d_12085372_2e853890_ff537080_11085252_90800588;
-defparam bootram.RAM1.INIT_29=256'h880c833d_800b81a8_840c5181_882a81a8_a8800c70_81ff0681_e4d02270_a8880c80;
+defparam bootram.RAM1.INIT_29=256'h880c833d_800b81a8_840c5181_882a81a8_a8800c70_81ff0681_e4bc2270_a8880c80;
defparam bootram.RAM1.INIT_2A=256'h70862a70_81a89008_2e818638_81517180_33555354_88059705_0d767802_0d04fd3d;
defparam bootram.RAM1.INIT_2B=256'h812a7081_a8900870_a8900c81_81900b81_81a88c0c_72108107_5170f138_81065151;
defparam bootram.RAM1.INIT_2C=256'h3871802e_70802eba_51515151_06708132_872a7081_a8900870_70f13881_06515151;
@@ -117,22 +117,22 @@ defparam bootram.RAM1.INIT_33=256'h802e8e38_51515170_70813251_2a708106_90087087_
defparam bootram.RAM1.INIT_34=256'h04fd3d0d_0c853d0d_80517080_81a8900c_3980c00b_3981518a_5354ffb7_8114ff13;
defparam bootram.RAM1.INIT_35=256'hf1388113_8d9f7127_31515186_ac087073_085281b8_3881b8ac_7274259b_75548053;
defparam bootram.RAM1.INIT_36=256'h0cff0b82_0b828084_80800cef_81e20b82_8280880c_3d0dff0b_3d0d04ff_53e23985;
-defparam bootram.RAM1.INIT_37=256'h04fb3d0d_38833d0d_708025f1_0cff1151_70840554_519eed72_efe85287_808c0c80;
-defparam bootram.RAM1.INIT_38=256'h71802e8f_74760652_efe85555_53810b80_58515280_8c087106_70098280_82808808;
+defparam bootram.RAM1.INIT_37=256'h04fb3d0d_38833d0d_708025f1_0cff1151_70840554_519eed72_efd45287_808c0c80;
+defparam bootram.RAM1.INIT_38=256'h71802e8f_74760652_efd45555_53810b80_58515280_8c087106_70098280_82808808;
defparam bootram.RAM1.INIT_39=256'h38873d0d_877325dc_10575553_13841576_0c8f3981_7482808c_0852712d_38725173;
-defparam bootram.RAM1.INIT_3A=256'h80880870_2b700982_0c518172_e8057571_842980ef_269f3871_73527187_04ff3d0d;
+defparam bootram.RAM1.INIT_3A=256'h80880870_2b700982_0c518172_d4057571_842980ef_269f3871_73527187_04ff3d0d;
defparam bootram.RAM1.INIT_3B=256'h5281e0c8_81e0c40c_22747008_0d029205_0404ff3d_52833d0d_880c5351_72068280;
defparam bootram.RAM1.INIT_3C=256'h820b81e0_802ef338_06515170_a0087084_cc0c81b8_810b81e0_04803d0d_0c833d0d;
defparam bootram.RAM1.INIT_3D=256'h2e933881_54527280_08708106_0d81b8a0_0c04fe3d_7181e0c0_0d04de3f_cc0c823d;
defparam bootram.RAM1.INIT_3E=256'h8b3880dc_5271802e_70810651_3971812a_8080529a_0c535381_71902a71_b8a00875;
-defparam bootram.RAM1.INIT_3F=256'h51517080_7080c006_81b8a008_04803d0d_0c843d0d_72527180_3fff9e3f_b051f8d3;
+defparam bootram.RAM1.INIT_3F=256'h51517080_7080c006_81b8a008_04803d0d_0c843d0d_72527180_3fff9e3f_9c51f8d3;
defparam bootram.RAM2.INIT_00=256'h0c5281b8_0781e0cc_70902b88_028e0522_04ff3d0d_0c823d0d_80800b80_2ef23881;
defparam bootram.RAM2.INIT_01=256'h5372802e_0d755480_0d04fd3d_cc0c833d_840b81e0_802ef338_06515170_a0087090;
-defparam bootram.RAM2.INIT_02=256'hfb3d0d77_853d0d04_7327e638_81135385_52a5cd3f_14703352_f7a53f72_8638ba51;
-defparam bootram.RAM2.INIT_03=256'h3d0d7c7e_3d0d04f6_80ed3f87_80dcb451_70335356_81113354_82113355_83113356;
+defparam bootram.RAM2.INIT_02=256'hfb3d0d77_853d0d04_7327e638_81135385_52a5ba3f_14703352_f7a53f72_8638ba51;
+defparam bootram.RAM2.INIT_03=256'h3d0d7c7e_3d0d04f6_80ed3f87_80dca051_70335356_81113354_82113355_83113356;
defparam bootram.RAM2.INIT_04=256'h8a387952_3875802e_7680258f_5d5b5957_2a515b5f_7030709f_05bb0533_61630290;
-defparam bootram.RAM2.INIT_05=256'hffbd3f77_3f800851_7651ad93_80537752_79557854_77269438_76305777_ad51782d;
-defparam bootram.RAM2.INIT_06=256'hf68d3f82_8b053351_803d0d02_8c3d0d04_3351782d_80dcc005_ab3f8008_527651ad;
+defparam bootram.RAM2.INIT_05=256'hffbd3f77_3f800851_7651ad80_80537752_79557854_77269438_76305777_ad51782d;
+defparam bootram.RAM2.INIT_06=256'hf68d3f82_8b053351_803d0d02_8c3d0d04_3351782d_80dcac05_983f8008_527651ad;
defparam bootram.RAM2.INIT_07=256'h802e81d1_06575775_337081ff_5c5a5878_5208a1d4_70708405_3d0d8c3d_3d0d04f7;
defparam bootram.RAM2.INIT_08=256'h7580f024_2e80fb38_597580f0_19703357_80db3881_2e098106_065675a5_387681ff;
defparam bootram.RAM2.INIT_09=256'hc638818b_80e42e80_81953975_2e819e38_8a387580_7580e324_e32eb938_a0387580;
@@ -140,268 +140,268 @@ defparam bootram.RAM2.INIT_0A=256'h3880ec39_80f82eba_80f53975_2e80db38_387580f3_
defparam bootram.RAM2.INIT_0B=256'ha1d45480_59568055_19710852_da397784_51792d80_56805275_12335259_77841983;
defparam bootram.RAM2.INIT_0C=256'h59568055_19710852_92397784_81538a52_55a1d454_52595680_84197108_53903977;
defparam bootram.RAM2.INIT_0D=256'h8e388052_5675802e_59567633_19710859_9e397784_51fdd03f_53905275_a1d45480;
-defparam bootram.RAM2.INIT_0E=256'h81e0d00c_0480e40b_0c8b3d0d_39800b80_1959fea3_2dec3981_58335179_76708105;
-defparam bootram.RAM2.INIT_0F=256'h7f077281_3372982b_8c05a705_7b7d7f02_04f93d0d_3f823d0d_8151f9b5_04803d0d;
-defparam bootram.RAM2.INIT_10=256'h86387281_5170802e_70810651_5371822a_72820a07_802e8638_54575870_0656575a;
-defparam bootram.RAM2.INIT_11=256'h15555656_078116ff_06732b76_742a7081_ff165277_76279b38_70555574_0a075380;
-defparam bootram.RAM2.INIT_12=256'hb8800880_ff873f81_802e8438_e0d80c76_d40c7481_3f7281e0_ea38ff99_51757426;
-defparam bootram.RAM2.INIT_13=256'h81155553_70227305_38721015_7274278f_55558053_76787a54_04fc3d0d_0c893d0d;
-defparam bootram.RAM2.INIT_14=256'h3d0d04fd_71800c86_0552ec39_0672902a_7183ffff_802e8d38_902a5170_51ee3971;
-defparam bootram.RAM2.INIT_15=256'h80e5d852_04ff3d0d_54853d0d_80e5d00c_3f767008_c851aed9_755280e5_3d0d8653;
-defparam bootram.RAM2.INIT_16=256'h800b80e5_96052253_fd3d0d02_833d0d04_8025f338_12525270_0c8812ff_89518072;
-defparam bootram.RAM2.INIT_17=256'h3d0d04fa_70800c85_ee388051_52897225_12881252_2e8e3881_22547274_d4525270;
-defparam bootram.RAM2.INIT_18=256'h800880e5_050cad39_76800884_802e8938_c73f8008_06535856_7183ffff_3d0d787a;
-defparam bootram.RAM2.INIT_19=256'heb389bee_55897525_15881454_2e8f3881_55527180_73088815_d4555555_d80b80e5;
-defparam bootram.RAM2.INIT_1A=256'ha83f7353_055254ad_53923dd6_7054933d_f13d0d86_883d0d04_7684140c_3f757323;
-defparam bootram.RAM2.INIT_1B=256'h80028405_0b8b3d23_23818a80_8405a205_3f908002_0551ad99_52913ddc_923d8805;
-defparam bootram.RAM2.INIT_1C=256'hae052368_80028405_0b8d3d23_2380c091_8405aa05_81808002_0b8c3d23_a6052380;
-defparam bootram.RAM2.INIT_1D=256'h23963d22_3d22903d_ae052398_08028405_fdb73f80_3de40551_538a5291_5d665e80;
-defparam bootram.RAM2.INIT_1E=256'h2981e684_526980c0_913dd405_0523ac53_028405be_913d2380_0523800b_028405ba;
-defparam bootram.RAM2.INIT_1F=256'h51ac863f_9a3df205_539b3d52_973d2386_805b800b_04e83d0d_3f913d0d_05519df1;
-defparam bootram.RAM2.INIT_20=256'h3f800880_0523f7d5_840580e2_f2052202_f83f0280_f80551ab_c8529a3d_865380e5;
-defparam bootram.RAM2.INIT_21=256'h6e5ea13d_845c905d_3d084659_3d0845a3_436e44a1_1143f005_0b9b3dc4_08585a80;
-defparam bootram.RAM2.INIT_22=256'h5a557375_71315156_7c319080_08701a78_56845875_06408c3d_088305fc_085fa33d;
-defparam bootram.RAM2.INIT_23=256'h802e8838_83065473_38941608_0654738c_9a387383_5473802e_760c7508_27843873;
-defparam bootram.RAM2.INIT_24=256'h59577780_0817ff19_70840557_9cc33f75_08527651_08539416_efd93f75_80dcdc51;
-defparam bootram.RAM2.INIT_25=256'h4040818a_3d0d6b6e_3d0d04ea_f6db3f9a_78822a51_3880c059_78bf2684_25ffac38;
-defparam bootram.RAM2.INIT_26=256'h0580ce05_80800284_953d2381_0523800b_840580ca_055a7902_237f1f94_800b943d;
-defparam bootram.RAM2.INIT_27=256'h8a52933d_68478053_e5d00846_d2052380_02840580_963d2380_80075a79_236980c0;
-defparam bootram.RAM2.INIT_28=256'h8ac83f80_70535c5e_7053983d_0523913d_840580d2_095a7902_e03f8008_70525cfa;
-defparam bootram.RAM2.INIT_29=256'h6d596058_39027f5a_edc83fa9_51f6a93f_f7b53f7a_80dd8851_5a799238_0881ff06;
-defparam bootram.RAM2.INIT_2A=256'hef38fd89_5c867c26_7b34811c_5b5b7933_7b1d7c1f_8053805c_557b5490_6b575d94;
-defparam bootram.RAM2.INIT_2B=256'h57768b3d_05238818_028405a2_238d3d22_05228a3d_7f5802ae_04f73d0d_3f983d0d;
-defparam bootram.RAM2.INIT_2C=256'h0d04ee3d_9e3f8b3d_527d51fe_f8055391_88548b3d_77567e55_05a60523_23800284;
-defparam bootram.RAM2.INIT_2D=256'h8405b605_05348102_028405b5_8f3d3484_0523860b_028405b2_3d239080_0d810b8e;
-defparam bootram.RAM2.INIT_2E=256'h0551a8a5_52943df2_84538008_3feade3f_0551a8b5_52943dec_86538008_23ea8f3f;
-defparam bootram.RAM2.INIT_2F=256'h80569c55_80588057_025c8059_80080843_3feac23f_0551a9b2_52943df6_3f865380;
-defparam bootram.RAM2.INIT_30=256'hfbcb3f94_7b26ef38_811b5b86_1b337a34_5a80dcd4_805b7a1c_54908653_943de405;
-defparam bootram.RAM2.INIT_31=256'h088429f2_901dac3d_06829d38_862e0981_5f5d7d90_088e1122_3d0daa3d_3d0d04d9;
-defparam bootram.RAM2.INIT_32=256'h0686e238_812e0981_7a225a79_3f86ee39_b851f593_795280dd_9b268d38_055b5b79;
-defparam bootram.RAM2.INIT_33=256'h861b225a_0686c638_842e0981_225a798c_d438841b_09810686_7990802e_821b225a;
-defparam bootram.RAM2.INIT_34=256'h845380e5_3f800843_525f87fd_3fa81d70_52408885_389e1d70_810686b9_79812e09;
-defparam bootram.RAM2.INIT_35=256'h7951a6c5_80e5c852_3d5a8653_868f38a7_085c8008_a5e73f80_ffa80551_d052a93d;
-defparam bootram.RAM2.INIT_36=256'h81810534_33028405_3d34851b_841b33a2_80fe0523_22028405_3d23821b_3f7a22a1;
-defparam bootram.RAM2.INIT_37=256'h05525aa6_53aa3dea_8470547f_51a6923f_a93de405_86537952_81820523_82028405;
-defparam bootram.RAM2.INIT_38=256'h3f9e3d5f_0551a5e9_52a93df4_3f79537f_7a51a5f5_53981d52_8e055b86_843f0281;
-defparam bootram.RAM2.INIT_39=256'h7b1d7f1d_05547d53_55a93ddc_7c575d9c_7c597c58_3f027c5a_7e51a5dd_86537a52;
-defparam bootram.RAM2.INIT_3A=256'he438901d_09810684_7d90802e_3f84ee39_ef38f999_5c867c26_7b34811c_5b5b7933;
-defparam bootram.RAM2.INIT_3B=256'h09810684_5a79852e_708f0651_3879882a_810684d1_60842e09_2a435b5b_7022708c;
-defparam bootram.RAM2.INIT_3C=256'h80088338_51a3f63f_d452821d_865380dc_b4387e5e_065f7e84_2280ffff_c038861b;
-defparam bootram.RAM2.INIT_3D=256'h802e8481_7d87387b_8338815c_e03f8008_535b5ca3_e5d05470_1c625580_815e7e90;
-defparam bootram.RAM2.INIT_3E=256'h912e0981_81bb387f_407f812e_ec11405d_33821c22_b83f891b_9c1d5184_38881d52;
-defparam bootram.RAM2.INIT_3F=256'hddd851f1_537d5280_2e8f3879_42407d7a_11225d5d_08a41f84_8c1b087a_0683de38;
-defparam bootram.RAM3.INIT_00=256'h7a22993d_2e83a638_42800880_c33f8008_535d5df5_1d821d22_39ac1de4_e23f83bd;
-defparam bootram.RAM3.INIT_01=256'hc83f821b_527f51a3_40885379_d43f9c3d_527951a3_5a88537d_3d993d5f_237f499a;
-defparam bootram.RAM3.INIT_02=256'h7b567c55_51a3aa3f_5379527d_a3b33f88_05527951_a93dffb4_60478853_22973d23;
-defparam bootram.RAM3.INIT_03=256'h79330284_5b7f1b5a_26ef3880_1c5c887c_337b3481_1f5b5b79_5c7b1d7c_7e843d5e;
-defparam bootram.RAM3.INIT_04=256'h405b427d_a41e7033_398c1b08_792d82ad_8405085a_26ef3861_1b5b887b_051c3481;
-defparam bootram.RAM3.INIT_05=256'h80c01e89_a238ac1d_09810681_5a79832e_39811a33_bb388295_7d882e81_832e8a38;
-defparam bootram.RAM3.INIT_06=256'hfe388c1c_08802e80_80084180_51f4813f_f4387c22_09810681_5c79912e_12335c5e;
-defparam bootram.RAM3.INIT_07=256'h537d527f_963d4088_51a28e3f_537a527d_3d5c5e88_4b983d9b_9b3d2379_085a7c22;
-defparam bootram.RAM3.INIT_08=256'h88537a52_51a1ea3f_cc05527a_8853a93d_3d23794d_821d229d_901c085a_51a2823f;
-defparam bootram.RAM3.INIT_09=256'h7c26ef38_811c5c88_79337b34_7c1f5b5b_5e5c7b1d_557e843d_3f7e567e_7d51a1e1;
-defparam bootram.RAM3.INIT_0A=256'he951e58b_5a792d80_60840508_7b26ef38_811b5b88_84051c34_5a793302_805b7f1b;
-defparam bootram.RAM3.INIT_0B=256'h0523841a_840580ce_05347e02_840580cd_3d347e02_5d5d7e95_ac1de41d_3f80de39;
-defparam bootram.RAM3.INIT_0C=256'h537b812a_cc3f8008_70525bf1_6052943d_05237e53_840580d2_861a2202_22963d23;
-defparam bootram.RAM3.INIT_0D=256'h6151f5f7_7a537f52_7c557d54_05237b56_840580ce_095a7902_c03f8008_527c51f1;
-defparam bootram.RAM3.INIT_0E=256'h56517108_80e6ac54_38767008_727427a4_a4085553_800b80e6_04fc3d0d_3fa93d0d;
-defparam bootram.RAM3.INIT_0F=256'h0c863d0d_ff517080_7326e738_81135373_72518b39_81068538_70752e09_8c135351;
-defparam bootram.RAM3.INIT_10=256'h38811480_73872689_e6a40854_25ba3880_3f800880_5755ffb9_77797153_04fb3d0d;
-defparam bootram.RAM3.INIT_11=256'hac120c51_760880e6_1470822b_0c547310_0680e6a8_08811187_3980e6a8_e6a40c8e;
-defparam bootram.RAM3.INIT_12=256'hb005519f_842980e6_53755273_08055486_80081080_14519439_5280e6b0_54865375;
-defparam bootram.RAM3.INIT_13=256'h54865373_10800805_99388008_73800824_d83f8054_0d7551fe_0d04fd3d_a43f873d;
-defparam bootram.RAM3.INIT_14=256'h12337198_75703381_04fd3d0d_0c853d0d_81547380_519efa3f_b0055276_842980e6;
-defparam bootram.RAM3.INIT_15=256'h0d04f93d_5452853d_52535456_7107800c_07831633_70882b72_07821433_2b71902b;
-defparam bootram.RAM3.INIT_16=256'h832680d3_52565473_22707231_ff068b3d_387383ff_595776a8_e78c2256_0d7d7f80;
-defparam bootram.RAM3.INIT_17=256'h70723157_068d3d22_7383ffff_2380c039_51547674_80e79005_14709029_38739029;
-defparam bootram.RAM3.INIT_18=256'h80567578_519dea3f_80e79005_52739029_88538a3d_90291554_26ad3874_57547483;
-defparam bootram.RAM3.INIT_19=256'h052280e7_3d0d029a_3d0d04fc_56ec3989_903f8116_547451e3_17703353_27913875;
-defparam bootram.RAM3.INIT_1A=256'he78c2274_b5be5280_828c140c_140c800b_800b8288_54807323_80e79054_8c23800b;
-defparam bootram.RAM3.INIT_1B=256'h905a5c84_800b80e7_04f43d0d_38863d0d_837427d9_90145454_3f811482_0551ef9b;
-defparam bootram.RAM3.INIT_1C=256'h1a88055b_80d63878_7981ff26_1a085b5d_38758288_567581be_70810651_7c2c8132;
-defparam bootram.RAM3.INIT_1D=256'h80257180_32703072_7030728d_06708a32_800881ff_2e80c538_3f8008ff_7b51e2d5;
-defparam bootram.RAM3.INIT_1E=256'h82881a0c_19088105_5d348288_7b708105_38815d77_76802e83_59515858_25075351;
-defparam bootram.RAM3.INIT_1F=256'h828c1908_387c9138_802e80d2_82881908_27ffb138_5a81ff7a_1a0c811a_800b828c;
-defparam bootram.RAM3.INIT_20=256'h800b833d_55881954_82881908_802eab38_78225675_7627bf38_1b0c568b_8111828c;
-defparam bootram.RAM3.INIT_21=256'ha83f800b_7c0551f2_80e78c22_7826ef38_81185888_75337734_781a5757_5b58771a;
-defparam bootram.RAM3.INIT_22=256'h3d0d883d_3d0d04ea_fea9388e_5c837c27_82901a5a_1a0c811c_800b828c_82881a0c;
-defparam bootram.RAM3.INIT_23=256'h2e9d3873_547381ff_17703351_05575574_0284059d_94ba3f80_c0526851_70545780;
-defparam bootram.RAM3.INIT_24=256'h1555be75_548b3981_06853881_992e0981_51547381_74167033_81069438_81aa2e09;
-defparam bootram.RAM3.INIT_25=256'h55845380_93ea3f80_84527951_3d705454_f93d0d86_983d0d04_5473800c_27d13880;
-defparam bootram.RAM3.INIT_26=256'h81e0940c_0d04810b_800c893d_38815574_09810683_8008752e_5199ca3f_ddfc5273;
-defparam bootram.RAM3.INIT_27=256'h70810651_08708d2a_3f81b8b4_805189c1_81ff0655_c23f8008_8dd73f8a_04fc3d0d;
-defparam bootram.RAM3.INIT_28=256'h3f800880_0a51febf_ca3fb080_deb851de_74b53880_51818339_3880de80_51547388;
-defparam bootram.RAM3.INIT_29=256'h80df9c51_5184b53f_3fb0800a_ac51e2e9_89873f82_b63f8151_dee451de_2e9a3880;
-defparam bootram.RAM3.INIT_2A=256'hffff5298_80805380_de893f83_80dfe851_802ebb38_e33f8008_800a51fe_80cc3998;
-defparam bootram.RAM3.INIT_2B=256'h3f82ac51_b851dde3_e53f80e0_e2ab3ffe_3f82ac51_9451ddf3_bf3f80e0_800a5192;
-defparam bootram.RAM3.INIT_2C=256'h3d0d7570_d00c04fd_047180ef_3f863d0d_f451ddcf_883980e0_5183e93f_e29b3f80;
-defparam bootram.RAM3.INIT_2D=256'h722d853d_85387351_5372802e_80efd008_51dbfe3f_3fa052a0_5254e6bb_5380e1c0;
-defparam bootram.RAM3.INIT_2E=256'h0d04fc3d_722d843d_85388051_5372802e_80efd008_51dbe23f_0da05280_0d04fe3d;
-defparam bootram.RAM3.INIT_2F=256'h80088680_ec38820b_71802e80_53548155_70810651_8008862a_8d3fff0b_0d9a5189;
-defparam bootram.RAM3.INIT_30=256'he8547184_388a3987_71802e8e_8a388a54_71828024_802e9b38_e4547182_06535580;
-defparam bootram.RAM3.INIT_31=256'h70830672_80088a2c_882a8c06_88c03f71_08528551_88c83f80_ff548451_802e8338;
-defparam bootram.RAM3.INIT_32=256'he4d81108_2b8c0680_e23f7182_515452db_e1f85553_efdc0c80_11337080_0780e2b8;
-defparam bootram.RAM3.INIT_33=256'h06a338fe_812e0981_2ea63874_d40c7482_387480ef_d4082e98_3f7480ef_5252dbfb;
-defparam bootram.RAM3.INIT_34=256'h7351fdfb_0cfea73f_7380efd8_082e8e38_7380efd8_81069638_74822e09_c13f9e39;
-defparam bootram.RAM3.INIT_35=256'hff0b80ef_80efd40c_a23f800b_80085187_0dd8a33f_0d04fd3d_cd3f863d_3f995187;
-defparam bootram.RAM3.INIT_36=256'he0e33f84_de528451_87cd3fbb_80529c51_d63f81ae_52985187_87ac3f8d_d80c9951;
-defparam bootram.RAM3.INIT_37=256'h2e8d3880_3f738008_845186fa_5187b03f_70535484_07f49f06_80089080_51878f3f;
-defparam bootram.RAM3.INIT_38=256'h3d0d04fd_87893f85_07528051_80088480_5186e33f_e3d93f80_80e29051_08537352;
-defparam bootram.RAM3.INIT_39=256'h07731090_06717307_72812a88_832a8406_872a0771_2a820671_05337085_3d0d0297;
-defparam bootram.RAM3.INIT_3A=256'h81ff0682_872b0770_70720778_2b80c006_ff067685_07077081_a0067173_0674832b;
-defparam bootram.RAM3.INIT_3B=256'h81ff51ff_d00a0753_d00a0681_fe3d0d74_853d0d04_52555552_52535155_c0800c51;
-defparam bootram.RAM3.INIT_3C=256'hff813f72_3f80e151_b251ff87_51ff8c3f_923f8199_81aa51ff_51ff983f_9e3f81ff;
-defparam bootram.RAM3.INIT_3D=256'he23f7298_818151fe_51fee83f_feed3fb2_81ff0651_fef53f72_ff065252_882a7081;
-defparam bootram.RAM3.INIT_3E=256'h8051febf_51fec43f_ca3f81a1_3fb051fe_5253fecf_7081ff06_3f72902a_2a51fedb;
-defparam bootram.RAM3.INIT_3F=256'h0d04fb3d_a63f843d_3f8051fe_a051feab_51feb03f_feb53f80_ba3fa051_3f8e51fe;
-defparam bootram.RAM4.INIT_00=256'h0d80d53d_04ffb23d_0c873d0d_863d2280_5183ce3f_805280d0_3dfc0553_0d825487;
-defparam bootram.RAM4.INIT_01=256'h3f81bc39_c851e1a7_945280e2_38775382_82932690_58595777_08841208_0880d73d;
-defparam bootram.RAM4.INIT_02=256'h08085e81_d5d73f80_0480c15c_05567508_2980e394_b2387584_75962681_ff9f1656;
-defparam bootram.RAM4.INIT_03=256'h3f80085f_085e8c9d_8c993f80_0c818a39_0b81e4d0_e2cc0c80_0c810b81_0b81e18c;
-defparam bootram.RAM4.INIT_04=256'h085280f0_08538c17_e8399017_80d65c80_ffff065e_3f800883_f839fef6_80c65c80;
-defparam bootram.RAM4.INIT_05=256'h3880c45c_75802e86_81ff0656_ba3f8008_f088518a_80d33980_3f80c55c_885189f5;
-defparam bootram.RAM4.INIT_06=256'h3dfe8005_a43980d0_3f80d75c_085188dc_08528c17_17539017_5cb73994_bc3980c2;
-defparam bootram.RAM4.INIT_07=256'h5c829455_3f8339a0_8051fcf8_3980d35c_80d25c8d_518bb93f_528c1708_53901708;
-defparam bootram.RAM4.INIT_08=256'h58887826_77348118_57577533_d23d7905_58771980_0b833d5a_ec055480_80d03dfd;
-defparam bootram.RAM4.INIT_09=256'h3ff93d0d_ff518397_51d6803f_0d80e3f0_0d04803d_3f80d03d_8251e8bd_ec388380;
-defparam bootram.RAM4.INIT_0A=256'h3f893d0d_8051e191_75538152_82559854_2b075757_05337188_028405ab_02a70533;
-defparam bootram.RAM4.INIT_0B=256'h8a3d3476_17575473_b7387581_54807425_74ff1656_5a575758_7a7c7f7f_04f83d0d;
-defparam bootram.RAM4.INIT_0C=256'h81ff0654_cb3f8008_ff0651d8_05527781_538a3dfc_a1053482_33028405_70810558;
-defparam bootram.RAM4.INIT_0D=256'h5580de56_02a30533_04fa3d0d_0c8a3d0d_81547380_8538c139_3f73802e_8a51d9f9;
-defparam bootram.RAM4.INIT_0E=256'h04f93d0d_3f883d0d_d051ff89_81f75280_3dfc0553_34815488_5675883d_748338dc;
-defparam bootram.RAM4.INIT_0F=256'h81ff0670_eb3f8008_705256d7_02a70533_3dfc0552_34815389_0533893d_7c5702ab;
-defparam bootram.RAM4.INIT_10=256'h5473802e_ff067056_3f800881_7551d6ae_76537b52_77259738_2e9e3880_56547380;
-defparam bootram.RAM4.INIT_11=256'ha03f800b_80d051ff_5381f752_883dfc05_3d0d8154_3d0d04fa_74800c89_83388155;
-defparam bootram.RAM4.INIT_12=256'h0c80eb0b_0b81c094_3d0d0499_75800c88_83388156_2e098106_567480de_883d3356;
-defparam bootram.RAM4.INIT_13=256'h810781c0_be800670_0d72882b_0c04803d_0b81c0b0_ac0c89b0_a60b81c0_81c0800c;
-defparam bootram.RAM4.INIT_14=256'h08800c82_3881c0a8_515170f1_70810651_0870812a_0c81c0a4_0b81c0a0_980c5182;
-defparam bootram.RAM4.INIT_15=256'hc0a00c81_0c840b81_7381c09c_c0980c51_70810781_2bbe8006_3d0d7288_3d0d0480;
-defparam bootram.RAM4.INIT_16=256'h83065555_787a7c72_39fa3d0d_3d0d04ff_70f13882_06515151_812a7081_c0a40870;
-defparam bootram.RAM4.INIT_17=256'h2a725555_ca3f7282_38815188_71802e86_72830652_52718a38_38758306_57577191;
-defparam bootram.RAM4.INIT_18=256'hfe3d0d74_883d0d04_1454e939_52545281_7008720c_77117712_3873822b_73752794;
-defparam bootram.RAM4.INIT_19=256'hd1ad3f84_11335253_0680e3fc_ba3f728f_515353d1_fc113354_8f0680e3_70842a70;
-defparam bootram.RAM4.INIT_1A=256'h0d029305_0d04fe3d_f138823d_51515170_2a708106_90087088_3d0d82e0_3d0d0480;
-defparam bootram.RAM4.INIT_1B=256'h5170f138_81065151_70882a70_82e09008_80075353_060780c0_067a8c80_337880ff;
-defparam bootram.RAM4.INIT_1C=256'h72802e96_900c7251_800782e0_980c7182_ff0682e0_900c7581_0c7182e0_7682e080;
-defparam bootram.RAM4.INIT_1D=256'h04fc3d0d_0c843d0d_08517080_3882e080_515170f1_70810651_0870882a_3882e090;
-defparam bootram.RAM4.INIT_1E=256'h80559054_fc3d0d88_863d0d04_51ff873f_53805280_55885480_940c8880_810b82e0;
-defparam bootram.RAM4.INIT_1F=256'h54865381_88805588_04fc3d0d_0c863d0d_81ff0680_f13f8008_528151fe_8a805381;
-defparam bootram.RAM4.INIT_20=256'h3d0deb3f_3d0d0480_06800c82_08813281_0dca3f80_0d04803d_d53f863d_528051fe;
-defparam bootram.RAM4.INIT_21=256'h38dd3fff_8008269b_84e33f75_3d0d7756_3d0d04fb_2ef43882_06517080_800881ff;
-defparam bootram.RAM4.INIT_22=256'hba3d0d80_3d0d04ff_fe843f87_81528051_9b0a0753_fe9b0a06_55a05475_b43f8880;
-defparam bootram.RAM4.INIT_23=256'h80082681_849f3f73_38751754_ff2681b4_80557381_11565757_cb3d08ff_c93d0880;
-defparam bootram.RAM4.INIT_24=256'hfefd3ffe_518aea3f_3d085273_755380cb_548c8f3f_883d7052_5381ff52_a7388280;
-defparam bootram.RAM4.INIT_25=256'h800c810b_0a0782e0_0a0680c0_0c76fec0_0b82e090_980c8880_3f7482e0_d43ffd9f;
-defparam bootram.RAM4.INIT_26=256'h80157008_558f56fe_3f80c83d_900cfcef_a00b82e0_e0900c8a_88a00b82_82e0980c;
-defparam bootram.RAM4.INIT_27=256'h700882e0_54fe8c15_82e0840c_88157008_880c54fe_700882e0_54fe8415_82e08c0c;
-defparam bootram.RAM4.INIT_28=256'h25ffbc38_56567580_ff169016_0cfcb03f_0b82e090_900c8a80_800b82e0_800c5488;
-defparam bootram.RAM4.INIT_29=256'h82db3f80_575a5656_7b7d7212_f93d0d79_c83d0d04_74800c80_980c8155_800b82e0;
-defparam bootram.RAM4.INIT_2A=256'h74317555_a2388280_5473802e_7581ff06_2e80c338_81577480_2680cb38_57738008;
-defparam bootram.RAM4.INIT_2B=256'h802e8e38_57595674_19767631_3f731674_7551fdeb_77537352_83387654_57767527;
-defparam bootram.RAM4.INIT_2C=256'h76787a56_04fc3d0d_0c893d0d_81577680_39fd8c3f_828054dc_7527e138_74548280;
-defparam bootram.RAM4.INIT_2D=256'h0c80750c_800b8416_0b88160c_27903880_3f800874_135481ed_2e8d3873_54557380;
-defparam bootram.RAM4.INIT_2E=256'h160c7188_0c740684_08307276_81bd3f80_16565152_707406ff_3f800830_a63981cb;
-defparam bootram.RAM4.INIT_2F=256'h802e9f38_70545271_0881ff06_fc983f80_3d0d7554_3d0d04fd_fcc93f86_160c7151;
-defparam bootram.RAM4.INIT_30=256'h80537280_51fc943f_7088160c_08800805_823f8814_2e943881_08841508_81538814;
-defparam bootram.RAM4.INIT_31=256'h0a06800c_8008fe80_51faa33f_53815281_5481f90a_888055a0_04fc3d0d_0c853d0d;
-defparam bootram.RAM4.INIT_32=256'h54515170_0881ff06_81ff0680_08882a70_38d73f80_efe008a0_ff3d0d80_863d0d04;
-defparam bootram.RAM4.INIT_33=256'h71800c83_38f5b33f_82712784_ea115252_80efe008_80efe00c_06933871_a02e0981;
-defparam bootram.RAM4.INIT_34=256'h810b8008_04ffa93f_082b800c_3f810b80_800c04f3_e4d20533_3f800880_3d0d04c0;
-defparam bootram.RAM4.INIT_35=256'he0840c7c_0c8b0b82_0b82e090_980c8880_800b82e0_56f9983f_f63d0d7d_2b800c04;
-defparam bootram.RAM4.INIT_36=256'h3f7e5580_900cf8e7_a80b82e0_e0900c8a_88a80b82_82e0980c_800c810b_882b82e0;
-defparam bootram.RAM4.INIT_37=256'h5882e088_82e08c08_0cf8cc3f_0b82e090_900c8a80_800b82e0_80d33888_54737627;
-defparam bootram.RAM4.INIT_38=256'h80527173_83387053_53707327_31525790_883d7675_e080085b_84085a82_085982e0;
-defparam bootram.RAM4.INIT_39=256'he0980c8c_39800b82_1454ffa9_52ec3972_57348112_75708105_17517033_27913871;
-defparam bootram.RAM4.INIT_3A=256'h08880508_0508528c_538c088c_fd3d0d80_08028c0c_f7893f8c_3d0d7251_3d0d0480;
-defparam bootram.RAM4.INIT_3B=256'h8c050852_81538c08_0cfd3d0d_8c08028c_0d8c0c04_0c54853d_80087080_5182de3f;
-defparam bootram.RAM4.INIT_3C=256'h0d800b8c_8c0cf93d_048c0802_3d0d8c0c_800c5485_3f800870_085182b9_8c088805;
-defparam bootram.RAM4.INIT_3D=256'hf4050c8c_800b8c08_0888050c_0508308c_388c0888_088025ab_8c088805_08fc050c;
-defparam bootram.RAM4.INIT_3E=256'h8025ab38_088c0508_fc050c8c_05088c08_0c8c08f4_8c08f405_8838810b_08fc0508;
-defparam bootram.RAM4.INIT_3F=256'h08f0050c_38810b8c_fc050888_050c8c08_0b8c08f0_8c050c80_08308c08_8c088c05;
-defparam bootram.RAM5.INIT_00=256'h08708c08_81a73f80_88050851_08528c08_8c088c05_050c8053_088c08fc_8c08f005;
-defparam bootram.RAM5.INIT_01=256'h0870800c_8c08f805_08f8050c_0508308c_388c08f8_08802e8c_8c08fc05_f8050c54;
-defparam bootram.RAM5.INIT_02=256'h2593388c_88050880_050c8c08_0b8c08fc_fb3d0d80_08028c0c_8c0c048c_54893d0d;
-defparam bootram.RAM5.INIT_03=256'h8c050830_8c388c08_05088025_0c8c088c_8c08fc05_050c810b_308c0888_08880508;
-defparam bootram.RAM5.INIT_04=256'h0c548c08_8c08f805_3f800870_050851ad_528c0888_088c0508_0c81538c_8c088c05;
-defparam bootram.RAM5.INIT_05=256'h3d0d8c0c_800c5487_f8050870_050c8c08_308c08f8_08f80508_2e8c388c_fc050880;
-defparam bootram.RAM5.INIT_06=256'h8c088805_088c0508_f8050c8c_800b8c08_08fc050c_0d810b8c_8c0cfd3d_048c0802;
-defparam bootram.RAM5.INIT_07=256'h108c088c_088c0508_2499388c_088c0508_38800b8c_08802ea3_8c08fc05_0827ac38;
-defparam bootram.RAM5.INIT_08=256'h05088c08_388c088c_802e80c9_08fc0508_0cc9398c_8c08fc05_fc050810_050c8c08;
-defparam bootram.RAM5.INIT_09=256'h08fc0508_f805088c_050c8c08_318c0888_088c0508_8805088c_a1388c08_88050826;
-defparam bootram.RAM5.INIT_0A=256'h050cffaf_2a8c088c_8c050881_050c8c08_2a8c08fc_fc050881_050c8c08_078c08f8;
-defparam bootram.RAM5.INIT_0B=256'h08708c08_8c08f805_0c518d39_8c08f405_88050870_8f388c08_0508802e_398c0890;
-defparam bootram.RAM5.INIT_0C=256'h278c3874_56528372_78777956_04fc3d0d_3d0d8c0c_08800c85_8c08f405_f4050c51;
-defparam bootram.RAM5.INIT_0D=256'h8106bd38_72712e09_74335253_a0387433_5271ff2e_b038ff12_5170802e_74078306;
-defparam bootram.RAM5.INIT_0E=256'h51700873_04747454_0c863d0d_38800b80_098106e2_5571ff2e_ff145455_81158115;
-defparam bootram.RAM5.INIT_0F=256'h72713180_55ffaf39_38707355_718326e9_14545451_118414fc_068f3884_082e0981;
-defparam bootram.RAM5.INIT_10=256'h802ea738_83065170_38727507_8f72278c_55555555_7670797b_04fc3d0d_0c863d0d;
-defparam bootram.RAM5.INIT_11=256'h06ea3874_ff2e0981_ff125271_81055634_54337470_72708105_ff2e9838_ff125271;
-defparam bootram.RAM5.INIT_12=256'h8405530c_54087170_72708405_8405530c_54087170_72708405_0d047451_800c863d;
-defparam bootram.RAM5.INIT_13=256'h8f26c938_f0125271_8405530c_54087170_72708405_8405530c_54087170_72708405;
-defparam bootram.RAM5.INIT_14=256'h8339fc3d_387054ff_718326ed_0cfc1252_70840553_05540871_38727084_83722795;
-defparam bootram.RAM5.INIT_15=256'hff125271_802ea238_83065170_278a3874_53558372_05335755_028c059f_0d767971;
-defparam bootram.RAM5.INIT_16=256'h04747488_0c863d0d_ef387480_2e098106_125271ff_055534ff_73737081_ff2e9338;
-defparam bootram.RAM5.INIT_17=256'h530c7271_71708405_05530c72_72717084_7227a538_5154518f_71902b07_2b750770;
-defparam bootram.RAM5.INIT_18=256'h8405530c_38727170_83722790_8f26dd38_f0125271_8405530c_0c727170_70840553;
-defparam bootram.RAM5.INIT_19=256'hd9387174_72802e80_54555552_787a7c70_39fa3d0d_7053ff90_8326f238_fc125271;
-defparam bootram.RAM5.INIT_1A=256'h8106a938_74712e09_74335651_b1387133_5372ff2e_d438ff13_70802e80_07830651;
-defparam bootram.RAM5.INIT_1B=256'h2e098106_555272ff_15ff1555_38811281_802e80fc_ff065170_87387081_72802e81;
-defparam bootram.RAM5.INIT_1C=256'h04717457_0c883d0d_52527080_71713151_7581ff06_7081ff06_74335651_d1387133;
-defparam bootram.RAM5.INIT_1D=256'h74087009_802eb138_fc135372_52ff9739_38747655_74082e88_88387108_55837327;
-defparam bootram.RAM5.INIT_1E=256'hd0387408_55837327_15841757_709a3884_06515151_84828180_120670f8_f7fbfdff;
-defparam bootram.RAM5.INIT_1F=256'h08545472_0b80e4ac_fd3d0d80_883d0d04_800b800c_52fedf39_38747655_76082ed0;
-defparam bootram.RAM5.INIT_20=256'h0851f6a3_b7cd3f80_528151ff_3f80e4ec_3fffaff0_0cffb0d4_7380efe4_812e9e38;
-defparam bootram.RAM5.INIT_21=256'h863f00ff_800851f6_ffb7b03f_ec528151_d33f80e4_b73fffaf_e40cffb0_3f7280ef;
-defparam bootram.RAM5.INIT_22=256'hff2e0981_08525270_2dfc1270_2e913870_525270ff_fc057008_80e4f40b_39ff3d0d;
-defparam bootram.RAM5.INIT_23=256'h6e20636f_6f722069_21457272_00000040_04000000_ffb0e23f_3d0d0404_06f13883;
-defparam bootram.RAM5.INIT_24=256'h65642063_70656374_3a204578_646c6572_2068616e_636b6574_6c207061_6e74726f;
-defparam bootram.RAM5.INIT_25=256'h676f7420_62757420_25642c20_62657220_206e756d_6c697479_74696269_6f6d7061;
-defparam bootram.RAM5.INIT_26=256'h2068616e_636b6574_6c207061_6e74726f_6e20636f_6f722069_21457272_25640a00;
-defparam bootram.RAM5.INIT_27=256'h68202564_656e6774_6164206c_61796c6f_65642070_70656374_3a204578_646c6572;
-defparam bootram.RAM5.INIT_28=256'h616e6765_6b206368_206c696e_0a657468_0a000000_74202564_7420676f_2c206275;
-defparam bootram.RAM5.INIT_29=256'h44502062_31302055_50204e32_0a555352_640a0000_203d2025_70656564_643a2073;
-defparam bootram.RAM5.INIT_2A=256'h7479206e_62696c69_70617469_20636f6d_46504741_720a0000_6f616465_6f6f746c;
-defparam bootram.RAM5.INIT_2B=256'h62696c69_70617469_20636f6d_77617265_4669726d_640a0000_723a2025_756d6265;
-defparam bootram.RAM5.INIT_2C=256'h69702072_476f7420_00000000_61646472_640a0000_723a2025_756d6265_7479206e;
-defparam bootram.RAM5.INIT_2D=256'h00000785_00000785_00000690_00000000_65743a20_7061636b_65727920_65636f76;
-defparam bootram.RAM5.INIT_2E=256'h00000785_00000785_000006d5_000006ec_00000785_00000785_00000785_00000785;
-defparam bootram.RAM5.INIT_2F=256'h0000069d_00000709_00000785_00000785_00000785_00000785_00000785_0000075b;
-defparam bootram.RAM5.INIT_30=256'h0050c285_c0a80a02_00000749_0000073c_00000735_0000072e_00000729_00000724;
-defparam bootram.RAM5.INIT_31=256'h2e256400_642e2564_25642e25_45000000_01b200d9_05160364_14580a2c_3fff0000;
-defparam bootram.RAM5.INIT_32=256'h73656e64_ffff0000_ffffffff_00000000_43444546_38394142_34353637_30313233;
-defparam bootram.RAM5.INIT_33=256'h6e642f6f_656e2061_6f66206c_656e7420_69676e6d_6420616c_3a206261_5f706b74;
-defparam bootram.RAM5.INIT_34=256'h6f206869_65642074_6661696c_6f6e3a20_636f6d6d_6e65745f_66000000_72206275;
-defparam bootram.RAM5.INIT_35=256'h646c655f_0a68616e_00000000_666f7220_696e6720_6c6f6f6b_63686520_74206361;
-defparam bootram.RAM5.INIT_36=256'h696e636f_55445020_0a000000_3d202564_697a6520_72642073_20776569_6172703a;
-defparam bootram.RAM5.INIT_37=256'h0b0b0b0b_00000000_2025640a_3a202564_67746873_206c656e_74656e74_6e736973;
-defparam bootram.RAM5.INIT_38=256'h2e204c6f_6d6f6465_61666520_696e2073_50322b20_20555352_74696e67_53746172;
-defparam bootram.RAM5.INIT_39=256'h6b696e67_43686563_00000000_6172652e_69726d77_66652066_67207361_6164696e;
-defparam bootram.RAM5.INIT_3A=256'h6d616765_47412069_6e204650_6374696f_726f6475_69642070_2076616c_20666f72;
-defparam bootram.RAM5.INIT_3B=256'h61676520_4120696d_20465047_74696f6e_6f647563_64207072_56616c69_2e2e2e00;
-defparam bootram.RAM5.INIT_3C=256'h4e6f2076_742e0000_20626f6f_6720746f_7074696e_7474656d_642e2041_666f756e;
-defparam bootram.RAM5.INIT_3D=256'h6f756e64_67652066_20696d61_46504741_696f6e20_64756374_2070726f_616c6964;
-defparam bootram.RAM5.INIT_3E=256'h6e206669_6c742d69_20627569_6820746f_726f7567_67207468_6c6c696e_2e0a4661;
-defparam bootram.RAM5.INIT_3F=256'h6d776172_20666972_74696f6e_6f647563_64207072_56616c69_72652e00_726d7761;
-defparam bootram.RAM6.INIT_00=256'h206c6f61_73686564_46696e69_2e2e2e00_64696e67_204c6f61_756e642e_6520666f;
-defparam bootram.RAM6.INIT_01=256'h523a2052_4552524f_2e000000_6d616765_6e672069_61727469_2e205374_64696e67;
-defparam bootram.RAM6.INIT_02=256'h73207368_20546869_72616d21_70726f67_61696e20_6f6d206d_6e206672_65747572;
-defparam bootram.RAM6.INIT_03=256'h2070726f_616c6964_4e6f2076_6e210000_61707065_65722068_206e6576_6f756c64;
-defparam bootram.RAM6.INIT_04=256'h696e6720_46616c6c_6e642e20_20666f75_77617265_6669726d_696f6e20_64756374;
-defparam bootram.RAM6.INIT_05=256'h2e000000_77617265_6669726d_2d696e20_75696c74_746f2062_75676820_7468726f;
-defparam bootram.RAM6.INIT_06=256'h57455f54_00000000_4e4f4e45_00000000_2025640a_7420746f_64207365_53706565;
-defparam bootram.RAM6.INIT_07=256'h726e6574_65746865_43000000_45545249_53594d4d_58000000_57455f52_58000000;
-defparam bootram.RAM6.INIT_08=256'h4144563a_4e45475f_4155544f_5048595f_6c3a2000_6e74726f_7720636f_20666c6f;
-defparam bootram.RAM6.INIT_09=256'h00030003_00000000_780a0000_20307825_20676f74_7825782c_74652030_2077726f;
-defparam bootram.RAM6.INIT_0A=256'h6b657420_20706163_64617465_6e207570_6f722069_21457272_00030203_00000001;
-defparam bootram.RAM6.INIT_0B=256'h6e677468_64206c65_796c6f61_64207061_65637465_20457870_6c65723a_68616e64;
-defparam bootram.RAM6.INIT_0C=256'h000020fb_000020fb_00002055_00000000_2025640a_20676f74_20627574_2025642c;
-defparam bootram.RAM6.INIT_0D=256'h000020fb_000020fb_000020fb_000020fb_000020fb_00002074_00002096_000020ab;
-defparam bootram.RAM6.INIT_0E=256'h000020f1_000020da_000020fb_000020fb_000020fb_000020fb_000020fb_000020fb;
-defparam bootram.RAM6.INIT_0F=256'h30313233_00000000_6f72740a_0a0a6162_000020c7_00002086_000020fb_000020fb;
-defparam bootram.RAM6.INIT_10=256'hff00ffff_00ffffff_65000000_792e6578_64756d6d_43444546_38394142_34353637;
-defparam bootram.RAM6.INIT_11=256'h0050c285_c0a80a02_0000327c_00000000_00000000_00000000_ffffff00_ffff00ff;
-defparam bootram.RAM6.INIT_12=256'h000030dc_000030d4_000b0000_0018000f_ffff0031_05050400_01010100_3fff0000;
-defparam bootram.RAM6.INIT_13=256'h00000000_ffffffff_00000000_ffffffff_0000320c_10101200_000030ec_000030e4;
+defparam bootram.RAM2.INIT_0E=256'he0d00c04_048a0b81_0c8b3d0d_39800b80_1959fea3_2dec3981_58335179_76708105;
+defparam bootram.RAM2.INIT_0F=256'h797b0288_04fc3d0d_38823d0d_515170ef_70810651_8c2a8132_b8b40870_803d0d81;
+defparam bootram.RAM2.INIT_10=256'h822a7081_0a075272_86387181_5570802e_55555654_07728106_72982b7b_059b0533;
+defparam bootram.RAM2.INIT_11=256'he0d80c51_79712b81_0ca07531_7181e0d4_52ffb13f_71820a07_802e8638_06515170;
+defparam bootram.RAM2.INIT_12=256'h53727427_54555580_0d76787a_0d04fc3d_800c863d_81b88008_38ff993f_73802e84;
+defparam bootram.RAM2.INIT_13=256'hff067290_387183ff_70802e8d_71902a51_5351ee39_05811555_15702273_8f387210;
+defparam bootram.RAM2.INIT_14=256'h0880e5bc_d93f7670_e5b451ae_53755280_fd3d0d86_863d0d04_3971800c_2a0552ec;
+defparam bootram.RAM2.INIT_15=256'h38833d0d_708025f3_ff125252_720c8812_52895180_0d80e5c4_0d04ff3d_0c54853d;
+defparam bootram.RAM2.INIT_16=256'h52528972_81128812_742e8e38_70225472_e5c05252_53800b80_02960522_04fd3d0d;
+defparam bootram.RAM2.INIT_17=256'h08802e89_56c73f80_ff065358_7a7183ff_fa3d0d78_853d0d04_5170800c_25ee3880;
+defparam bootram.RAM2.INIT_18=256'h802e8f38_15555271_55730888_e5c05555_e5c40b80_39800880_84050cad_38768008;
+defparam bootram.RAM2.INIT_19=256'h86705493_04f13d0d_0c883d0d_23768414_ee3f7573_25eb389b_54558975_81158814;
+defparam bootram.RAM2.INIT_1A=256'h028405a2_993f9080_dc0551ad_0552913d_53923d88_ada83f73_d6055254_3d53923d;
+defparam bootram.RAM2.INIT_1B=256'h052380c0_028405aa_23818080_800b8c3d_05a60523_23800284_800b8b3d_0523818a;
+defparam bootram.RAM2.INIT_1C=256'h80080284_51fdb73f_913de405_80538a52_685d665e_05ae0523_23800284_910b8d3d;
+defparam bootram.RAM2.INIT_1D=256'hbe0523ac_80028405_0b913d23_ba052380_22028405_3d23963d_983d2290_05ae0523;
+defparam bootram.RAM2.INIT_1E=256'h0b973d23_0d805b80_0d04e83d_f13f913d_8405519d_c02981e6_05526980_53913dd4;
+defparam bootram.RAM2.INIT_1F=256'h80f20522_abf83f02_3df80551_e5b4529a_3f865380_0551ac86_529a3df2_86539b3d;
+defparam bootram.RAM2.INIT_20=256'ha13d0845_05436e44_c41143f0_800b9b3d_8008585a_e83f8008_e20523f7_02840580;
+defparam bootram.RAM2.INIT_21=256'h7508701a_3d568458_fc06408c_3d088305_3d085fa3_5d6e5ea1_59845c90_a33d0846;
+defparam bootram.RAM2.INIT_22=256'h83065473_2e9a3873_08547380_73760c75_75278438_565a5573_80713151_787c3190;
+defparam bootram.RAM2.INIT_23=256'h519cc33f_16085276_75085394_51efec3f_3880dcc8_73802e88_08830654_8c389416;
+defparam bootram.RAM2.INIT_24=256'h51f6ee3f_5978822a_843880c0_3878bf26_8025ffac_19595777_570817ff_75708405;
+defparam bootram.RAM2.INIT_25=256'hca052380_02840580_94055a79_3d237f1f_8a800b94_6e404081_ea3d0d6b_9a3d0d04;
+defparam bootram.RAM2.INIT_26=256'h80d20523_80028405_79963d23_c080075a_05236980_840580ce_81808002_0b953d23;
+defparam bootram.RAM2.INIT_27=256'hd2052391_02840580_08095a79_fae03f80_3d70525c_538a5293_46684780_80e5bc08;
+defparam bootram.RAM2.INIT_28=256'h7a51f6bc_51f7c83f_3880dcf4_065a7992_800881ff_5e8ac83f_3d70535c_3d705398;
+defparam bootram.RAM2.INIT_29=256'h1f5b5b79_5c7b1d7c_90805380_94557b54_586b575d_5a6d5960_a939027f_3feddb3f;
+defparam bootram.RAM2.INIT_2A=256'h3d238d3d_ae05228a_0d7f5802_0d04f73d_893f983d_26ef38fd_1c5c867c_337b3481;
+defparam bootram.RAM2.INIT_2B=256'h3df80553_5588548b_2377567e_8405a605_3d238002_1857768b_a2052388_22028405;
+defparam bootram.RAM2.INIT_2C=256'h0b8f3d34_b2052386_80028405_8e3d2390_3d0d810b_3d0d04ee_fe9e3f8b_91527d51;
+defparam bootram.RAM2.INIT_2D=256'hb53feaf1_ec0551a8_0852943d_3f865380_0523eaa2_028405b6_b5053481_84028405;
+defparam bootram.RAM2.INIT_2E=256'h3f800808_b23fead5_f60551a9_8052943d_a53f8653_f20551a8_0852943d_3f845380;
+defparam bootram.RAM2.INIT_2F=256'hc01b337a_1c5a80dc_53805b7a_05549086_55943de4_5780569c_59805880_43025c80;
+defparam bootram.RAM2.INIT_30=256'h90862e09_225f5d7d_3d088e11_d93d0daa_943d0d04_38fbcb3f_867b26ef_34811b5b;
+defparam bootram.RAM2.INIT_31=256'ha63f86ee_dda451f5_38795280_799b268d_f2055b5b_3d088429_38901dac_8106829d;
+defparam bootram.RAM2.INIT_32=256'h1b225a79_86d43884_2e098106_5a799080_38821b22_810686e2_79812e09_397a225a;
+defparam bootram.RAM2.INIT_33=256'h853fa81d_70524088_b9389e1d_09810686_5a79812e_38861b22_810686c6_8c842e09;
+defparam bootram.RAM2.INIT_34=256'h08868f38_80085c80_51a5e73f_3dffa805_e5bc52a9_43845380_fd3f8008_70525f87;
+defparam bootram.RAM2.INIT_35=256'h23841b33_0580fe05_1b220284_a13d2382_c53f7a22_527951a6_5380e5b4_a73d5a86;
+defparam bootram.RAM2.INIT_36=256'h0551a692_52a93de4_23865379_05818205_34820284_05818105_1b330284_a23d3485;
+defparam bootram.RAM2.INIT_37=256'hf53f7953_527a51a5_8653981d_818e055b_a6843f02_ea05525a_7f53aa3d_3f847054;
+defparam bootram.RAM2.INIT_38=256'h587c575d_5a7c597c_dd3f027c_527e51a5_5f86537a_e93f9e3d_f40551a5_7f52a93d;
+defparam bootram.RAM2.INIT_39=256'h993f84ee_26ef38f9_1c5c867c_337b3481_1d5b5b79_537b1d7f_dc05547d_9c55a93d;
+defparam bootram.RAM2.INIT_3A=256'hd1387988_09810684_5b60842e_8c2a435b_1d702270_84e43890_2e098106_397d9080;
+defparam bootram.RAM2.INIT_3B=256'h5e865380_84b4387e_ff065f7e_1b2280ff_84c03886_2e098106_515a7985_2a708f06;
+defparam bootram.RAM2.INIT_3C=256'ha3e03f80_70535b5c_80e5bc54_901c6255_38815e7e_3f800883_1d51a3f6_dcc05282;
+defparam bootram.RAM2.INIT_3D=256'h22ec1140_1b33821c_84b83f89_529c1d51_8138881d_7b802e84_5c7d8738_08833881;
+defparam bootram.RAM2.INIT_3E=256'h5d42407d_8411225d_7a08a41f_388c1b08_810683de_7f912e09_2e81bb38_5d407f81;
+defparam bootram.RAM2.INIT_3F=256'hf5c33f80_22535d5d_e41d821d_bd39ac1d_f1f53f83_80ddc451_79537d52_7a2e8f38;
+defparam bootram.RAM3.INIT_00=256'ha3d43f9c_7d527951_5f5a8853_9a3d993d_3d237f49_387a2299_802e83a6_08428008;
+defparam bootram.RAM3.INIT_01=256'h51a3b33f_b4055279_53a93dff_23604788_1b22973d_a3c83f82_79527f51_3d408853;
+defparam bootram.RAM3.INIT_02=256'h811c5c88_79337b34_7c1f5b5b_5e5c7b1d_557e843d_3f7b567c_7d51a3aa_88537952;
+defparam bootram.RAM3.INIT_03=256'h5a792d82_61840508_7b26ef38_811b5b88_84051c34_5a793302_805b7f1b_7c26ef38;
+defparam bootram.RAM3.INIT_04=256'h335a7983_9539811a_81bb3882_387d882e_7d832e8a_33405b42_08a41e70_ad398c1b;
+defparam bootram.RAM3.INIT_05=256'h2251f481_81f4387c_2e098106_5e5c7991_8912335c_1d80c01e_81a238ac_2e098106;
+defparam bootram.RAM3.INIT_06=256'h88537a52_9b3d5c5e_794b983d_229b3d23_1c085a7c_80fe388c_8008802e_3f800841;
+defparam bootram.RAM3.INIT_07=256'h4d8853a9_9d3d2379_5a821d22_3f901c08_7f51a282_88537d52_3f963d40_7d51a28e;
+defparam bootram.RAM3.INIT_08=256'h1d7c1f5b_3d5e5c7b_7e557e84_e13f7e56_527d51a1_3f88537a_7a51a1ea_3dcc0552;
+defparam bootram.RAM3.INIT_09=256'h887b26ef_34811b5b_0284051c_1b5a7933_38805b7f_887c26ef_34811c5c_5b79337b;
+defparam bootram.RAM3.INIT_0A=256'h02840580_953d347e_1d5d5d7e_39ac1de4_9e3f80de_80e951e5_085a792d_38608405;
+defparam bootram.RAM3.INIT_0B=256'h53605294_d205237e_02840580_23861a22_1a22963d_ce052384_02840580_cd05347e;
+defparam bootram.RAM3.INIT_0C=256'hce05237b_02840580_08095a79_f1c03f80_2a527c51_08537b81_f1cc3f80_3d70525b;
+defparam bootram.RAM3.INIT_0D=256'h53727427_e6900855_0d800b80_0d04fc3d_f73fa93d_526151f5_547a537f_567c557d;
+defparam bootram.RAM3.INIT_0E=256'h39811353_3872518b_09810685_5170752e_088c1353_54565171_0880e698_a4387670;
+defparam bootram.RAM3.INIT_0F=256'h8025ba38_b93f8008_535755ff_0d777971_0d04fb3d_800c863d_38ff5170_737326e7;
+defparam bootram.RAM3.INIT_10=256'h940c5473_870680e6_94088111_8e3980e6_80e6900c_89388114_54738726_80e69008;
+defparam bootram.RAM3.INIT_11=256'h80080554_39800810_9c145194_755280e6_51548653_e698120c_2b760880_10147082;
+defparam bootram.RAM3.INIT_12=256'h54738008_fed83f80_3d0d7551_3d0d04fd_9fa43f87_e69c0551_73842980_86537552;
+defparam bootram.RAM3.INIT_13=256'h800c853d_3f815473_76519efa_e69c0552_73842980_05548653_08108008_24993880;
+defparam bootram.RAM3.INIT_14=256'h33710780_72078316_3370882b_2b078214_982b7190_81123371_0d757033_0d04fd3d;
+defparam bootram.RAM3.INIT_15=256'hffff068b_a8387383_56595776_80e6f822_3d0d7d7f_3d0d04f9_56545285_0c525354;
+defparam bootram.RAM3.INIT_16=256'h742380c0_05515476_2980e6fc_29147090_d3387390_73832680_31525654_3d227072;
+defparam bootram.RAM3.INIT_17=256'h3d527390_5488538a_74902915_8326ad38_57575474_22707231_ff068d3d_397383ff;
+defparam bootram.RAM3.INIT_18=256'h1656ec39_e3a33f81_53547451_75177033_78279138_3f805675_05519dea_2980e6fc;
+defparam bootram.RAM3.INIT_19=256'h88140c80_23800b82_54548073_0b80e6fc_e6f82380_9a052280_fc3d0d02_893d0d04;
+defparam bootram.RAM3.INIT_1A=256'hd938863d_54837427_82901454_9b3f8114_740551ef_80e6f822_0cb5ab52_0b828c14;
+defparam bootram.RAM3.INIT_1B=256'h881a085b_be387582_51567581_32708106_847c2c81_e6fc5a5c_0d800b80_0d04f43d;
+defparam bootram.RAM3.INIT_1C=256'hff06708a_38800881_ff2e80c5_e83f8008_5b7b51e2_781a8805_2680d638_5d7981ff;
+defparam bootram.RAM3.INIT_1D=256'h777b7081_8338815d_5876802e_51595158_80250753_72802571_8d327030_32703072;
+defparam bootram.RAM3.INIT_1E=256'h38828819_7a27ffb1_1a5a81ff_8c1a0c81_0c800b82_0582881a_88190881_055d3482;
+defparam bootram.RAM3.INIT_1F=256'h75802eab_38782256_8b7627bf_8c1b0c56_08811182_38828c19_d2387c91_08802e80;
+defparam bootram.RAM3.INIT_20=256'h887826ef_34811858_57753377_1a781a57_3d5b5877_54800b83_08558819_38828819;
+defparam bootram.RAM3.INIT_21=256'h5a5c837c_1c82901a_8c1a0c81_0c800b82_0b82881a_f2a83f80_227c0551_3880e6f8;
+defparam bootram.RAM3.INIT_22=256'h9d055755_80028405_5194ba3f_80c05268_3d705457_ea3d0d88_8e3d0d04_27fea938;
+defparam bootram.RAM3.INIT_23=256'h81992e09_33515473_38741670_09810694_7381aa2e_ff2e9d38_51547381_74177033;
+defparam bootram.RAM3.INIT_24=256'h863d7054_04f93d0d_0c983d0d_80547380_7527d138_811555be_81548b39_81068538;
+defparam bootram.RAM3.INIT_25=256'h83388155_2e098106_3f800875_735199ca_80dde852_80558453_5193ea3f_54845279;
+defparam bootram.RAM3.INIT_26=256'h55805189_0881ff06_8ac23f80_0d8dd73f_0c04fc3d_0b81e094_3d0d0481_74800c89;
+defparam bootram.RAM3.INIT_27=256'h80dea451_3974b538_ec518183_883880dd_51515473_2a708106_b408708d_c13f81b8;
+defparam bootram.RAM3.INIT_28=256'h82ac51e2_5189873f_dec93f81_80ded051_802e9a38_bf3f8008_800a51fe_dedd3fb0;
+defparam bootram.RAM3.INIT_29=256'h3880dfd4_08802ebb_fee33f80_98800a51_5180cc39_3f80df88_0a5184b5_fc3fb080;
+defparam bootram.RAM3.INIT_2A=256'h51e2be3f_863f82ac_e08051de_92bf3f80_98800a51_80ffff52_83808053_51de9c3f;
+defparam bootram.RAM3.INIT_2B=256'he23f863d_e0e051dd_3f883980_805183e9_51e2ae3f_f63f82ac_e0a451dd_fee53f80;
+defparam bootram.RAM3.INIT_2C=256'h3f80efbc_a051dc91_ce3fa052_ac5254e6_705380e1_fd3d0d75_efbc0c04_0d047180;
+defparam bootram.RAM3.INIT_2D=256'h08537280_3f80efbc_8051dbf5_3d0da052_3d0d04fe_51722d85_2e853873_08537280;
+defparam bootram.RAM3.INIT_2E=256'h51535481_2a708106_0b800886_898d3fff_3d0d9a51_3d0d04fc_51722d84_2e853880;
+defparam bootram.RAM3.INIT_2F=256'h248a388a_38718280_82802e9b_80e45471_80065355_0b800886_80ec3882_5571802e;
+defparam bootram.RAM3.INIT_30=256'h5188c03f_80085285_5188c83f_38ff5484_84802e83_87e85471_8e388a39_5471802e;
+defparam bootram.RAM3.INIT_31=256'h53515452_80e1e455_80efc80c_a4113370_720780e2_2c708306_0680088a_71882a8c;
+defparam bootram.RAM3.INIT_32=256'hefc00c74_98387480_efc0082e_8e3f7480_085252dc_80e4c411_822b8c06_dbf53f71;
+defparam bootram.RAM3.INIT_33=256'hc4082e8e_387380ef_09810696_3974822e_fec13f9e_8106a338_74812e09_822ea638;
+defparam bootram.RAM3.INIT_34=256'h3f800851_3d0dd8b6_3d0d04fd_87cd3f86_fb3f9951_3f7351fd_c40cfea7_387380ef;
+defparam bootram.RAM3.INIT_35=256'hae80529c_87d63f81_8d529851_5187ac3f_efc40c99_0cff0b80_0b80efc0_87a23f80;
+defparam bootram.RAM3.INIT_36=256'h845187b0_06705354_8007f49f_3f800890_8451878f_51e0f63f_bbcb5284_5187cd3f;
+defparam bootram.RAM3.INIT_37=256'h3f800884_805186e3_51e3ec3f_5280e1fc_80085373_082e8d38_fa3f7380_3f845186;
+defparam bootram.RAM3.INIT_38=256'h71832a84_71872a07_852a8206_97053370_fd3d0d02_853d0d04_5187893f_80075280;
+defparam bootram.RAM3.INIT_39=256'h852b80c0_81ff0676_73070770_2ba00671_90067483_07077310_88067173_0672812a;
+defparam bootram.RAM3.INIT_3A=256'h04fe3d0d_52853d0d_55525555_51525351_82c0800c_7081ff06_78872b07_06707207;
+defparam bootram.RAM3.INIT_3B=256'h9951ff8c_ff923f81_3f81aa51_ff51ff98_ff9e3f81_5381ff51_81d00a07_74d00a06;
+defparam bootram.RAM3.INIT_3C=256'h51feed3f_7281ff06_52fef53f_81ff0652_72882a70_51ff813f_873f80e1_3fb251ff;
+defparam bootram.RAM3.INIT_3D=256'hcf3fb051_065253fe_2a7081ff_db3f7290_982a51fe_fee23f72_3f818151_b251fee8;
+defparam bootram.RAM3.INIT_3E=256'h3fa051fe_8051feb0_51feb53f_feba3fa0_bf3f8e51_3f8051fe_a151fec4_feca3f81;
+defparam bootram.RAM3.INIT_3F=256'h3f863d22_d05183ce_53805280_873dfc05_3d0d8254_3d0d04fb_fea63f84_ab3f8051;
+defparam bootram.RAM4.INIT_00=256'h90387753_77829326_08585957_3d088412_3d0880d7_3d0d80d5_0d04ffb2_800c873d;
+defparam bootram.RAM4.INIT_01=256'h80055675_842980e3_81b23875_56759626_39ff9f16_ba3f81bc_e2b451e1_82945280;
+defparam bootram.RAM4.INIT_02=256'hd00c818a_800b81e4_81e2cc0c_8c0c810b_810b81e1_8008085e_5cd5ea3f_080480c1;
+defparam bootram.RAM4.INIT_03=256'h5e80d65c_83ffff06_f63f8008_80f839fe_5f80c65c_9d3f8008_80085e8c_398c993f;
+defparam bootram.RAM4.INIT_04=256'h8aba3f80_80eff451_5c80d339_f53f80c5_eff45189_17085280_1708538c_80e83990;
+defparam bootram.RAM4.INIT_05=256'h17085188_1708528c_94175390_c25cb739_5cbc3980_863880c4_5675802e_0881ff06;
+defparam bootram.RAM4.INIT_06=256'h8d3980d3_3f80d25c_08518bb9_08528c17_05539017_d03dfe80_5ca43980_dc3f80d7;
+defparam bootram.RAM4.INIT_07=256'h80d23d79_5a587719_800b833d_fdec0554_5580d03d_a05c8294_f83f8339_5c8051fc;
+defparam bootram.RAM4.INIT_08=256'h3d0d80e3_3d0d0480_bd3f80d0_808251e8_26ec3883_18588878_33773481_05575775;
+defparam bootram.RAM4.INIT_09=256'h57825598_882b0757_ab053371_33028405_0d02a705_973ff93d_3fff5183_dc51d693;
+defparam bootram.RAM4.INIT_0A=256'h56548074_5874ff16_7f5a5757_0d7a7c7f_0d04f83d_b03f893d_528051e1_54755381;
+defparam bootram.RAM4.INIT_0B=256'hfc055277_82538a3d_05a10534_58330284_76708105_738a3d34_81175754_25b73875;
+defparam bootram.RAM4.INIT_0C=256'h800c8a3d_39815473_2e8538c1_8c3f7380_548a51da_0881ff06_d8de3f80_81ff0651;
+defparam bootram.RAM4.INIT_0D=256'h5381f752_883dfc05_3d348154_dc567588_56748338_335580de_0d02a305_0d04fa3d;
+defparam bootram.RAM4.INIT_0E=256'h5202a705_893dfc05_3d348153_ab053389_0d7c5702_0d04f93d_893f883d_80d051ff;
+defparam bootram.RAM4.INIT_0F=256'h527551d6_3876537b_80772597_802e9e38_70565473_0881ff06_d7fe3f80_33705256;
+defparam bootram.RAM4.INIT_10=256'h54883dfc_fa3d0d81_893d0d04_5574800c_2e833881_56547380_81ff0670_c13f8008;
+defparam bootram.RAM4.INIT_11=256'h5675800c_06833881_de2e0981_56567480_0b883d33_ffa03f80_5280d051_055381f7;
+defparam bootram.RAM4.INIT_12=256'hb00c0480_b00b81c0_c0ac0c89_0ca60b81_0b81c080_940c80eb_990b81c0_883d0d04;
+defparam bootram.RAM4.INIT_13=256'h2a708106_a4087081_a00c81c0_820b81c0_c0980c51_70810781_2bbe8006_3d0d7288;
+defparam bootram.RAM4.INIT_14=256'h81c0980c_06708107_882bbe80_803d0d72_823d0d04_a808800c_f13881c0_51515170;
+defparam bootram.RAM4.INIT_15=256'h823d0d04_5170f138_81065151_70812a70_81c0a408_81c0a00c_9c0c840b_517381c0;
+defparam bootram.RAM4.INIT_16=256'h5271802e_38728306_0652718a_91387583_55575771_72830655_0d787a7c_ff39fa3d;
+defparam bootram.RAM4.INIT_17=256'h0c525452_12700872_2b771177_94387382_55737527_822a7255_88ca3f72_86388151;
+defparam bootram.RAM4.INIT_18=256'hd1cd3f72_54515353_e3e81133_708f0680_7470842a_04fe3d0d_39883d0d_811454e9;
+defparam bootram.RAM4.INIT_19=256'h06515151_882a7081_e0900870_803d0d82_843d0d04_53d1c03f_e8113352_8f0680e3;
+defparam bootram.RAM4.INIT_1A=256'h5382e090_c0800753_80060780_ff067a8c_05337880_3d0d0293_3d0d04fe_70f13882;
+defparam bootram.RAM4.INIT_1B=256'he0980c71_81ff0682_e0900c75_800c7182_387682e0_515170f1_70810651_0870882a;
+defparam bootram.RAM4.INIT_1C=256'hf13882e0_51515170_2a708106_90087088_963882e0_5172802e_e0900c72_82800782;
+defparam bootram.RAM4.INIT_1D=256'h8051ff87_80538052_80558854_e0940c88_0d810b82_0d04fc3d_800c843d_80085170;
+defparam bootram.RAM4.INIT_1E=256'h800c863d_0881ff06_fef13f80_81528151_548a8053_88805590_04fc3d0d_3f863d0d;
+defparam bootram.RAM4.INIT_1F=256'h80088132_3d0dca3f_3d0d0480_fed53f86_81528051_88548653_0d888055_0d04fc3d;
+defparam bootram.RAM4.INIT_20=256'hfb3d0d77_823d0d04_802ef438_ff065170_3f800881_803d0deb_823d0d04_8106800c;
+defparam bootram.RAM4.INIT_21=256'h53815280_069b0a07_75fe9b0a_8055a054_ffb43f88_9b38dd3f_75800826_5684e33f;
+defparam bootram.RAM4.INIT_22=256'h81ff2681_57805573_ff115657_80cb3d08_80c93d08_ffba3d0d_873d0d04_51fe843f;
+defparam bootram.RAM4.INIT_23=256'h3f755380_52548c8f_52883d70_805381ff_81a73882_73800826_54849f3f_b4387517;
+defparam bootram.RAM4.INIT_24=256'h900c76fe_800b82e0_e0980c88_9f3f7482_fed43ffd_3ffefd3f_73518aea_cb3d0852;
+defparam bootram.RAM4.INIT_25=256'he0900cfc_8aa00b82_82e0900c_0c88a00b_0b82e098_e0800c81_c00a0782_c00a0680;
+defparam bootram.RAM4.INIT_26=256'hfe881570_e0880c54_15700882_0c54fe84_0882e08c_fe801570_3d558f56_ef3f80c8;
+defparam bootram.RAM4.INIT_27=256'h900cfcb0_800b82e0_e0900c8a_88800b82_e0800c54_15700882_0c54fe8c_0882e084;
+defparam bootram.RAM4.INIT_28=256'h04f93d0d_80c83d0d_5574800c_e0980c81_38800b82_8025ffbc_16565675_3fff1690;
+defparam bootram.RAM4.INIT_29=256'h387581ff_802e80c3_38815774_082680cb_80577380_5682db3f_12575a56_797b7d72;
+defparam bootram.RAM4.INIT_2A=256'heb3f7316_527551fd_54775373_27833876_55577675_80743175_2ea23882_06547380;
+defparam bootram.RAM4.INIT_2B=256'h3f815776_dc39fd8c_38828054_807527e1_38745482_74802e8e_31575956_74197676;
+defparam bootram.RAM4.INIT_2C=256'h74279038_ed3f8008_73135481_802e8d38_56545573_0d76787a_0d04fc3d_800c893d;
+defparam bootram.RAM4.INIT_2D=256'h5281bd3f_ff165651_30707406_cb3f8008_0ca63981_160c8075_0c800b84_800b8816;
+defparam bootram.RAM4.INIT_2E=256'h54fc983f_fd3d0d75_863d0d04_51fcc93f_88160c71_84160c71_760c7406_80083072;
+defparam bootram.RAM4.INIT_2F=256'h14088008_81823f88_082e9438_14088415_38815388_71802e9f_06705452_800881ff;
+defparam bootram.RAM4.INIT_30=256'h0a538152_a05481f9_0d888055_0d04fc3d_800c853d_3f805372_0c51fc94_05708816;
+defparam bootram.RAM4.INIT_31=256'h8008882a_a038d73f_80efcc08_04ff3d0d_0c863d0d_800a0680_3f8008fe_8151faa3;
+defparam bootram.RAM4.INIT_32=256'h08ea1152_0c80efcc_7180efcc_81069338_70a02e09_06545151_800881ff_7081ff06;
+defparam bootram.RAM4.INIT_33=256'hf33f810b_33800c04_80e4be05_c03f8008_833d0d04_3f71800c_8438f5b3_52827127;
+defparam bootram.RAM4.INIT_34=256'he0980c88_3f800b82_7d56f998_04f63d0d_082b800c_3f810b80_0c04ffa9_80082b80;
+defparam bootram.RAM4.INIT_35=256'h82e0900c_0c88a80b_0b82e098_e0800c81_7c882b82_82e0840c_900c8b0b_800b82e0;
+defparam bootram.RAM4.INIT_36=256'h800b82e0_e0900c8a_88800b82_2780d338_80547376_e73f7e55_e0900cf8_8aa80b82;
+defparam bootram.RAM4.INIT_37=256'h75315257_5b883d76_82e08008_e084085a_88085982_085882e0_3f82e08c_900cf8cc;
+defparam bootram.RAM4.INIT_38=256'h1252ec39_05573481_33757081_71175170_73279138_53805271_27833870_90537073;
+defparam bootram.RAM4.INIT_39=256'h0cfd3d0d_8c08028c_51f7893f_803d0d72_8c3d0d04_82e0980c_a939800b_721454ff;
+defparam bootram.RAM4.INIT_3A=256'h048c0802_3d0d8c0c_800c5485_3f800870_085182de_8c088805_8c050852_80538c08;
+defparam bootram.RAM4.INIT_3B=256'h853d0d8c_70800c54_b93f8008_05085182_528c0888_088c0508_0d81538c_8c0cfd3d;
+defparam bootram.RAM4.INIT_3C=256'h88050830_ab388c08_05088025_0c8c0888_8c08fc05_3d0d800b_028c0cf9_0c048c08;
+defparam bootram.RAM4.INIT_3D=256'hf405088c_050c8c08_0b8c08f4_08883881_8c08fc05_08f4050c_0c800b8c_8c088805;
+defparam bootram.RAM4.INIT_3E=256'hf0050c8c_800b8c08_088c050c_0508308c_388c088c_088025ab_8c088c05_08fc050c;
+defparam bootram.RAM4.INIT_3F=256'h0508528c_538c088c_fc050c80_05088c08_0c8c08f0_8c08f005_8838810b_08fc0508;
+defparam bootram.RAM5.INIT_00=256'hf8050830_8c388c08_0508802e_548c08fc_08f8050c_8008708c_5181a73f_08880508;
+defparam bootram.RAM5.INIT_01=256'h800b8c08_0cfb3d0d_8c08028c_0d8c0c04_0c54893d_05087080_0c8c08f8_8c08f805;
+defparam bootram.RAM5.INIT_02=256'h050c8c08_0b8c08fc_88050c81_08308c08_8c088805_80259338_08880508_fc050c8c;
+defparam bootram.RAM5.INIT_03=256'h88050851_08528c08_8c088c05_050c8153_308c088c_088c0508_258c388c_8c050880;
+defparam bootram.RAM5.INIT_04=256'hf8050c8c_08308c08_8c08f805_802e8c38_08fc0508_050c548c_708c08f8_ad3f8008;
+defparam bootram.RAM5.INIT_05=256'h0c800b8c_8c08fc05_3d0d810b_028c0cfd_0c048c08_873d0d8c_70800c54_08f80508;
+defparam bootram.RAM5.INIT_06=256'h8c088c05_a338800b_0508802e_388c08fc_050827ac_088c0888_8c088c05_08f8050c;
+defparam bootram.RAM5.INIT_07=256'h8c08fc05_050cc939_108c08fc_08fc0508_8c050c8c_08108c08_8c088c05_08249938;
+defparam bootram.RAM5.INIT_08=256'h08318c08_8c088c05_08880508_26a1388c_08880508_8c05088c_c9388c08_08802e80;
+defparam bootram.RAM5.INIT_09=256'hfc050c8c_812a8c08_08fc0508_f8050c8c_08078c08_8c08fc05_08f80508_88050c8c;
+defparam bootram.RAM5.INIT_0A=256'h708c08f4_08880508_2e8f388c_90050880_af398c08_8c050cff_812a8c08_088c0508;
+defparam bootram.RAM5.INIT_0B=256'h0c04fc3d_853d0d8c_0508800c_518c08f4_08f4050c_0508708c_398c08f8_050c518d;
+defparam bootram.RAM5.INIT_0C=256'h2ea03874_125271ff_2eb038ff_06517080_74740783_72278c38_56565283_0d787779;
+defparam bootram.RAM5.INIT_0D=256'he238800b_2e098106_555571ff_15ff1454_38811581_098106bd_5372712e_33743352;
+defparam bootram.RAM5.INIT_0E=256'h51718326_fc145454_84118414_81068f38_73082e09_54517008_0d047474_800c863d;
+defparam bootram.RAM5.INIT_0F=256'h558f7227_7b555555_0d767079_0d04fc3d_800c863d_39727131_5555ffaf_e9387073;
+defparam bootram.RAM5.INIT_10=256'h70810556_05543374_38727081_71ff2e98_38ff1252_70802ea7_07830651_8c387275;
+defparam bootram.RAM5.INIT_11=256'h70840553_05540871_51727084_3d0d0474_74800c86_8106ea38_71ff2e09_34ff1252;
+defparam bootram.RAM5.INIT_12=256'h05540871_0c727084_70840553_05540871_0c727084_70840553_05540871_0c727084;
+defparam bootram.RAM5.INIT_13=256'h530cfc12_71708405_84055408_95387270_38837227_718f26c9_0cf01252_70840553;
+defparam bootram.RAM5.INIT_14=256'h72278a38_55535583_9f053357_71028c05_3d0d7679_ff8339fc_ed387054_52718326;
+defparam bootram.RAM5.INIT_15=256'hff2e0981_ff125271_81055534_38737370_71ff2e93_38ff1252_70802ea2_74830651;
+defparam bootram.RAM5.INIT_16=256'h38727170_8f7227a5_07515451_7071902b_882b7507_0d047474_800c863d_06ef3874;
+defparam bootram.RAM5.INIT_17=256'h718f26dd_0cf01252_70840553_530c7271_71708405_05530c72_72717084_8405530c;
+defparam bootram.RAM5.INIT_18=256'h0d787a7c_9039fa3d_387053ff_718326f2_0cfc1252_70840553_90387271_38837227;
+defparam bootram.RAM5.INIT_19=256'h2eb13871_135372ff_80d438ff_5170802e_74078306_80d93871_5272802e_70545555;
+defparam bootram.RAM5.INIT_1A=256'hfc388112_70802e80_81ff0651_81873870_3872802e_098106a9_5174712e_33743356;
+defparam bootram.RAM5.INIT_1B=256'h06717131_067581ff_517081ff_33743356_06d13871_ff2e0981_55555272_8115ff15;
+defparam bootram.RAM5.INIT_1C=256'h5552ff97_88387476_0874082e_27883871_57558373_0d047174_800c883d_51525270;
+defparam bootram.RAM5.INIT_1D=256'h51709a38_80065151_f8848281_ff120670_09f7fbfd_38740870_72802eb1_39fc1353;
+defparam bootram.RAM5.INIT_1E=256'h0c883d0d_39800b80_5552fedf_d0387476_0876082e_27d03874_57558373_84158417;
+defparam bootram.RAM5.INIT_1F=256'h833f80e4_e73fffb0_d00cffb0_387380ef_72812e9e_98085454_800b80e4_04fd3d0d;
+defparam bootram.RAM5.INIT_20=256'he4d85281_afe63f80_b0ca3fff_efd00cff_a33f7280_800851f6_ffb7e03f_d8528151;
+defparam bootram.RAM5.INIT_21=256'hff2e9138_08525270_0bfc0570_0d80e4e0_ff39ff3d_f6863f00_3f800851_51ffb7c3;
+defparam bootram.RAM5.INIT_22=256'h00000040_3f040000_04ffb0f5_833d0d04_8106f138_70ff2e09_70085252_702dfc12;
+defparam bootram.RAM5.INIT_23=256'h646c6572_2068616e_636b6574_6c207061_6e74726f_6e20636f_6f722069_21457272;
+defparam bootram.RAM5.INIT_24=256'h62657220_206e756d_6c697479_74696269_6f6d7061_65642063_70656374_3a204578;
+defparam bootram.RAM5.INIT_25=256'h6e74726f_6e20636f_6f722069_21457272_25640a00_676f7420_62757420_25642c20;
+defparam bootram.RAM5.INIT_26=256'h61796c6f_65642070_70656374_3a204578_646c6572_2068616e_636b6574_6c207061;
+defparam bootram.RAM5.INIT_27=256'h0a657468_0a000000_74202564_7420676f_2c206275_68202564_656e6774_6164206c;
+defparam bootram.RAM5.INIT_28=256'h0a555352_640a0000_203d2025_70656564_643a2073_616e6765_6b206368_206c696e;
+defparam bootram.RAM5.INIT_29=256'h20636f6d_46504741_720a0000_6f616465_6f6f746c_44502062_31302055_50204e32;
+defparam bootram.RAM5.INIT_2A=256'h77617265_4669726d_640a0000_723a2025_756d6265_7479206e_62696c69_70617469;
+defparam bootram.RAM5.INIT_2B=256'h61646472_640a0000_723a2025_756d6265_7479206e_62696c69_70617469_20636f6d;
+defparam bootram.RAM5.INIT_2C=256'h00000000_65743a20_7061636b_65727920_65636f76_69702072_476f7420_00000000;
+defparam bootram.RAM5.INIT_2D=256'h000006ec_00000785_00000785_00000785_00000785_00000785_00000785_00000690;
+defparam bootram.RAM5.INIT_2E=256'h00000785_00000785_00000785_00000785_0000075b_00000785_00000785_000006d5;
+defparam bootram.RAM5.INIT_2F=256'h0000073c_00000735_0000072e_00000729_00000724_0000069d_00000709_00000785;
+defparam bootram.RAM5.INIT_30=256'h45000000_01b200d9_05160364_14580a2c_3fff0000_0050c285_c0a80a02_00000749;
+defparam bootram.RAM5.INIT_31=256'h00000000_43444546_38394142_34353637_30313233_2e256400_642e2564_25642e25;
+defparam bootram.RAM5.INIT_32=256'h656e7420_69676e6d_6420616c_3a206261_5f706b74_73656e64_ffff0000_ffffffff;
+defparam bootram.RAM5.INIT_33=256'h6f6e3a20_636f6d6d_6e65745f_66000000_72206275_6e642f6f_656e2061_6f66206c;
+defparam bootram.RAM5.INIT_34=256'h666f7220_696e6720_6c6f6f6b_63686520_74206361_6f206869_65642074_6661696c;
+defparam bootram.RAM5.INIT_35=256'h3d202564_697a6520_72642073_20776569_6172703a_646c655f_0a68616e_00000000;
+defparam bootram.RAM5.INIT_36=256'h3a202564_67746873_206c656e_74656e74_6e736973_696e636f_55445020_0a000000;
+defparam bootram.RAM5.INIT_37=256'h696e2073_50322b20_20555352_74696e67_53746172_0b0b0b0b_00000000_2025640a;
+defparam bootram.RAM5.INIT_38=256'h6172652e_69726d77_66652066_67207361_6164696e_2e204c6f_6d6f6465_61666520;
+defparam bootram.RAM5.INIT_39=256'h6374696f_726f6475_69642070_2076616c_20666f72_6b696e67_43686563_00000000;
+defparam bootram.RAM5.INIT_3A=256'h74696f6e_6f647563_64207072_56616c69_2e2e2e00_6d616765_47412069_6e204650;
+defparam bootram.RAM5.INIT_3B=256'h6720746f_7074696e_7474656d_642e2041_666f756e_61676520_4120696d_20465047;
+defparam bootram.RAM5.INIT_3C=256'h46504741_696f6e20_64756374_2070726f_616c6964_4e6f2076_742e0000_20626f6f;
+defparam bootram.RAM5.INIT_3D=256'h6820746f_726f7567_67207468_6c6c696e_2e0a4661_6f756e64_67652066_20696d61;
+defparam bootram.RAM5.INIT_3E=256'h6f647563_64207072_56616c69_72652e00_726d7761_6e206669_6c742d69_20627569;
+defparam bootram.RAM5.INIT_3F=256'h2e2e2e00_64696e67_204c6f61_756e642e_6520666f_6d776172_20666972_74696f6e;
+defparam bootram.RAM6.INIT_00=256'h6d616765_6e672069_61727469_2e205374_64696e67_206c6f61_73686564_46696e69;
+defparam bootram.RAM6.INIT_01=256'h70726f67_61696e20_6f6d206d_6e206672_65747572_523a2052_4552524f_2e000000;
+defparam bootram.RAM6.INIT_02=256'h6e210000_61707065_65722068_206e6576_6f756c64_73207368_20546869_72616d21;
+defparam bootram.RAM6.INIT_03=256'h20666f75_77617265_6669726d_696f6e20_64756374_2070726f_616c6964_4e6f2076;
+defparam bootram.RAM6.INIT_04=256'h2d696e20_75696c74_746f2062_75676820_7468726f_696e6720_46616c6c_6e642e20;
+defparam bootram.RAM6.INIT_05=256'h00000000_2025640a_7420746f_64207365_53706565_2e000000_77617265_6669726d;
+defparam bootram.RAM6.INIT_06=256'h45545249_53594d4d_58000000_57455f52_58000000_57455f54_00000000_4e4f4e45;
+defparam bootram.RAM6.INIT_07=256'h5048595f_6c3a2000_6e74726f_7720636f_20666c6f_726e6574_65746865_43000000;
+defparam bootram.RAM6.INIT_08=256'h20307825_20676f74_7825782c_74652030_2077726f_4144563a_4e45475f_4155544f;
+defparam bootram.RAM6.INIT_09=256'h6e207570_6f722069_21457272_00030203_00000001_00030003_00000000_780a0000;
+defparam bootram.RAM6.INIT_0A=256'h64207061_65637465_20457870_6c65723a_68616e64_6b657420_20706163_64617465;
+defparam bootram.RAM6.INIT_0B=256'h00000000_2025640a_20676f74_20627574_2025642c_6e677468_64206c65_796c6f61;
+defparam bootram.RAM6.INIT_0C=256'h000020e8_000020e8_00002061_00002083_00002098_000020e8_000020e8_00002042;
+defparam bootram.RAM6.INIT_0D=256'h000020e8_000020e8_000020e8_000020e8_000020e8_000020e8_000020e8_000020e8;
+defparam bootram.RAM6.INIT_0E=256'h0a0a6162_000020b4_00002073_000020e8_000020e8_000020de_000020c7_000020e8;
+defparam bootram.RAM6.INIT_0F=256'h792e6578_64756d6d_43444546_38394142_34353637_30313233_00000000_6f72740a;
+defparam bootram.RAM6.INIT_10=256'h00000000_00000000_00000000_ffffff00_ffff00ff_ff00ffff_00ffffff_65000000;
+defparam bootram.RAM6.INIT_11=256'h0018000f_ffff0031_05050400_01010100_3fff0000_0050c285_c0a80a02_00003268;
+defparam bootram.RAM6.INIT_12=256'hffffffff_000031f8_10101200_000030d8_000030d0_000030c8_000030c0_000b0000;
+defparam bootram.RAM6.INIT_13=256'h00000000_00000000_00000000_00000000_00000000_00000000_ffffffff_00000000;
defparam bootram.RAM6.INIT_14=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000;
defparam bootram.RAM6.INIT_15=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000;
defparam bootram.RAM6.INIT_16=256'h00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000000;
diff --git a/usrp2/top/N2x0/u2plus_core.v b/usrp2/top/N2x0/u2plus_core.v
index 3e376434a..20538c716 100644
--- a/usrp2/top/N2x0/u2plus_core.v
+++ b/usrp2/top/N2x0/u2plus_core.v
@@ -412,22 +412,14 @@ module u2plus_core
// SPI -- Slave #2
wire [31:0] spi_debug;
wire [31:0] spi_readback;
- wire spi_done;
+ wire spi_ready;
simple_spi_core #(.BASE(SR_SPI_CORE), .WIDTH(9)) shared_spi(
.clock(dsp_clk), .reset(dsp_rst),
.set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp),
- .readback(spi_readback), .done(spi_done),
+ .readback(spi_readback), .ready(spi_ready),
.sen({sen_adc, sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}),
.sclk(sclk), .mosi(mosi), .miso(miso), .debug(spi_debug)
);
-/*
- spi_top shared_spi
- (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(s2_adr[4:0]),.wb_dat_i(s2_dat_o),
- .wb_dat_o(s2_dat_i),.wb_sel_i(s2_sel),.wb_we_i(s2_we),.wb_stb_i(s2_stb),
- .wb_cyc_i(s2_cyc),.wb_ack_o(s2_ack),.wb_err_o(),.wb_int_o(spi_int),
- .ss_pad_o({sen_adc, sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}),
- .sclk_pad_o(sclk),.mosi_pad_o(mosi),.miso_pad_i(miso) );
-*/
// /////////////////////////////////////////////////////////////////////////
// I2C -- Slave #3
@@ -458,14 +450,16 @@ module u2plus_core
//compatibility number -> increment when the fpga has been sufficiently altered
localparam compat_num = {16'd9, 16'd0}; //major, minor
+ wire [31:0] irq_readback = {18'b0, button, spi_ready, clk_status, serdes_link_up, 10'b0};
+
wb_readback_mux buff_pool_status
(.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb),
.wb_adr_i(s5_adr), .wb_dat_o(s5_dat_i), .wb_ack_o(s5_ack),
- .word00(spi_readback),.word01(32'b0),.word02(32'b0),.word03(32'b0),
+ .word00(spi_readback),.word01(31'b0),.word02(32'b0),.word03(32'b0),
.word04(32'b0),.word05(32'b0),.word06(32'b0),.word07(32'b0),
.word08(status),.word09(gpio_readback),.word10(vita_time[63:32]),
- .word11(vita_time[31:0]),.word12(compat_num),.word13({18'b0, button, 1'b0, clk_status, serdes_link_up, 10'b0}),
+ .word11(vita_time[31:0]),.word12(compat_num),.word13(irq_readback),
.word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0])
);
@@ -521,17 +515,17 @@ module u2plus_core
wire [31:0] srb_debug;
wire srb_clear;
- settings_readback_bus_fifo_ctrl #(.PROT_DEST(3)) srb
+ settings_readback_bus_fifo_ctrl #(.PROT_DEST(3), .NUM_PERFS(1)) srb
(
.clock(dsp_clk), .reset(dsp_rst), .clear(srb_clear),
- .vita_time(vita_time),
+ .vita_time(vita_time), .perfs_ready(spi_ready),
.in_data(srb_rd_data), .in_valid(srb_rd_valid), .in_ready(srb_rd_ready),
.out_data(srb_wr_data), .out_valid(srb_wr_valid), .out_ready(srb_wr_ready),
.strobe(set_stb_dsp1), .addr(set_addr_dsp1), .data(set_data_dsp1),
.word00(spi_readback),.word01(32'b0),.word02(32'b0),.word03(32'b0),
.word04(32'b0),.word05(32'b0),.word06(32'b0),.word07(32'b0),
.word08(status),.word09(gpio_readback),.word10(vita_time[63:32]),
- .word11(vita_time[31:0]),.word12(compat_num),.word13({18'b0, button, 1'b0, clk_status, serdes_link_up, 10'b0}),
+ .word11(vita_time[31:0]),.word12(compat_num),.word13(irq_readback),
.word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0]),
.debug(srb_debug)
);
diff --git a/usrp2/top/USRP2/u2_core.v b/usrp2/top/USRP2/u2_core.v
index 9b26b98e1..a631ae9b1 100644
--- a/usrp2/top/USRP2/u2_core.v
+++ b/usrp2/top/USRP2/u2_core.v
@@ -154,10 +154,10 @@ module u2_core
);
localparam SR_MISC = 0; // 7 regs
- localparam SR_SIMTIMER = 8; // 2
+ localparam SR_USER_REGS = 8; // 2
localparam SR_TIME64 = 10; // 6
localparam SR_BUF_POOL = 16; // 4
- localparam SR_USER_REGS = 20; // 2
+ localparam SR_SPI_CORE = 20; // 3
localparam SR_RX_FRONT = 24; // 5
localparam SR_RX_CTRL0 = 32; // 9
localparam SR_RX_DSP0 = 48; // 7
@@ -284,10 +284,14 @@ module u2_core
.sf_dat_o(sf_dat_o),.sf_adr_o(sf_adr),.sf_sel_o(sf_sel),.sf_we_o(sf_we),.sf_cyc_o(sf_cyc),.sf_stb_o(sf_stb),
.sf_dat_i(sf_dat_i),.sf_ack_i(sf_ack),.sf_err_i(0),.sf_rty_i(0));
- // Unused Slaves 4, 9 and b-f
+ assign s2_ack = 0;
assign s4_ack = 0;
- assign s9_ack = 0; assign sb_ack = 0; assign sc_ack = 0;
- assign sd_ack = 0; assign se_ack = 0; assign fc_ack = 0;
+ assign s9_ack = 0;
+ assign sb_ack = 0;
+ assign sc_ack = 0;
+ assign sd_ack = 0;
+ assign se_ack = 0;
+ assign sf_ack = 0;
// ////////////////////////////////////////////////////////////////////////////////////////
// Reset Controller
@@ -379,6 +383,10 @@ module u2_core
wire wr3_ready_i, wr3_ready_o;
wire [35:0] wr0_dat, wr1_dat, wr2_dat, wr3_dat;
+ wire [35:0] srb_wr_data, srb_rd_data;
+ wire srb_wr_ready, srb_rd_ready;
+ wire srb_wr_valid, srb_rd_valid;
+
wire [35:0] tx_err_data;
wire tx_err_src_rdy, tx_err_dst_rdy;
@@ -399,21 +407,27 @@ module u2_core
.dsp0_inp_data(wr1_dat), .dsp0_inp_valid(wr1_ready_i), .dsp0_inp_ready(wr1_ready_o),
.dsp1_inp_data(wr3_dat), .dsp1_inp_valid(wr3_ready_i), .dsp1_inp_ready(wr3_ready_o),
.eth_inp_data(wr2_dat), .eth_inp_valid(wr2_ready_i), .eth_inp_ready(wr2_ready_o),
- .err_inp_data(tx_err_data), .err_inp_ready(tx_err_dst_rdy), .err_inp_valid(tx_err_src_rdy),
+ .err_inp_data(tx_err_data), .err_inp_valid(tx_err_src_rdy), .err_inp_ready(tx_err_dst_rdy),
+ .ctl_inp_data(srb_wr_data), .ctl_inp_valid(srb_wr_valid), .ctl_inp_ready(srb_wr_ready),
.ser_out_data(rd0_dat), .ser_out_valid(rd0_ready_o), .ser_out_ready(rd0_ready_i),
.dsp_out_data(rd1_dat), .dsp_out_valid(rd1_ready_o), .dsp_out_ready(rd1_ready_i),
+ .ctl_out_data(srb_rd_data), .ctl_out_valid(srb_rd_valid), .ctl_out_ready(srb_rd_ready),
.eth_out_data(rd2_dat), .eth_out_valid(rd2_ready_o), .eth_out_ready(rd2_ready_i)
);
// /////////////////////////////////////////////////////////////////////////
// SPI -- Slave #2
- spi_top shared_spi
- (.wb_clk_i(wb_clk),.wb_rst_i(wb_rst),.wb_adr_i(s2_adr[4:0]),.wb_dat_i(s2_dat_o),
- .wb_dat_o(s2_dat_i),.wb_sel_i(s2_sel),.wb_we_i(s2_we),.wb_stb_i(s2_stb),
- .wb_cyc_i(s2_cyc),.wb_ack_o(s2_ack),.wb_err_o(),.wb_int_o(spi_int),
- .ss_pad_o({sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}),
- .sclk_pad_o(sclk),.mosi_pad_o(mosi),.miso_pad_i(miso) );
+ wire [31:0] spi_debug;
+ wire [31:0] spi_readback;
+ wire spi_ready;
+ simple_spi_core #(.BASE(SR_SPI_CORE), .WIDTH(9)) shared_spi(
+ .clock(dsp_clk), .reset(dsp_rst),
+ .set_stb(set_stb_dsp), .set_addr(set_addr_dsp), .set_data(set_data_dsp),
+ .readback(spi_readback), .ready(spi_ready),
+ .sen({sen_adc, sen_tx_db,sen_tx_adc,sen_tx_dac,sen_rx_db,sen_rx_adc,sen_rx_dac,sen_dac,sen_clk}),
+ .sclk(sclk), .mosi(mosi), .miso(miso), .debug(spi_debug)
+ );
// /////////////////////////////////////////////////////////////////////////
// I2C -- Slave #3
@@ -444,14 +458,16 @@ module u2_core
//compatibility number -> increment when the fpga has been sufficiently altered
localparam compat_num = {16'd9, 16'd0}; //major, minor
+ wire [31:0] irq_readback = {19'b0, spi_ready, clk_status, serdes_link_up, 10'b0};
+
wb_readback_mux buff_pool_status
(.wb_clk_i(wb_clk), .wb_rst_i(wb_rst), .wb_stb_i(s5_stb),
.wb_adr_i(s5_adr), .wb_dat_o(s5_dat_i), .wb_ack_o(s5_ack),
- .word00(32'b0),.word01(32'b0),.word02(32'b0),.word03(32'b0),
+ .word00(spi_readback),.word01(32'b0),.word02(32'b0),.word03(32'b0),
.word04(32'b0),.word05(32'b0),.word06(32'b0),.word07(32'b0),
.word08(status),.word09(gpio_readback),.word10(vita_time[63:32]),
- .word11(vita_time[31:0]),.word12(compat_num),.word13({20'b0, clk_status, serdes_link_up, 10'b0}),
+ .word11(vita_time[31:0]),.word12(compat_num),.word13(irq_readback),
.word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0])
);
@@ -482,9 +498,19 @@ module u2_core
assign s7_dat_i = 32'd0;
- settings_bus_crossclock settings_bus_crossclock
+ wire set_stb_dsp0, set_stb_dsp1;
+ wire [31:0] set_data_dsp0, set_data_dsp1;
+ wire [7:0] set_addr_dsp0, set_addr_dsp1;
+
+ //mux settings_bus_crossclock and settings_readback_bus_fifo_ctrl with prio
+ assign set_stb_dsp = set_stb_dsp0 | set_stb_dsp1;
+ assign set_addr_dsp = set_stb_dsp1? set_addr_dsp1 : set_addr_dsp0;
+ assign set_data_dsp = set_stb_dsp1? set_data_dsp1 : set_data_dsp0;
+
+ settings_bus_crossclock #(.FLOW_CTRL(1/*on*/)) settings_bus_crossclock
(.clk_i(wb_clk), .rst_i(wb_rst), .set_stb_i(set_stb), .set_addr_i(set_addr), .set_data_i(set_data),
- .clk_o(dsp_clk), .rst_o(dsp_rst), .set_stb_o(set_stb_dsp), .set_addr_o(set_addr_dsp), .set_data_o(set_data_dsp));
+ .clk_o(dsp_clk), .rst_o(dsp_rst), .set_stb_o(set_stb_dsp0), .set_addr_o(set_addr_dsp0), .set_data_o(set_data_dsp0),
+ .blocked(set_stb_dsp1));
user_settings #(.BASE(SR_USER_REGS)) user_settings
(.clk(dsp_clk),.rst(dsp_rst),.set_stb(set_stb_dsp),
@@ -492,6 +518,29 @@ module u2_core
.set_addr_user(set_addr_user),.set_data_user(set_data_user),
.set_stb_user(set_stb_user) );
+ // /////////////////////////////////////////////////////////////////////////
+ // Settings + Readback Bus -- FIFO controlled
+
+ wire [31:0] srb_debug;
+ wire srb_clear;
+ settings_readback_bus_fifo_ctrl #(.PROT_DEST(3), .NUM_PERFS(1)) srb
+ (
+ .clock(dsp_clk), .reset(dsp_rst), .clear(srb_clear),
+ .vita_time(vita_time), .perfs_ready(spi_ready),
+ .in_data(srb_rd_data), .in_valid(srb_rd_valid), .in_ready(srb_rd_ready),
+ .out_data(srb_wr_data), .out_valid(srb_wr_valid), .out_ready(srb_wr_ready),
+ .strobe(set_stb_dsp1), .addr(set_addr_dsp1), .data(set_data_dsp1),
+ .word00(spi_readback),.word01(32'b0),.word02(32'b0),.word03(32'b0),
+ .word04(32'b0),.word05(32'b0),.word06(32'b0),.word07(32'b0),
+ .word08(status),.word09(gpio_readback),.word10(vita_time[63:32]),
+ .word11(vita_time[31:0]),.word12(compat_num),.word13(irq_readback),
+ .word14(vita_time_pps[63:32]),.word15(vita_time_pps[31:0]),
+ .debug(srb_debug)
+ );
+
+ setting_reg #(.my_addr(SR_BUF_POOL+1/*same as packet dispatcher*/),.width(1)) sr_clear_srb
+ (.clk(dsp_clk),.rst(dsp_rst),.strobe(set_stb_dsp),.addr(set_addr_dsp),.in(set_data_dsp),.changed(srb_clear));
+
// Output control lines
wire [7:0] clock_outs, serdes_outs, adc_outs;
assign {clock_ready, clk_en[1:0], clk_sel[1:0]} = clock_outs[4:0];