summaryrefslogtreecommitdiffstats
path: root/usrp2
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2012-03-06 16:30:24 -0800
committerJosh Blum <josh@joshknows.com>2012-03-16 11:29:18 -0700
commitc7adcbe4a61235eff762195e35bf990a1a409e12 (patch)
tree86204e497c3b7bfdc688b05b4b978031b85cd7f9 /usrp2
parent46c612ea97d41745f6477ddb4cb024e06be8ed8c (diff)
downloaduhd-c7adcbe4a61235eff762195e35bf990a1a409e12.tar.gz
uhd-c7adcbe4a61235eff762195e35bf990a1a409e12.tar.bz2
uhd-c7adcbe4a61235eff762195e35bf990a1a409e12.zip
fifo ctrl: spi core work, fifo ctrl perifs, usrp2 support
Continued work on simple spi core. Added peripherals input to fifo ctrl so perifs can backpressure fifo ctrl. Copied the implementation into usrp2 core.
Diffstat (limited to 'usrp2')
-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];